linux下zookeeper搭建分布式集群环境
1、准备三台虚拟机
虚拟机配置要一模一样,都已经安装好zookeeper,可以通过虚拟机克隆技术实现
克隆的虚拟机存在网络问题:eth0不见了
解决方法:
-
修改文件
命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改内容:1、删掉UUID、HWADDR 2、更改ip地址,避免ip和被复制的虚拟机重复
-
删除文件
rm -rf /etc/udev/rules.d/70-persistent-net.rules
-
修改主机名:不能和被复制的虚拟机重名
vi /etc/sysconfig/network
-
修改主机和ip映射:ping的时候可以直接ping主机名
vi /etc/hosts 添加以下内容: 192.168.137.128 gec001 (第一台虚拟机ip和主机名) 192.168.137.129 gec002(第二台虚拟机ip和主机名) 192.168.137.130 gec003(第三台虚拟机ip和主机名)
-
重启
reboot
2、设置ssh免密登录
所谓免密钥:通过ssh协议工具,免密钥登录
假如A要登陆B,在A上操作:
-
生成密匙对
ssh-keygen -t rsa (提示时,直接回车即可)
-
再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中
ssh-copy-id 目标主机名
-
设置完成可以直接在A上登录B,不需要密码
ssh 主机名
同理,B要登录A,也需要在B上重复上面操作
3、编辑zoo.cfg文件
-
家路径下任意位置创建保存zookeeper数据的目录,三台主机都要新建此目录
eg:mkdir /home/Ywee/software/zookeeper/zk_data
-
编辑zoo.cfg文件
- 修改dataDir路径为创建保存zookeeper数据的目录
eg:dataDir=/home/Ywee/software/zookeeper/zk_data
- 在文件末尾添加内容
server.20=192.168.137.128:2888:3888(20为第一台虚拟机的主机编号,192.168.137.128为第一台虚拟机的ip) server.21=192.168.137.129:2888:3888(21为第二台虚拟机的主机编号,192.168.137.129为第二台虚拟机的ip) server.22=192.168.137.130:2888:3888(22为第三台虚拟机的主机编号,192.168.137.130为第三台虚拟机的ip)
-
将此更改后的zoo.cfg文件发送到另外两台主机
scp zoo.cfg文件路径 root@主机名:目的路径 eg:scp /home/Ywee/software/zookeeper-3.4.13/conf/zoo.cfg root@Ywee02:/home/hadoop/software/zookeeper-3.4.13/conf/
-
配置myid文件:在保存zookeeper数据的目录下新建myid文件,三台主机都要
touch myid
-
在文件中添加主机编号
4、启动集群
-
分别启动三台主机的zookeeper服务
./zkServer.sh start
-
查看服务状态
./zkServer.sh status
-
如下图表示集群部署成功