搭建ZooKeeper集群
环境
-
Centos 6.5 64位
-
jdk 1.8 u 101
-
python 2.7.12
-
zookeeper 3.4.8
-
https://www.python.org/ftp/python/2.7.12/
下载tgz文件
修改服务器信息
-
更改master的hostname为master
vim /etc/sysconfig/network
更改hostname重启后生效,用hostname命令检查是否生效
-
更改hosts文件 对应master和slave的ip
vim /etc/hosts
配置免密码登录
-
使用```ssh-keygen命令生成密钥对
-
cp id_rsa.pub authorized_keys
-
把其他机器的公钥也复制到authorized_keys文件中
-
使用scp命令将hosts文件和authorized_keys文件传输到其他机器
spc 文件名 用户名@IP:地址
如果是文件夹加上`-r```
-
使用ssh 主机名 尝试是否能连接到主机
安装jdk
-
tar -zxvf 包名
-
把bin的路径添加到~/.bashrc文件中:
PATH=$PATH:路径
export PATH
编译安装python
-
解压压缩包
-
进入目录
-
./configure
-
make
-
转到root,make install,再转回来
安装ZooKeeper
-
解压ZooKeeper
-
将zk的bin目录加入到环境变量中
-
复制conf中的zoo_sample.cfg为zoo.cfg
-
添加如下配置
dataDir=/home/matrix42/storm/zookeeper/data
dataLogDir=/home/matrix42/storm/zookeeper/datalog
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
-
新建data,datalog目录
-
在data目录下新建myid文件,按服务器写入1,2,3....
配置说明
-
initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值
-
clientPort:服务的监听端口
-
dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了)
-
dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争
-
syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃
启动ZK集群
-
zkServer.sh start
-
如遇到Error contacting service. It is probably not running.错误可以把zk的端口号加入到iptables或关闭防火墙
-
可能需要安装nc包
yum install nc
-
zkServer.sh status检查ZK状态
-
zkServer.sh stop 停止ZK服务
-
zkServer.sh restart 重启ZK服务
-
Zookeeper常用命令