您的位置:首页 > 其它

Zookeeper 集群环境搭建

2017-03-28 07:45 417 查看
参考官方文档,基于ZK3.4.9  ,JDK1.8, CENTOS 7

下载ZK 安装包,http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz   推荐迅雷下载
集群环境,准备至少三台的奇数个CentOS主机, 依据来源于ZK的ZAB协议,可查询相关资料论证.
为保证集群一致性,强烈建议使用统一的hostname, 以笔者masterN为例, ZK安装包统一置于/app目录下, CentOS 7 hostname 修改位置:./etc/hostname
tar -zxf  zookeeper-3.4.9.tar.gz   分别解压ZK 到 /app 目录下

mv zookeeper-3.4.9  zookeeper 对目录重命名,此处不考虑多版本的问题,自行决定,另查看版本也可直接查看jar ,该操作可三主机同步进行.

任意选一主机, cd /app/zookeeper/conf ;cp zoo_sample.cfg  zoo.cfg;vi zoo.cfg; 做如下配置

dataDir=/data/zookeeper


创建zk data存储目录 , cd  / ;mkdir data; cd data; mkdir zookeeper;
vi zoo.cfg 配置集群环境,此处需要预先将三主机的ip在/etc/hosts中进行映射

server.1=master13:2888:3888
server.2=master20:2888:3888
server.3=master25:2888:3888


分发 zoof.cfg 到其它两个主机,可以手动COPY,此处使用 scp -r  zookeeper root@master20:/app  将 zookeeper目录直接发送值 20,25主机, 也可手动完成.
20,25 主机中创建数据目录 /data/zookeeper
在数据目录下为ZK节点创建唯一标识,即zoo.cfg server.* 后的标识, 以13主机为例: cd /data/zookeeper; echo 1 >> myid  ,20,25一致,区别在于echo的内容分别为2,3,更多ZK节点的集群雷同

启动集群,ZK节点启动不分先后顺序,先启动13为例, cd /app/zookeeper/bin;./zkServer.sh  start; JPS 查看JVM进程,注:即便能够看到ZK的进程JVM进程也并不意味着启动成功,日志文件见启动脚本下zookeeper.out . 可以使用ps ,netstat 等命令查看默认的2181,以及下文体现的其它端口是否启用监听.

3084 QuorumPeerMain


查看ZK节点状态,  ./zkCli.sh stat  ,此处笔者已经启动了其余的两个节点,ZK 的ZAB算法已经推举出了合适的Leader,如下为一个Follower节点

ZooKeeper JMX enabled by default
Using config: /app/zookeeper/bin/../conf/zoo.cfg
Mode: follower


如启动后节点间不能通信,关闭防火墙后重启机器,启动ZK ./zkServer.sh  start; 下列关闭防火墙方法适用于CentOS7 ,另如还有网络问题应关闭 SeLinux 内核模块

systemctl disable firewalld.service :防火墙禁用
systemctl  stop  firewalld.service :关闭防火墙


vim /etc/selinux/config
修改 :SELINUX=disabled
重启主机;


如还存在其它问题,请严格检查下列
/ect/hosts 下是否配置合适的域名映射
ZK zoo.cfg data目录修改是否恰当,且集群配置的中使用的端口,通信端口2888,Leader选举端口3888是否被占用.
ZK 数据目录下 是够存在 myid 文件且内容有且仅为当前实例的ID及 server.N 中的N
网络防火墙策略是否允许2181,以及ZK相关节点通信,内部环境中关闭防火墙策略 Selinux 及firewall 重启即可.
其它潜在的问题

关于ZK的简单使用及使用场景计划在其它章节体现.

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: