一、任务描述
本实验任务主要完成基于ubuntu环境的搭建Zookeeper完全分布式模式配置工作。通过完成本实验任务,要求学生熟练掌握Zookeeper完全分布式模式配置的方法,为后续实验的开展奠定zookeeper平台基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。
二、任务目标
1、掌握Zookeeper完全分布式模式的环境搭建
三、任务环境
Ubuntu(三台节点:mater:192.168.0.3,slave1:192.168.0.2,slave2:192.168.0.4)、Zookeeper3.4.5
四、任务分析
Apache Zookeeper 由 Apache Hadoop 的 Zookeeper 子项目发展而来,现已经成为 Apache 的顶级项目,它是一个开放源码的分布式应用程序协调服务,是Google Chubby的一个开源实现。它是一个为分布式应用提供一致性服务的组件,提供的功能包括:配置管理,名字服务,提供分布式同步、队列管理、集群管理等。
Zookpeeper的基本架构:
作为ZooKeeper架构的一部分的每个组件在下表中进行了说明:
我们的任务是:
1) 学会Zookeeper完全分布式集群的配置。
2) 学会Zookeeper基本的服务端操作命令。
五、 任务实施
步骤1、完全分布式集群的配置
在主节点上右击桌面上选择【Open in Terminal】打开终端。
在弹出的终端中输入【cd /simple/soft】进入软件包的所在文件夹中,并通过【ls】查看文件夹下所有软件。如图1所示。
图1 查看软件包
使用命令【tar -zxvf zookeeper-3.4.6.tar.gz -C /simple】解压zookeeper到simple目录下。如图2所示。
图2 解压Zookeeper软件包
使用【cd /simple】进入软件的所在文件夹中,使用命令【mv zookeeper-3.4.6 zookeeper】重命名为zookeeper。如图3所示。
图3 重命名zookeeper
进入到zookeeper/conf目录下,使用命令【cp zoo_sample.cfg zoo.cfg】复制zoo_sample.cfg文件并改名zoo.cfg。如图4所示。
图4 生成zoo.cfg文件
使用命令【vi zoo.cfg】进行zoo.cfg配置文件修改,设置集群配置参数,添加集群配置。如图5所示。
图5 配置zoo.cfg文件
♥ 温馨提示
zoo.cfg配置文件参数详解:
在zookeeper/目录下新建zk_data文件夹,并在此zk_data/目录下新建myid文件。如图6所示。
图6 创建myid文件
♥ 知识链接
myid文件作用
集群启动的时候会去zoo.cfg配置文件的dataDir目录下查找myid,检查编号是否一致。
将zookeeper分发到其他两个节点的/simple目录下。如图7-8所示。
图7 分发Zookeeper到slave1
图8 分发Zookeeper到slave2
♥ 知识链接
Linux scp命令用于Linux之间复制文件和目录。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
复制目录命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
应用实例:
scp -r /home/space/music/ root@slave1:/home/root/others/
scp -r /home/space/music/ slave2:/home/root/others/
上面命令将本地 music 目录复制到远程 others 目录下。
在主节点zookeeper文件夹zk_data/下,对myid文件进行编译【echo 1 >> myid】。如图9所示。
图9 配置主节点myid文件
相同的步骤在第二个节点,为myid文件赋值2。如图10所示。
图10 配置slave1节点myid文件
相同的步骤在第三个节点,为myid文件赋值3。如图11所示。
图11 配置myid文件3
步骤2、启动Zookeeper集群
分别进入三个节点到zookeeper bin文件下,通过命令【./zkServer.sh start】来启动服务。如图12-14所示。
图12 启动Zookeeper集群
图13 启动Zookeeper集群
图14 启动Zookeeper集群
在三台节点上利用【./zkServer.sh status】查看Zookeeper节点状态。如图15-17所示。
图15 master查看Zookeeper节点状态
图16 slave1查看Zookeeper节点状态
图17 slave2查看Zookeeper节点状态
♥ 温馨提示
Zookeeper工作流程-Leader
1 .恢复数据;
2 .维持与Learner的心跳,接收Learner请求并判断Learner的请求消息类型;
3 .Learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。
Zookeeper工作流程-Follower
1.向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息);
2.接收Leader消息并进行处理;
3.接收Client的请求,如果为写请求,发送给Leader进行投票;
4.返回Client结果。