我今天又学会搭建Zookeeper,我看完书上的介绍后,对zookeeper的理解是这样的,当集群运行时,难免会出现故障/bug等问题导致任务失败,namenode节点又是很关键的节点,如果,namenode节点失败,那么集群也就不工作了。在Hadoop1.x的版本中就是因为单点故障,导致Hadoop1.x的使用效果并不很理想。在Hadoop2.x的版本中因为出现了zookeeper,所以针对单点故障的解决有了办法,就是使用zookeeper创建备份的namenode节点,每隔一段时间,namenode节点都会发送心跳信息给zookeeper,当正在运行namenode节点失败时,则会启用备份的namenode节点补上,使任务继续下去。我认为这就是zookeeper的作用。
接着之前的Hadoop集群搭建2的基础上继续搭建zookeeper。
准备材料:安装包:zookeeper-3.5.8-bin.tar.gz,传输工具:xftp,虚拟机:master,slave1,slave2。
先使用传输工具将安装包zookeeper-3.5.8-bin.tar.gz传输到master的/home/legend/hadoop/路径下。如下图:
然后,进入路径/home/legend/hadoop/后,查看路径下面是否存在文件。如下图:
解压apache-zookeeper-3.5.8-bin.tar.gz。如下图:
接着用命令重命名,如下图:
然后,编辑环境变量,创建一个zookeeper环境变量,在原有的Java环境变量中加入zookeeper的变量,如下图:
之后,进入zookeeper,找到conf配置文件夹,如下图:
进入conf文件夹,查看列表文件,如下图:
复制文件zoo_sample.cfg为zoo.cfg,如下图:
再查看,结果:
编辑zoo.cfg文件,如下图:
修改dataDir和clientPort。
在最后一行加上,如下图所示内容:
最后,返回到上级目录一直到zookeeper下,如下图:
然后新建一个文件夹zkdata,如下图:
结果:
进入zkdata,编辑一个新的myid文件,如下图:
文件内容是1,然后保存退出。
再接下来,就是复制zookeeper文件夹到slave1和slave2的Hadoop文件夹里面去。命令如下图:
再然后,就是复制环境变量,如下图:
配置完成后,打开slave1和slave2,修改之前的myid文件,slave1中修改为2,slave2中修改为3。
保存配置并退出。
最后,验证zookeeper的搭建是否成功,如果不出意外的话,结果会是这样的,在master,slave1,slave2分别都执行zkServer.sh start。如下图:
然后,使用命令zkServer.sh status,查看各自的身份,如下图:
zookeeper搭建完了,心情舒畅,感谢大家前来观看鄙人的文章,文中或有诸多不妥之处,还望大家指出和海涵。