部署ZooKeeper
下载并解压ZooKeeper
- 登录agent1节点,进入“/usr/local”目录,下载zookeeper-3.4.6.tar.gz,并解压。
1 2 3
cd /usr/local wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz tar -zxvf zookeeper-3.4.6.tar.gz
- 建立软链接,便于后期版本更换。
1
ln -s zookeeper-3.4.6 zookeeper
添加ZooKeeper到环境变量
修改ZooKeeper配置文件
- 登录agent1节点,进入ZooKeeper所在目录。
1
cd /usr/local/zookeeper/conf
- 拷贝配置文件。
1
cp zoo_sample.cfg zoo.cfg
- 修改通用配置。
- 打开文件。
1
vi zoo.cfg
- 按“i”进入编辑模式,修改数据目录。
1
dataDir=/usr/local/zookeeper/tmp
- 可选:添加AdminServer配置。(此配置项于ZooKeeper 3.5.0版本引入,低于此版本可跳过此步骤)
1
admin.enableServer=false
- 在文件末尾添加如下代码,其中server.1~server.3是部署ZooKeeper的节点。
1 2 3
server.1=agent1:2888:3888 server.2=agent2:2888:3888 server.3=agent3:2888:3888
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 添加JMX配置。
- 编辑文件zkServer.sh。
1
vi /usr/local/zookeeper/bin/zkServer.sh
- 按“i”进入编辑模式,添加JMX配置至图示位置。
1
JMXDISABLE=true
若使用ZooKeeper 3.6及以上版本,则可在“/usr/local/zookeeper/conf”目录下新建文件zookeeper-env.sh,将JMX配置设置在此文件中,便于后续配置调整。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 编辑文件zkServer.sh。
- 可选:添加JVM配置。
若使用ZooKeeper 3.6及以上版本,相关配置已预先设置完毕,可跳过此步骤。
- 编辑文件zkEnv.sh。
1
vi /usr/local/zookeeper/bin/zkEnv.sh
- 按“i”进入编辑模式,添加如下配置至文件末尾。
1 2 3 4 5 6 7
# default heap for zookeeper server ZK_SERVER_HEAP="${ZK_SERVER_HEAP:-10000}" export SERVER_JVMFLAGS="-Xmx${ZK_SERVER_HEAP}m $SERVER_JVMFLAGS" # default heap for zookeeper client ZK_CLIENT_HEAP="${ZK_CLIENT_HEAP:-256}" export CLIENT_JVMFLAGS="-Xmx${ZK_CLIENT_HEAP}m $CLIENT_JVMFLAGS"
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 编辑文件zkEnv.sh。
- 创建“tmp”目录作数据目录。
1
mkdir /usr/local/zookeeper/tmp
- 在“tmp”目录中创建一个空文件,并向该文件写入myid内容。
1 2
touch /usr/local/zookeeper/tmp/myid echo 1 > /usr/local/zookeeper/tmp/myid
- 配置文件权限。
1 2 3 4 5
chmod 750 /usr/local/zookeeper find /usr/local/zookeeper/bin -name "*.sh" | xargs -i chmod 500 {} find /usr/local/zookeeper/conf -name "*" -type f | xargs -i chmod 600 {} chown -R root /usr/local/zookeeper-3.4.6 chgrp -R root /usr/local/zookeeper-3.4.6
同步配置到其它节点
- 登录agent1节点,将配置好的ZooKeeper拷贝到其它节点。
1 2
scp -r /usr/local/zookeeper-3.4.6 root@agent2:/usr/local scp -r /usr/local/zookeeper-3.4.6 root@agent3:/usr/local
- 登录agent2、agent3,创建软链接并修改myid内容。
- agent2:
1 2 3
cd /usr/local ln -s zookeeper-3.4.6 zookeeper echo 2 > /usr/local/zookeeper/tmp/myid
- agent3:
1 2 3
cd /usr/local ln -s zookeeper-3.4.6 zookeeper echo 3 > /usr/local/zookeeper/tmp/myid
- agent2: