ZooKeeper是一个针对大型分布式系统的协作系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的角色,相当于整个Hadoop动物体系里面的动物管理员。我们在运行HBase时,需要先配备ZooKeeper。这里主要讲一下ZooKeeper的几种安装配置。
1. 解压安装包
tar -zxvf ./zookeeper*.tar.gz -C /opt
mv /opt/zookeeper* /opt/zookeeper
2. 设置环境变量
vim ~/.bashrc
添加:
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=${ZOOKEEPER_HOME}/bin:$PATH
3. 配置文件的修改
关于配置文件zoo.cfg中参数的说明
- dataDir:数据目录
- dataLogDir:日志目录
- clientPort:客户端连接端口
- tickTime:zookeeper服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳
- initLimit:zookeeper的leader与follower初始化连接,最长不能超过多少个tickTime
- syncLimit:zookeeper的leader与follower发送消息时请求和应答,最长不能超过多少个tickTime
- server.id=host:port:port
id用来标识服务器在集群中的序号。
host对应服务器的ip。
第一个端口(port)是服务器连接到leader的端口,第二个端口(port)是用来进行leader选举的端口。
3.1 单机配置:配置zoo.cfg
mkdir -p /opt/zookeeper/data
mkdir -p /opt/zookeeper/logs
cp conf/zoo_sample.cfg conf/zoo.cfg
在conf/zoo.cfg中添加:
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs
clientPort=2181
ticketTime=2000
运行zookeeper服务:
zkServer.sh start
查看zookeeper服务状态:
zkServer.sh status
连接zookeeper服务:
zkCli.sh -server localhost:2181
3.2 伪分布式配置:配置zoo.cfg和myid
将zoo_sample.cfg拷贝若干份,为zoo1.cfg、zoo2.cfg、zoo3.cfg等,各个server的port:port参数必须不同:
mkdir -p /opt/zookeeper/data1
mkdir -p /opt/zookeeper/logs1
cp conf/zoo_sample.cfg conf/zoo1.cfg
在conf/zoo1.cfg中添加:
dataDir=/opt/zookeeper/data1
dataLogDir=/opt/zookeeper/logs1
clientPort=2181
ticketTime=2000
initLimit=10
syncLimit=5
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
创建/opt/zookeeper/data1/myid文件,并添加:
1
同理,配置zoo2.cfg、zoo3.cfg等。
运行zookeeper服务:
zkServer.sh start zoo1.cfg
zkServer.sh start zoo2.cfg
zkServer.sh start zoo3.cfg
查看zookeeper服务状态:
zkServer.sh status zoo1.cfg
zkServer.sh status zoo2.cfg
zkServer.sh status zoo3.cfg
从查询的状态来看,这里zoo2作为leader,zoo1和zoo3作为follower。
3.3 集群/分布式配置:配置zoo.cfg和myid
在每台主机上,将zoo_sample.cfg拷贝一份命名为zoo.cfg,并添加相同配置:
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs
clientPort=2181
ticketTime=2000
initLimit=10
syncLimit=5
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888
在每台主机上,创建/opt/zookeeper/data/myid文件,并添加不同配置,对应服务器在集群中的id。
在每台主机上,运行zookeeper服务:
zkServer.sh start
转载请注明:宁哥的小站 » ZooKeeper的安装配置