准备环境 : 至少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作准备.