Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

系统环境:   RHEL6.5 selinux and iptables is disabled
Hadoop 、jdk、zookeeper 程序使用 nfs 共享同步配置文件
软件版本:hadoop-2.7.3.tar.gz
                 Jdk-7u79-linux-x64.tar.gz
          ip                   主机名                 角色
172.25.88.1            server1            NameNode
                                                       DFSZKFailoverController
                                                       ResourceManager
172.25.88.5           server5             NameNode
                                                       DFSZKFailoverController
                                                       ResourceManager
172.25.88.2          server2              JournalNode
                                                       QuorumPeerMain
                                                       DataNode
                                                       NodeManager   
172.25.88.3          server3             JournalNode
                                                      QuorumPeerMain
                                                       DataNode
                                                       NodeManager  
172.25.88.4         server4              JournalNode
                                                      QuorumPeerMain
                                                      DataNode
                                                      NodeManager  

一、hadoop单节点伪分布搭建
1、hadoop安装
     建立hadoop用户,id随意,所有节点id必须一致

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

下载后的包最好放在hadoop家目录,并且后续操作一定要切换成hadoop用户的身份进行相应操作

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

添加环境变量,查看进程

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

伪分布操作,需要ssh免密

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

设置ssh免密

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

ssh 172.25.88.1        ##测试登陆,不需要输密码就成功了

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

bin/hdfs namenode -format     ##进行格式化

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

sbin/start-dfs.sh     ##启动hadoop
Jps     ##用jps检验各后台进程是否成功启动,看到以下四个进程,就成功了

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

浏览器输入:172.25.88.1:50070

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

2、伪分布操作
Utilities –> Browse the file system
默认是空的

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

创建一个文件夹

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

查看

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

bin/hdfs dfs -get output          ##将output下载到本地

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

二、Hadoop完全分布式搭建

1、用nfs网络文件系统,就不用每个节点安装一遍了,需要rpcbind和nfs开启

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Server2、server3、serve4、server5上安装nfs-utils,启动rpcbind

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Server2、server3免密登陆测试

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

查看server1、2、3、4、5进程

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

2、安装zookeeper,编辑 zoo.cfg 文件

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

各节点配置文件相同,并且需要在/tmp/zookeeper 目录中创建 myid 文件,写入数字,此数字与配置文件中的定义保持一致,其它节点依次类推

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

3、在各节点启动服务

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

4、Hadoop 配置
编辑 core-site.xml 文件:

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

编辑 hdfs-site.xml 文件:
<configuration>

<property>
##指定 hdfs 的 nameservices 为 masters,和 core-site.xml 文件中的设置保持一

<name>dfs.nameservices</name>
<value>masters</value>
</property>

<property>
<name>dfs.ha.namenodes.masters</name>
<value>h1,h2</value>  ## masters 下面有两个 namenode 节点,分别是 h1 和 h2 (名称可自定义)
</property>

<!-- 指定 h1 节点的 rpc 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.masters.h1</name>
<value>172.25.88.1:9000</value>  ##指定 h1 节点的 rpc 通信地址
</property>

<property>
<name>dfs.namenode.http-address.masters.h1</name>
<value>172.25.0.1:50070</value>  ##指定 h1 节点的 http 通信地址
</property>

<property>
<name>dfs.namenode.rpc-address.masters.h2</name>
<value>172.25.88.5:9000</value>   ##指定 h2 节点的 rpc 通信地址
</property>

<property>
<name>dfs.namenode.http-address.masters.h2</name>
<value>172.25.88.5:50070</value>  ##指定 h2 节点的 http 通信地址
</property>

<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://172.25.88.2:8485;172.25.88.3:8485;172.25.88.4:8485/masters</value>  ##指定 NameNode 元数据在 JournalNode 上的存放位置
</property>

<!-- 指定 JournalNode 在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/tmp/journaldata</value></property>

<property>
<name>dfs.ha.automatic-failover.enabled</name>  ##开启 NameNode 失败自动切换
<value>true</value>
</property>

<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.masters</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvid
er</value>
</property>

<!-- 配置隔离机制方法,每个机制占用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>

<!-- 使用 sshfence 隔离机制时需要 ssh 免密码 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>

<!-- 配置 sshfence 隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

5、启动 hdfs 集群(按顺序启动)
在三个 DN 上依次启动 zookeeper 集群,刚才已经启动过了,这里查看一下各节点的状态

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

在三个 DN 上依次启动 journalnode(第一次启动 hdfs 必须先启动 journalnode)
sbin/hadoop-daemon.sh start journalnode

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

格式化 HDFS 集群,Namenode 数据默认存放在/tmp,需要把数据拷贝到 h2
bin/hdfs namenode -format
scp -r /tmp/hadoop-hadoop 172.25.88.5:/tmp

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

格式化 zookeeper (只需在 h1 上执行即可)

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

启动 hdfs 集群(只需在 h1 上执行)

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

查看各节点状态

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

6、浏览器输入172.25.88.1、172.25.88.5查看其状态

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

7、测试故障自动切换

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

杀掉 h1 主机的 namenode 进程后依然可以访问,此时 h2 转为 active 状态接管 namenode

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

启动 h1 上的 namenode,此时为 standby 状态。

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

即hdfs 的高可用完成

三、yarn 的高可用
1、编辑 mapred-site.xml 文件
<configuration>
##指定 yarn 为 MapReduce 的框架
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

</configuration>
2、编辑 yarn-site.xml 文件

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

3、编辑 yarn-site.xml 文件

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

4、启动 yarn 服务

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

RM2 上需要手动启动

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

RM1为active状态,RM2为standby状态

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

5、测试 yarn 故障切换
杀掉 RM1主机的 ResourceManger进程后依然可以访问,此时 RM2转为 active 状态接管 ResourceManger

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

启动 RM1上的 ResourceManger,此时为 standby 状态。

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建

Hadoop分布式安装、HDFS的高可用、yarn的高可用及zookeeper集群搭建