Zookeeper集群环境搭建
准备工作
- 四台centos虚拟机,一台主机控制其他三台
- 每台虚拟需要配置JDK ,免登录,由主机统一管理配置
- 需要安装的包
- 主机httpd服务 yum install -y httpd,方便其他机器下载资源
- 主机支持expect 命令 yum -y install expect
- 支持http下载 yum install -y wget
- 关闭防火墙非常重要 sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service
开启自动部署
主机配置
- 配置了httpd服务之后 在var/www/目录下放入jdk
部署自动登录脚本
#!/bin/bash SERVERS="192.168.23.41 192.168.23.42 192.168.23.43" PASSWORD=hadoop #遍历所有的 server,配置免登录 ssh_copy_id_to_all(){ for SERVER in $SERVERS do auto_ssh_copy_id $SERVERS $PASSWORD done } ssh_copy_id_to_all #具体实现 auto_ssh_copy_id(){ expect -c "set timeout -1; spawn ssh_copy_id $1; expect { *(yes/no)* {send -- yes\r;exp_continue;} *assword:* {send -- $2\r;exp_continue;} eof {exit 0;} }"; } #遍历server for SERVER in $SERVERS do scp install.sh root@$SERVER:/root ssh root@$ERVER /root/install.sh done
自动化部署jdk 注意如果 你的jdk是32位,系统是64位需要yum install -y glibc.i686
#!/bin/bash BASE_SERVER=192.168.23.4 yum install -y wget #yum install -y glibc.i686 32位jdk配置 wget $BASE_SERVER/jdk-7u72-linux-i586.gz #解压文件 tar zxvf jdk-7u72-linux-i586.gz -C /usr/local #配置环境变量 cat >> /etc/profile << EOF export JAVA_HOME=/usr/local/jdk1.7.0_72 export PATH=\SPATH:\$JAVA_HOME/bin EOF
关闭防火墙,否则报host name not find
sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service
集群配置Zookeeper
配置conf/zoo.cfg
dataDir=/root/zkData //配置数据存放的位置 server.1=192.168.23.41:2888:3888//配置集群 server.2=192.168.23.42:2888:3888 server.3=192.168.23.43:2888:3888
在zkData下建立 myid 内容为1,三个主机都要建立,可以用脚本统一搭建
启动Zookeeper ,成功后可以看到服务器的的角色 leader or follower
bin/zkServer.sh start //启动服务器 bin/zkServer.sh status //服务工作状态 bin/zkServer.sh status //停止服务