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家目录,并且后续操作一定要切换成hadoop用户的身份进行相应操作

添加环境变量,查看进程

伪分布操作,需要ssh免密

设置ssh免密

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

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

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

浏览器输入:172.25.88.1:50070

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

创建一个文件夹

查看

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

二、Hadoop完全分布式搭建

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

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

Server2、server3免密登陆测试

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

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

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

3、在各节点启动服务

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

编辑 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>

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

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

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

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

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

查看各节点状态

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

7、测试故障自动切换

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

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

即hdfs 的高可用完成

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

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

3、编辑 yarn-site.xml 文件

4、启动 yarn 服务

RM2 上需要手动启动

RM1为active状态,RM2为standby状态

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值