赞
踩
本实验任务主要完成基于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基本的服务端操作命令。
在主节点上右击桌面上选择【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配置文件参数详解:
项目 | Value |
---|---|
tickTime | 为心跳会话超时世间,毫秒单位,如果超过该时间心跳监测没有回应(ack),判定该节点已死。 |
initLimit zookeeper | follow和leader进行数据同步容许的最大时长,更具业务需要可调整该参数。 |
syncLimit | 容许zookeeper follow 数据落后leader的最大数据。 |
dataDir | zookeeper存储内存数据快照的本地磁盘位置。zookeeper在运行期间会将数据存储在内存中,保证了访问的时效性。 |
clientPort | 监听客户端连接的端口;也即开放给客户连接的端口。 |
dataLogDir | 配置zookeeper存储事务日志的地方,不配置默认使用dataDir配置。目的是为了将事务日志和内存数据镜像分开存储。 |
server.x | 用户配置zookeeper集群服务器主机列表配置。配置规则server.x=[hostname]:nnnnn[:nnnnn], etc.第一个参数为机器主机名,后面两个为机器端口参数,例如2888用于和leader的通讯,3888为用于集群leader的选举。注意x为集群中该机器的编号(集群中唯一),该配置需要和dataDir目录下文件myid中的内容一致,为数字。 |
在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
分别进入三个节点到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结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。