初识zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
由于工程师不能很好地使用锁机制以及基于消息协调机制有时候不适合使用,因此需要一种可靠的、方便的协调服务。zookeeper就解决了这样的问题,避免竞争条件和死锁的问题。
有关zookeeper原理可参考:http://cailin.iteye.com/blog/2014486/
安装
1.安装包下载
目前(2017年3月7号)稳定最高版本是3.4.9,下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2.解压到用户目录下并配置环境变量
gedit ~/.bashrc
添加:
export ZOOKEEPER_HOME=解压路径
export path=${ZOOKEEPER_HOME}/bin
保存之后
source ~/.bashrc
3.配置zoo.cfg
新建zoo.cfg文件并添加如下内容
单机版
tickTime=2000
dataDir=/home/user/hadoop/zookeeper-3.4.9/data
clientPort=2181
多节点版
(最少三个节点)每个节点都需要复制一份zookeeper
tickTime=2000
dataDir=/home/user/hadoop/zookeeper-3.4.9/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
配置日志输出目录(log4j.properties)
zookeeper.log.dir=/home/user/hadoop/zookeeper-3.4.9/logs
4.启动zookeeper
zkServer.sh start
5.操作zookeeper
#连接Connection
zkCli.sh -server 127.0.0.1:2181
PS:对于完全分布式版本,需要在datadir下(zoo.cfg配置文件中可看到具体路径)新建myid,其中存放对应id(1 2 3,对应配置文件中server.x=... 其中x对应id)