Hadoop入门实践之安装、运行example

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BlingZeng/article/details/82820547

我这次的实践是借助虚拟机来搭建环境的,因此需要一些前期准备

1. 虚拟机

2.centos系统(系统的用户名需要一致。注:这样免密登录的时候比较方便)

3.jdk的安装

4.hadoop的安装包

在前期准备好了之后,我们首先做的第一步是:设置网络

在虚拟机设置项中选择桥接模式,关闭防火墙

然后将各个主机的网络设置在同一网段,如果想外面的主机可以ping通虚拟机内的主机,即将网络设置于外面的主机一致即可。

注: 有时候里面ping外面可能ping不通,这是因为外面的系统有防火墙阻碍

检验设置成功的标志是:各个主机之间可以ping通即可。

第二步是:设置免密登录

免密登录是为了方便,如果没有免密登录,每次开启hadoop的时候都要输入密码

切换用户名,确保自己当下是在各个主机相同的用户名下即可,root也行的。

在主节点master操作:

1.生成密钥,命令如下:

ssh-keygen -t rsa   然后一路回车

2. 复制公钥文件

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3.修改authorized_keys的权限

chmod 600 ~/.ssh/authorized_keys

4.将authorized_keys文件复制到各个slave节点中

scp ~/.ssh/authorized_keys username@slave:~/  注:username是用户名,修改成对应的用户名即可,slave是在hosts表中配置的,如果没有则使用ip地址

在slave节点操作:

1.生成密钥

ssh-keygen -t rsa

2.将authorized_keys文件移动到.ssh目录中

mv authorized_keys ~/.ssh/

3.修改authorized_keys的权限

chomd 600 ~/.ssh/authorized_keys

验证民密钥登录

ssh slave

可以进入slave的系统即可。如果需要输入密码,那就是没有配置成功

可能的情况有:1 用户名不一致 2.相应的配置没有做好

第三步:hadoop配置

将hadoop解压到一个文件中

因为各个节点中hadoop的设置是一样的,所以我们可以在主节点配置好,然后将配置好的hadoop发送到各个slave节点中

注:以下的全部hadoop路径是需要按照你自己的hadoop路径做相应的修改的

配置环境变量 hadoop-env.sh

gedit /home/bling/hadoop-2.5.2/etc/hadoop/hadoop-env.sh

找到:export JAVA_HOME=${JAVA_HOME}

将这行代码修改为下面的代码:
export JAVA_HOME=/usr/java/jdk1.7.0_71/ 注(我的路劲是这个,如果你的java路径不是这个,要做相应的修改)

配置环境变量 yarn-env.sh
环境变量文件中,只需要配置 JDK 的路径。
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/yarn-env.sh


在文件的靠前的部分找到下面的一行代码:
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/


将这行代码修改为下面的代码(将#号去掉):
export JAVA_HOME=/usr/java/jdk1.7.0_71/

  配置核心组件 core-site.xml
使用 gedit 编辑:
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/core-site.xml
用下面的代码替换 core-site.xml 中的内容:
 

​

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/bling/hadoopdata</value>
    </property>
</configuration>

[点击并拖拽以移动]
​

配置文件系统 hdfs-site.xml
使用 gedit 编辑:
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/hdfs-site.xml
第 3 章 CentOS 6 安装 Hadoop
36
用下面的代码替换 hdfs-site.xml 中的内容:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

  配置文件系统 yarn-site.xml
使用 gedit 编辑:
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/yarn-site.xml
用下面的代码替换 yarn-site.xml 中的内容:

<?xml version="1.0"?>
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:18040</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:18030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:18025</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:18141</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:18088</value>
    </property>
</configuration>

  配置计算框架 mapred-site.xml
复制 mapred-site-template.xml 文件:


[zkpk@master  hadoop-2.5.2]$  cp  ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml.template
~/hadoop-2.5.2/etc/hadoop/mapred-site.xml
使用 gedit 编辑:
[zkpk@master ~]$ gedit ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml
用下面的代码替换 mapred-site.xml 中的内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

在 在 master  节点置 配置 slaves  文件
使用 gedit 编辑:
[zkpk@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/slaves
用下面的代码替换 slaves 中的内容:
slave    

注:有多少个slave节点就配置多少个即可,名字要与hosts一致

复制到从节点
使用下面的命令将已经配置完成的 Hadoop 复制到从节点 HadoopSlave 上:
[zkpk@master hadoop-2.5.2]$ cd
[zkpk@master ~]$ scp -r hadoop-2.5.2 zkpk@slave:~/
注意:因为之前已经配置了免密钥登录,这里可以直接远程复制

第四步 启动hadoop

配置 Hadoop  启动的系统环境变量
该节的配置需要同时在两个节点(HadoopMaster 和 HadoopSlave)上进行操作,操作命令如下:
[zkpk@master hadoop-2.5.2]$ cd
[zkpk@master ~]$ gedit ~/.bash_profile
将下面的代码追加到.bash_profile 末尾:
#HADOOP
export HADOOP_HOME=/home/zkpk/hadoop-2.5.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然后执行命令:
[zkpk@master ~]$ source ~/.bash_profile

创建数据目录
该节的配置需要同时在两个节点(HadoopMaster 和 HadoopSlave)上进行操作。
在 zkpk 的用户主目录下,创建数据目录,命令如下:
[zkpk@master ~]$ mkdir /home/bling/hadoopdata  这个数据目录是core-site.xml定义的,如果忘记了,可以去core-site.xml中找

启动 Hadoop  集群
1 、格式化文件系统
格式化命令如下,该操作需要在 HadoopMaster 节点上执行:
[zkpk@master ~]$ hdfs namenode -format
看到下图的打印信息表示格式化成功,如果出现 Exception/Error,则表示出问题:

2 、启动 Hadoop
使用 start-all.sh 启动 Hadoop 集群,首先进入 Hadoop 安装主目录,然后执行启动命令:
[zkpk@master ~]$ cd ~/hadoop-2.5.2
[zkpk@master hadoop-2.5.2]$ sbin/start-all.sh
执行命令后,提示出入 yes/no 时,输入 yes。
3 、查看进程是否启动
在 HadoopMaster 的终端执行 jps 命令,在打印结果中会看到 4 个进程,分别是 ResourceManager、Jps、
NameNode 和 SecondaryNameNode,如下图所示。如果出现了这 4 个进程表示主节点进程启动成功。

在 HadoopSlave 的终端执行 jps 命令,在打印结果中会看到 3 个进程,分别是 NodeManager、DataNode
和 Jps,如下图所示。如果出现了这 3 个进程表示从节点进程启动成功。

有一些情况是slave节点没有启动成功:是因为你格式化多次,导致namespace的id不匹配导致的

停止所有进程后,将slave节点的dfs文件删掉,然后重新格式化一遍即可 注:dfs文件在上面创建的数据目录中

或者在dfs/name目录下找到一个current/VERSION文件,记录clusterID并复制。然后dfs/data目录下找到一个current/VERSION文件,将其中clustreID的值替换成刚刚复制的clusterID的值即可;

 运行 PI  实例检查集群是否成功
进入 Hadoop 安装主目录,执行下面的命令:
cd
[zkpk@master ~]$ cd ~/hadoop-2.5.2/share/hadoop/mapreduce/
[zkpk@master  mapreduce]$  hadoop  jar
~/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar pi 10 10
会看到如下的执行结果:

最后输出:
Estimated value of Pi is 3.20000000000000000000
如果以上的 3 个验证步骤都没有问题,说明集群正常启动。

猜你喜欢

转载自blog.csdn.net/BlingZeng/article/details/82820547