一、leader的推选过程分析 --------------------------------------------------------- 1.所有的主机在同一个目录下创建临时的序列节点 2.节点下就会生成同样名称但是后缀不同的路径 -- /xx/xxx000000001,/xx/xxx000000002(如果有一个创建001了,第二个创建的时候就是002) 3.这样就可以知道谁处理请求的速度最快了(数值最小的那个肯定最快)。所以,就将小号的作为leader,其余的作为follower 4.然后通过序号进行顺序"监控",002监控001,003监控002 ...(其实就是按照序号从小到大排队,注册观察者,大号监控小号) 5.当leader挂掉,leader创建的那个节点[/xx/xxx000000001]就会被同步删除,同时,队伍中的下一个序号[002],会查找,是否还有比它自己靠前的数值(000啥的) 6.如果有比自己还小的,就推选小的当leader.如果没有比自己再小的了,自己就当leader 二、配置完全分布式zk集群 ------------------------------------------------------- 1.一般配置3个主机节点 s100 s200 s300 2.每台机器都安装zk 3.配置zk a.修改[etc/zoo.cfg],然后分发 在文件末尾添加 server.1=s100:2888:3888 server.2=s200:2888:3888 server.3=s300:2888:3888 b.在每台主机的/home/ubuntu/zookeeper中添加myid文件,内容分别是1,2,3 c.修改zookeeper的日志存放目录[conf/log4j.properties] zookeeper.log.dir=/home/ubuntu/zookeeper/logs zookeeper.tracelog.dir=/home/ubuntu/zookeeper/logs 注意:/home/ubuntu/zookeeper/logs文件夹必须存在 4.启动集群 -- 在每台主机上启动zkserver $> zkServer.sh start 5.查看每台服务器的状态 $> zkServer.sh status 三、从零开始部署hadoop ha集群,并实现zk自动容灾 ----------------------------------------------------------------- 1.停止hadoop的所有进程 $> stop-all.sh 2.删除hadoop的所有节点的日志和本地数据,包括journalnode的日志和数据 $> xcall.sh "rm -rf /soft/hadoop/logs/*" //删除所有节点的日志 $> xcall.sh "rm -rf /home/ubuntu/hadoop/*" //删除所有节点的本地数据 $> xcall.sh "rm -rf /home/ubuntu/journal/*" //删除所有节点的ha数据 3.改换hadoop的快捷连接指向ha 4.登录每一台JN节点主机,启动JN进程 [s200 s300 s400] $> hadoop-daemon.sh start journalnode 5.格式化文件系统 在s100上格式化文件系统 $s100> hadoop namenode -format; 6.复制s100上的nn的元数据到s500下 $s100> scp -r ~/hadoop/* ubuntu@s500:/home/ubuntu/hadoop 7.启动s100的namenode $s100> hadoop-daemon.sh start namenode; 8.在未格式化的NN(s500)上执行命令,做standby引导,过程中选择N,不要格式化 $s500> hdfs namenode -bootstrapStandby 9.将s100的编辑日志同步到JNs上 $s100> rm /soft/hadoop/dfs/name/in_use.lock; //不删的话会提示格式化JN失败。是锁住的 $s100> hdfs namenode -initializeSharedEdits; //过程中询问是否格式化JN,选择Y 10.启动s500的名称节点和所有的数据节点以及yarn节点 $s100> hadoop-daemons.sh start datanode; //启动所有的数据节点 $s100> start-yarn.sh //启动yarn进程 $s500> hadoop-daemon.sh start namenode; //启动2NN 11.查看webui s100:50070 s500:50070 12.自动容灾介绍 a.自动容灾要引入两个组件:ZooKeeper quorum, and the ZKFailoverController process (ZKFC). b.运行NN的主机,要运行ZKFC进程 ZKFC主要负责:健康监控,session管理,leader管理 13.开始配置自动容灾 a.停止所有hadoop相关的进程 $> stop-all.sh b.修改配置文件并分发到所有节点,启用自动容灾并指定zk的服务器地址 [hdfs.site.xml] <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> [core-site.xml] <property> <name>ha.zookeeper.quorum</name> <value>192.168.43.131:2181,192.168.43.132:2181,192.168.43.133:2181</value> </property> c.在ZK中初始化ha状态--登录其中一台NN $> xcall.sh "rm -rf /home/ubuntu/zookeeper/version-2" //干掉所有节点上的zk数据文件夹,以免干扰[~/zk/version-2] $s100> hdfs zkfc -formatZK; //在zookeeper上初始化ha节点 $zk > ls /hadoop_ha //查看zookeeper上的ha节点 d.在一台NN主机上启动hdfs进程 $s100> start-dfs.sh e.查看webui 14.测试自动容灾 手动杀死活跃节点,然后查看webui 四、配置ResourceManager(Yarn)的自动容灾 ------------------------------------------------------------------------ 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>s100</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>s500</value> </property> <property> <name>yarn.resourcemanager.webapp.address.rm1</name> <value>s100:8088</value> </property> <property> <name>yarn.resourcemanager.webapp.address.rm2</name> <value>s500:8088</value> </property> <property> <name>yarn.resourcemanager.zk-address</name> <value>192.168.43.131:2181,192.168.43.132:2181,192.168.43.133:2181</value> </property> 2.启动yarn集群 $s100> start-yarn.sh //启动yarn $s500> yarn-daemon.sh start resourcemanager //在s500上单独启动RM 3.使用管理命令(慎用,因为已经zookeeper自动化管理了) $s100> yarn rmadmin -getServiceState rm1 //查看状态 $s100> yarn rmadmin -getServiceState rm2 $s100> yarn rmadmin -transitionToStandby rm1 //切换状态到standby 4.容灾测试 手动杀死当前活跃的RM进程,查看是否容灾了
大数据之zookeeper(二) --- leader的推选过程分析,配置完全分布式zk集群,从零开始部署hdfs和yarn的HA集群,并实现zk自动容灾
最新推荐文章于 2022-09-17 22:55:38 发布