ZooKeeper是一个为分布式应用所设计的开源协调服务,其设计目的是为了减轻分布式应用程序所承担的协调任务。它可以为用户提供同步、配置管理、分组和命名等服务。
jstorm需要zk配合使用,记录安装文档。
一、基础环境:
JDK :1.8.0_65 (要求1.6+)
ZooKeeper:3.4.10
主机数:3(要求3+,且必须是奇数,因为ZooKeeper的选举算法)
主机名 | IP地址 | JDK | ZooKeeper | myid |
Master | 10.116.33.109 | 1.8.0_65 | server.1 | 1 |
Slave1 | 10.27.185.72 | 1.8.0_65 | server.2 | 2 |
Slave2 | 10.25.203.67 | 1.8.0_65 | server.3 | 3 |
二、节点上安装配置:
下载并解压ZooKeeper
wget 'http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz'
tar zxvf zookeeper-3.4.10.tar.gz
设置zoo.cfg
$ZOOKEEPER_HOME 路径: /data/jstorm/zookeeper-3.4.10
cd $ZOOKEEPER_HOME/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/fesh/data/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
zk端口号说明
1、2181:对cline端提供服务
2、3888:选举leader使用
3、2888:集群内机器通讯使用(Leader监听此端口)
设置myid
在节点配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,$ZOOKEEPER_HOME/conf/zoo.cfg文件中配置的server.X,则myid文件中就输入这个数字X。(即在每个节点上新建并设置文件myid,其内容与zoo.cfg中的id相对应)这里master节点为 1
mkdir -p /data/zookeeper
cd /data/zookeeper
touch myid
echo "1" > myid
启动服务
每台服务器上$ZOOKEEPER_HOME/bin目录下执行
./zkServer.sh start
查看状态
./zkServer.sh status