hdfs yarn 启动成功后访问的地址如下:
http://h2master:8088/cluster yarn
0) 自动切换流程简介:
FailoverController Active
FailoverController Standby
分别作为zk集群在namenode集群的代理
代理人感知到namenode集群出现了问题后,
zk集群会通过代理人FailoverController
将amenode集群中standby状态改为active
自动切换ha集群图如下:
FailoverController服务是zk的代理 ,内嵌在namenode服务中,接收zk的监督,
当某个namenode挂掉后,zk会通过shell脚本启动namenode standby节点变成active节点。
1) 各节点角色:
namenode:h2master h2master2
datanode:h2sliver112 h2sliver113 h2sliver114
journalnode:h2master h2master2 h2sliver112
zookeeper: h2master h2master2 h2sliver112
2)hadoop2 搭建手工切换ha的hdfs集群基础上:
a) 关闭所有启动角色
b) 删除所有机器/usr/local/hadoop2.5/tmp 和 /usr/local/hadoop2.5/logs的内容
3) zookeeper集群安装:
4) hdfs配置文件:(hadoop-env.sh、core-site.xml、hdfs-site.xml、slaves)
5) 删除其他节点的hadoop文件夹,修改好后拷贝到其余节点
scp -r /usr/local/hadoop2.5 h2master2:/usr/local/
6) 启动hadoop2 hdfs集群
7) 验证自动切换:
关闭h2master的namenode进程:
再次刷新
http://h2master:50070/ http://h2master2:50070/ 结果如下:
Overview 'h2master2:9000' (active) ----> zk自动切换节点h2master2为active状态
h2master无法连接
8) 总结:自动切换比手工切换多出来的步骤
(1)配置上core-site.xml增加了配置项ha.zookeeper.quorum(zk集群的配置);
hdfs-site.xml中把dfs.ha.automatic-failover.enabled.cluster1改为true
(2)操作上格式化zk,执行命令bin/hdfs zkfc -formatZK;
启动zkfc,执行命令sbin/hadoop-daemon.sh start zkfc
如下操作不需要关闭所有服务,仅需要对yarn涉及到的服务进行关闭开启即可
9) 搭建yarn集群: 仅需要配置Resourcemanager即可
为了能够运行MapReduce程序,需要让各个NodeManager在启动时加载shuffle server,shuffle server实际上是Jetty/Netty Server,Reduce Task通过该server从各个NodeManager上远程拷贝Map Task产生的中间结果。 这就是配置
10 yarn上启动historyserver(目的,在页面上可以看任务执行的所有节点日志信息汇总)