集群架构
3个节点,分别是node1,node2,node3,已经配置好网络,JDK, 节点间的免密码登录等,另外集群有多少个节点都无所谓, 这里使用linux的shell脚本命令执行安装, 下面开始配置:
1,下载Zookeeper
目的: 先在node1上安装zookeeper的完整版本, 然后分发到其它节点.
1.1, 下载安装包:
https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
1.2, 先安装配置node1节点
上传安装包文件到linux的node1节点
2,配置zookeeper
2.1, 解压缩
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz -C /opt/bigdata/
在zookeeper358(这里对解压缩的目录改名方面操作)中创建保存myid的文件夹
mkdir -p /opt/bigdata/zookeeper358/zkdatas
2.2, 编辑配置文件
zookeeper安装包conf目录中给准备了zoo_sample.cfg配置模板, 我们改名为zoo.cfg, 然后在其中修改即可
cd /opt/bigdata/zookeeper358
cp ./conf/zoo_sample.cfg ./conf/zoo.cfg
vim ./conf/zoo.cfg
配置文件中内容如下: 将配置项前面的#注释去掉即可; 没有的, 需要添加如本博文所列内容
dataDir=/opt/bigdata/zookeeper358/zkdatas
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
2.3, 分发到其它两台机器上
cd /opt/bigdata/
执行
for host in node2 node3
do
scp -r ./zookeeper358/ $host://$PWD
done
2.4, 创建myid文件
for i in {1..3}
do
ssh node$i "echo $i >/opt/bigdata/zookeeper358/zkdatas/myid"
done
2.5, 启动
zkServer.sh
for i in {1..3}
do
ssh node$i "source /etc/profile;/opt/bigdata/zookeeper358/bin/zkServer.sh start"
done
遇到的问题:
Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
解决: 下错了包, 删掉重装(是不是有童鞋和我一样, 下载了apache-zookeeper-3.5.8.tar.gz, 这个包是少文件的, 一定要下载apache-zookeeper-3.5.8-bin.tar.gz)
for i in {1..3}
do
ssh node$i "rm -rf /opt/bigdata/zookeeper358"
done
for host in node2 node3
do
scp -r /opt/jdk8/ $host://$PWD
done