s200与s206为HA namenode DZFC
s201-203为journal datanode zookeeper 三台机子
s201-s203三台机子
创建文件
echo 1> /home/centos/zookeeper/myid
echo 2> /home/centos/zookeeper/myid
echo 3> /home/centos/zookeeper/myid
zoo.cfg配置
server.1=192.168.77.201:2888:3888
server.2=192.168.77.202:2888:3888
server.3=192.168.77.203:2888:3888
启动服务器
zkServer.sh start
查看状态
xcall.sh "/home/centos/zk/bin/zkServer.sh status"
hadoopHA见其他篇:https://blog.csdn.net/ssllkkyyaa/article/details/86678165
接下来建立zookeeper与hadoop HA管理联系
yarn配置
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>s200</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>s206</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>s200:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>s206:8088</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>s201:2181,s202:2181,s203:2181</value>
</property>
完全0开始部署hadoop HDFS的HA集群,使用zk实现自动容灾
-------------------------------------------------
1.停掉hadoop的所有进程
2.删除所有节点的日志和本地数据.
3.改换hadoop符号连接为ha
4.登录每台JN节点主机,启动JN进程.
[s201-s203]
$>hadoop-daemon.sh start journalnode
5.登录其中一个NN,格式化文件系统(s200)
$>hadoop namenode -format
6.复制200目录的下nn的元数据到s206
$>scp -r ~/hadoop/* centos@s206:/home/centos/hadoop
7.在未格式化的NN(s206)节点上做standby引导.
7.1)需要保证200的NN启动
$>hadoop-daemon.sh start namenode
7.2)登录到s206节点,做standby引导.
$>hdfs namenode -bootstrapStandby
7.3)登录200,将s200的edit日志初始化到JN节点。
$>hdfs namenode -initializeSharedEdits
8.启动所有数据节点.
$>hadoop-daemons.sh start datanode
9.登录到206,启动NN
$>hadoop-daemon.sh start namenode
10.查看webui
http://s200:50070/
http://s206:50070/
11.自动容灾
11.1)介绍
自动容灾引入两个组件,zk quarum + zk容灾控制器(ZKFC)。
运行NN的主机还要运行ZKFC进程,主要负责:
a.健康监控
b.session管理
c.选举
11.2部署容灾
a.停止所有进程
$>stop-all.sh
b.配置hdfs-site.xml,启用自动容灾.
[hdfs-site.xml]
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
c.配置core-site.xml,指定zk的连接地址.
<property>
<name>ha.zookeeper.quorum</name>
<value>s201:2181,s202:2181,s203:2181</value>
</property>
d.分发以上两个文件到所有节点。
12.登录其中的一台NN(s200),在ZK中初始化HA状态
$>hdfs zkfc -formatZK
13.启动hdfs进程.
$>start-dfs.sh
14.测试自动容在(206是活跃节点)
$>kill -9
配置RM的HA自动容灾
----------------------
1.配置yarn-site.xml
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>s200</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>s206</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>s200:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>s206:8088</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>s201:2181,s202:2181,s203:2181</value>
</property>
2.使用管理命令
//查看状态
$>yarn rmadmin -getServiceState rm1
//切换状态到standby
$>yarn rmadmin -transitionToStandby rm1
3.启动yarn集群
$>start-yarn.sh
4.hadoop没有启动两个resourcemanager,需要手动启动另外一个
$>yarn-daemon.sh start resourcemanager
5.查看webui
6.做容灾模拟.
kill -9