注意:
apache提供的hadoop-2.6.0的安装包是在32位操作系统编译的,如果在64位的操作上安装hadoop-2.6.0就需要重新在64操作系统上重新编译。
前期准备工作:
1.修改Linux主机名:/etc/hostname
2.修改IP:/etc/network/interfaces
3.修改主机名和IP的映射关系:/etc/hosts
4.查看防火墙状态、关闭防火墙:ufw status 、ufw disable
5.ssh免登陆
6.安装JDK,配置环境变量等。
前期准备工作不清楚的可以参看之前的帖子:Hadoop1.2.1完全分布式集群搭建实操笔记
集群规划:
主机名 IP 安装的软件 运行的进程
suh01 192.168.1.201 jdk、hadoop NameNode、SecondaryNamenode、ResourceManager
suh02 192.168.1.202 jdk、hadoop DataNode、NodeManager
suh03 192.168.1.203 jdk、hadoop DataNode、NodeManager
IP与主机名映射关系:
-----------------------
192.168.1.201 suh01
192.168.1.202 suh02
192.168.1.203 suh03
-----------------------
安装步骤:
1.安装配置hadoop集群(总共修改了七个配置文件:hadoo-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、slaves、yarn-site.xml、mapred-site.xml )
1.1上传并解压hadoop安装包解压
tar -zxvf hadoop-2.6.0.tar.gz -C /home/suh/
1.2配置相关配置文件(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)
cd /home/suh/hadoop-2.6.0/etc/hadoop
1.2.1修改hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_76
1.2.2修改yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_76
1.2.3修改core-site.xml
<configuration>
<!-- 指定hdfs的nameservice -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://suh01:9000</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/suh/hadoop-2.6.0/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
1.2.4修改hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>suh01:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/suh/hadoop-2.6.0/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/suh/hadoop-2.6.0/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
1.2.5修改mapred-site.xml
<configuration>
<!-- 指定mr框架为yarn方式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>suh01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>suh01:19888</value>
</property>
</configuration>
1.2.6修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>suh01</value>
</property>
</configuration>
1.2.7修改slaves 文件,添加如下内容:
suh02
suh03
1.3将配置好的hadoop拷贝到其他节点(为了拷贝更快速,建议把/cloud/hadoop-2.6.0/share 下的doc目录删掉:rm -rf doc)
scp -r /home/suh/hadoop-2.6.0 suh@suh02:/home/suh/hadoop-2.6.0
scp -r /home/suh/hadoop-2.6.0 suh@suh03:/home/suh/hadoop-2.6.0
======开始启动集群=======
2.1格式化HDFS
在hdfs的NameNode机器(suh01)上执行命令:
bin/hdfs namenode -format
执行格式化后,系统未根据在core-site.xml中的hadoop.tmp.dir配置生成个文件(这里我配置的是/home/suh/hadoop-2.6.0/tmp),手动创建该tmp目录。
2.2启动HDFS(在suh01上执行,这里最好先配置好免登录,不然会提示输入密码,免登陆配置在下文有配置步骤)
sbin/start-dfs.sh
执行成功后进行相关检验:
(1)、suh01上多了NameNode、SecondaryNamenode进程;
(2)、接着进入suh02、suh03机器,运行jps命令查看,发现其启动了DataNode 进程;
2.3启动YARN(在suh01上执行,即启动ResourceManager进程,我们启动YARN就可以启动ResourceManager进程,)
sbin/start-yarn.sh
执行成功后进行相关检验:
(1)、suh01上多了ResourceManager进程;
(2)、接着分别进入到suh02、suh03机器,运行jps命令查看,发现其启动了NodeManager进程;
======hadoop集群启动成功后,进行测试======
到此,hadoop2.6.0配置完毕,可以进行浏览器访问:
http://192.168.1.201:50070
NameNode 'suh01:9000' (active)
验证YARN:
运行一下hadoop提供的demo中的WordCount程序:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /out
查看结果。
======Hadoop集群停止,注意停止顺序=======
1、在suh01上执行:sbin/stop-dfs.sh
该命令执行过程分析:
(1)、首先停止 suh01上的namenode 进程;
(2)、然后停止 suh02、suh03 上的datanode 进程。
2、在suh01上执行:sbin/stop-yarn.sh
该命令执行过程分析:
(1)、首先停止 suh01 上的ResourceManager 进程;
(2)、然后停止 suh02、suh03 上的NodeManager 进程;