ZooKeeper故障节点替换过程详解
《ZooKeeper故障节点替换过程详解》要点: 作者介绍 康壮,大连楼兰科技股份数据库运维组负责人,主要负责集团内部MySQL、MongoDB、Redis数据库运维管理工作.曾在第三方数据库运维公司任职技术部经理,负责政府行业的Oracle数据库运维工作,具有Oracle OCP、OCM、MySQL OCP等相关认证、对数据库架构设计、故障处理、优化有深入的理解. 一、环境描述我的生产环境ZooKeeper 版本3.4.6,5个节点组成的ZooKeeper集群.ZooKeeper集群为一套8个节点的Hadoop集群和HBase 集群提供高可用保障. 二、问题描述因为某些特殊原因,需要替换掉myid为5(IP:10.10.10.30)的ZooKeeper节点,故障节点IP:10.10.10.30替换为10.10.10.37.10.10.10.37节点是现有环境的namenode节点,Hadoop用户、相关目录,授权、hosts文件已经满足ZooKeeper的部署要求. 三、ZooKeeper相关知识点在ZooKeeper的设计中,集群中的任何一个节点的zoo.cfg文件内容是一样的,因此最好使用SVN把这个文件管理起来,保证每个机器都能使用一份相同的配置. 在配置文件中(zoo.cfg),可以按照这样的格式,每行写一个机器配置:server.id=host:port:port. 关于这个id,我们称之为Server ID,标识host机器在集群中的机器序号,在每个ZK机器上,我们需要在数据目录(数据目录就是dataDir参数指定的那个目录)下创建一个myid文件,myid中就是这个Server ID数字. ZooKeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的.ZooKeeper 节点数一般为奇数个,比如我的环境部署了5个节点的ZooKeeper服务,如果有两个节点的ZooKeeper异常是不会影响ZooKeeper集群对外提供服务的. 四、部署新节点ZooKeeper1、配置参数如下(zoo.cfg)
2、关闭10.10.10.37主机 3、备份原有zoo.cfg文件,cp zoo.cfg zoo.cfg0420 4、本案例在现有10.10.10.37节点部署myid为5的ZooKeeper服务,从其它可用节点scp 软件包到10.10.10.37节点,修改配置文件主机IP,使用新主机的IP替换掉原有主机的IP 5、使用新的zoo.cfg文件,替换掉其他4个节点的zoo.cfg文件,使用scp远程传输直接覆盖 6、10.10.10.37节点创建myid 命令:echo “5” > /data/ZooKeeper/myid 五、修改Hadoop配置文件,然后替换所有Hadoop节点配置文件1、修改hdfs-site.xml
2、修改yarn-site.xml
六、修改HBase配置文件(HBase-site.xml),然后替换所有HBase节点配置
七、重启相关服务部署ZooKeeper节点比较简单,当初部署集群的时候怎么部署的,现在就重新部署一个节点就可以,注意修改zoo.cfg配置文件.其它依赖于ZooKeeper集群的相关服务比如Hadoop、HBase、Hive、flume等都需要修改配置文件,小技巧,记住修改的是xxx-site.xml文件关键字是site.xml文件. 接下来需要重启服务,启动顺序为ZooKeeper—>Hadoop—>HBase,关闭顺序为HBase—>Hadoop—>ZooKeepe. 具体命令如下: 1、重启zookeepe命令:./zkServer.sh restart 2、关闭HBase集群命令:./stop-HBase.sh 3、关闭Hadoop集群命令: ./stop-yarn.sh && ./stop-dfs.sh ./yarn-daemon.sh stop resourcemanager 4、启动Hadoop集群命令: ./start-yarn.sh && ./start-dfs.sh ./yarn-daemon.sh start resourcemanager 5、启动HBase集群命令:./start-HBase.sh 6、通过命令验证配置是否同步 可以看到所有相关系统的配置都已经同步到了新增的ZooKeeper-server中. 7、使用网页方式验证Hadoop集群和HBase状态,不同环境端口可能不一样 10.10.10.37:8088 10.10.10.37:50070 八、遇到问题1、直接启动新节点ZooKeeper报错信息 (编辑:ASP站长网) |