搭建ZooKeeper集群环境

准备环境 : 至少3个hadoop节点.

zookeeper概念
1.1 zk可以用来保证数据在zk集群之间的数据的事务性一致。数据不能太大,默认为2mb以下.

安装zookeeper
2. 如何搭建ZooKeeper服务器集群
 2.1 zk服务器机群规模不小于3个节点,要求各服务器之间系统时间要保持一致(保证方法?)。
  

1 date -s 01/04/2015
2 date -s 12:04:20
3 clock -w

 2.2 在hadoop的/opt/目录下,解压缩 tar -zxvf zookeeper-3.4.5.tar.gz。并且设置环境变量 /etc/profile。
 2.3 在zk目录下的conf目录下,修改文件cp zoo_sample.cfg zoo.cfg
 2.4 编辑该文件,执行vi zoo.cfg
 

1 修改 dataDir=/opt/zk/data
2 在末尾添加
3  server.0=hadoop0:2888:3888
4  server.1=hadoop1:2888:3888
5  server.2=hadoop2:2888:3888

 2.5 创建文件夹mkdir /opt/zk/data
 2.6 在该data目录下,创建文件myid,并且赋值为0
 2.7 把zk目录复制到hadoop1和hadoop2中。

1 scp -r /opt/zk hadoop1:/opt/zk
2 scp -r /opt/zk hadoop2:/opt/zk

 2.8 把hadoop1中对应的myid的值修改为1
       把hadoop2中对应的myid的值修改为2
 2.9 启动,在三个节点上分别执行命令zkServer.sh start
 2.10 验证,在三个节点上分别执行命令zkServer.sh status
 

实验: 启动后可以查看日至zookeeper.out文件 tail -f zookeeper.out日志文件
-----------------------------总结---------------------------------------------

参与election(选举)的节点的模式:
 model:
    follower
    leader
 结论: 一个节点的伪分布与实际脱离太远. 真实环境中肯定是集群分布.
       运行中当zk Leader节点挂了话,zk会选举一个节点作为Leader节点.
 
 模拟zk保证数据一致问题操作方式:
  命令行操作
  Java API操作(很少用到)
 zkCli.sh
  其中zk相当于文件系统的目录结构,保证数据的一致性。
  java 和 shell 脚本都可以操作
 分布式应用
 
 补充:zk的节点类型:
  短暂型:ephemeral
  持久型:persistent

关于更详细的ZooKeeper内容请参考网上更详细的讲解,此内容为以后学习Hadoop基础上的HBase作准备.

原文地址:https://www.cnblogs.com/hnxubin/p/4398773.html