一. 部署前的准备工作
1.保证各个主机之间能够正常通信(ssh免登陆验证)
2.修改host文件,加入IP和主机名的映射。方法为修改/etc/hosts和etc/hostname文件,不同的Linux发行版方法不一定一样。
3.开放要使用的端口或者关闭防火墙
二. 部署Zookeeper集群
1.下载Zookeeper安装包,并解压。
选择一个镜像下载
http://www.apache.org/dyn/closer.cgi/zookeeper/
我用的是下面这个
http://www.apache.org/dyn/closer.cgi/zookeeper/
1.1 将zookeeper-3.4.11.tar.gz发送到linux服务器上
1.2 解压 tar -xvzf zookeeper-3.4.11.tar.gz
1.3 对zookeeper目录进行重命名: mv zookeeper-3.4.5 zookeeper
1.4 配置zookeeper相关的环境变量
用这种我出现一个问题,-bash: vi: command not found
vi ~/.bashrc
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source ~/.bashrc
所以我用了下面的这个,直接做成全局的
vi /etc/profile
#set java environment and zookeeper environment
JAVA_HOME=/usr/local/java/jdk1.8.0_151
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
2.创建数据目录
重命名zoo_sample.cfg配置文件
cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
修改配置文件
vi /usr/local/zookeeper/conf/zoo.cfg
修改:dataDir=/usr/local/zookeeper/data
新增:dataLogDir=/var/log/zookeeper
新增:
server.0=cache01:2888:3888
server.1=cache02:2888:3888
server.2=cache03:2888:3888
创建data目录
mkdir /usr/local/zookeeper/data
mkdir /var/log/zookeeper
创建并编辑文件myid,输入对应的序号
vi /usr/local/zookeeper/data/myid
0 <--标志号
注意这里有一个问题:
我按照这样配置一直出现一个java.net.ConnectException: Connection refused (Connection refused)问题
解决办法就是使用ifconfig命令查看本机对应的内网ip,写到自身对应的ip 中
例如:我标志号为0的一台机器内网是10.104.10.219,那么对应的那台服务器上应该是
server.0=10.104.10.219:2888:3888
server.1=cache02:2888:3888
server.2=cache03:2888:3888
3.在另外两个节点上按照上述步骤配置ZooKeeper,使用scp将zk和.bashrc拷贝到cache02和cache03上,标识号分别设置为1和2(内网ip记得要改回来,不然还是会报 Connection refused )
scp -r /usr/local/zookeeper cache02:/usr/local/
scp -r /usr/local/zookeeper cache03:/usr/local/
分别在三台机器上执行:zkServer.sh start。
检查ZooKeeper状态:zkServer.sh status,应该是一个leader,两个follower
zkServer.sh start来启动。
zkServer.sh restart (重启)
zkServer.sh status (查看状态)
zkServer.sh stop (关闭)
zkServer.sh start-foreground (以打印日志方式启动)