hadoop生态系统之zookeeper的部署
部署zookeeper
zookeeper可以存储类似于文件系统的目录节点树方式的数据,主要通过维护和监控你存储的数据的状态变化,触发事件,
从而进行基于数据的集群管理,zookeeper的用法,就类似如目录节点树的操作,首先创建一个目录节点,给某个目录节点设置数据,获取某个目录节点的所有子目录节点,
给某个目录节点设置权限和监控这个目录节点的状态变化,通知目录节点的拥有者。
zookeeper作为一个集群系统以外的管理系统,它对所管理的集群是无耦和的,它提供一个存储和管理数据场所,集群系统将它的管理模块入驻其中,
一旦数据的状态发生变化,Zookeeper就将负责通知相应的住户作出反应,从而实现管理Master/Slave集群。
此外,zookeeper也适合用于集群的配置管理,共享琐,队列管理等。作为一个独立的分布式集群的协调系统它是很优秀的,值得一试。
zookeeper可以分布式部署,也可以只有一个,zookeeper的节点数量只能是单数
选用cloudera的 zookeeper3.4.5-cdh4.3.0
选用理由:依据cloudera的特色,cloudera知名,有实力,商用性强,生态系统组件完善,且各个组件版本对应正确,文档维护好。
申请的机器:
192.168.2.20
192.168.2.21
192.168.2.22
假设你已经安装好了
配置过程:
zoo.cfg文件
一般在conf下面有一个 zoo_sample.cfg文件,配置项不多。你把它复制为 zoo.cfg
# tick间隔毫秒
tickTime=2000
#同步阶段可以采取tick次数限制,与tickTime相乘就是各个zookeeper server交互时的timeout时间
initLimit=10
#发送请求跟收到leader回应之间的tick次数限制,这个将会导致一个zookeeper server过期。
syncLimit=5
# snapshot保存路径.
dataDir=/${zookeeper路径}/data/zookeeper
# 监听端口,默认就行
clientPort=2181
#2888是各个zookeeper server连接的时候的远程端口,3888是选举leader时候的端口,使用默认。
server.1=server20:2888:3888
server.2=server21:2888:3888
server.3=server22:2888:3888
我们是不需要特殊指定zookeeper leader的。
在各个zookeeper server创建myid文件标志当前主机:
192.168.2.20运行
echo '1' > /${zookeeper路径}/data/zookeeper/myid
192.168.2.21运行
echo '2' > /${zookeeper路径}/data/zookeeper/myid
192.168.2.22运行
echo '3' > /${zookeeper路径}/data/zookeeper/myid
需要在每一台机器上都启动zookeeper
zkServer.sh start