文章目录
- 第7章:hadoop2.x HA架构与部署
- hdfs-HA架构原理介绍
- hdfs-HA详细配置
- 基于Zookeeper的HA配置
- hdfs-HA服务启动及自动故障转移测试
- yarn-HA架构原理介绍
- yarn-HA详细配置
- yarn-HA服务启动及自动故障转移测试
第7章:hadoop2.x HA架构与部署
包括两方面内容:hdfs、yarn。
- hdfs配置中主要是namenode:因为负责存储数据存储的元数据。
- yarn配置中主要是resourcemanager:集群资源的管理和任务调度的节点。
hdfs-HA架构原理介绍
备注:
- Namenode主要两部分:Fslmage(源数据整理,会根据Edits定期更新)、Edits(数据记录)
- namenode相当于字典索引,如果namenode挂掉,则不能对外提供hdfs服务。
- standby节点会通过JournalNode节点(来自Active记录的日志)备份日志。
- Zookeeper上启动观察者模式,观察namenode的状态以及是否实施故障转移。
- JournalNode是保证Edits日志的完整性(有副本数,同datanode)、保证另一台namenode实时获取日志信息。这个节点服务是轻量级的,所以可以放在namenode或者datanode或者其他的节点服务器上。
- activeNamenode和standbyNamenode实时保持同步,并且也都会接受来自datanode的心跳报告。
hdfs-HA详细配置
HDFS-HA
机器1 | 机器2 | 机器3 |
namenode | namenode | |
datanode | datanode | datanode |
journalnode | journalnode | journalnode |
Zookeeper | Zookeeper | Zookeeper |
zkfc | zkfc |
详细参考官方网站配置:
基于Zookeeper的HA配置
hdfs-HA服务启动及自动故障转移测试
- 特别注意:
在重新格式化namenode时必须先启动journalnode,因为journalnode用于记录HA日志。不然会报错。
HA测试:
- 测试手动HA:
将namenode1进程kill掉,之后standby节点变为active状态,hdfs也可以访问。
yarn-HA架构原理介绍
备注:
yarn-ha实际上要比hdfs-ha实现上要简单一点:在yarn-ha中,只需要RM向Zookeeper写它的状态就好(不需要配置内部的journalnode服务节点)
yarn-HA详细配置
RM-HA
机器1 | 机器2 | 机器3 |
resourcemanager | resourcemanager | |
nodemanager | nodemanager | nodemanager |
(备注:不像hdfs-ha一样,需要额外启动一个自动故障转移进程zkfc,因为它是把类似的功能弄到自身的一个线程里去了)
yarn-HA服务启动及自动故障转移测试
步骤:
1.启动两个resourcemanager进程
2.启动三个nodemanager进程
3.测试mapreduce wordcount程序
在跑map任务的时候,将active RM节点的RM进程干掉
由图可见,RM服务由RM1转移到RM2了。所以验证HA自动故障转移成功
备注:
- 如果运行之后,手动输入standby的RM的地址,会自动跳转到active节点的RM地址