ZooKeeper(1)-ZooKeeper分布式环境配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyl424525/article/details/89325986

1.前提
Hadoop分布式环境已安装,见 http://blog.csdn.net/yyl424525/article/details/55097022

2.搭建zookeeper集群
2.1 上传并解压zookeeper-3.4.6.tar.gz安装包
解压安装包:tar -zxvf zookeeper-3.4.6.tar.gz -C ./yyl/
2.2 修改配置文件zoo.cfg
进入config(cd zookeeper-3.4.6)目录下,重命名zookeeper.properties文件:
cd /usr/local/yyl/zookeeper-3.4.6/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg 为以下内容(主要修改的地方就是dataDir 和 clientPort)

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/yyl/zookeeper-3.4.6/data/zkdata
dataLogDir=/usr/local/yyl/zookeeper-3.4.6/data/logs
clientPort=2181
server.1 =hdp-node-01:2888:3888
server.2 =hdp-node-02:2888:3888
server.3 =hdp-node-03:2888:3888

#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
#hdp-node-01:2888:3888,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
#conf/zoo.cfg文件中配置的server.X 中间无空格
上述配置参数说明:

#tickTime:
	这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
	#initLimit:
	这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
	#syncLimit:
	这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
	#dataDir:
	zookeeper存放数据的目录
	#dataLogDir:
	事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
	#clientPort:
	这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

2.3 创建zk工作时的运行目录和运行日志存放目录:
mkdir –p /usr/local/yyl/zookeeper-3.4.6/data/zkdata
mkdir –p /usr/local/yyl/zookeeper-3.4.6/data/logs

2.4发送配置好的zk安装目录发送到02,03节点:
scp -r /usr/local/yyl/zookeeper-3.4.6/ hdp-node-02:/usr/local/yyl/
scp -r /usr/local/yyl/zookeeper-3.4.6/ hdp-node-03:/usr/local/yyl/

2.5 配置myid文件
在dataDir(dataDir=/usr/local/yyl/zookeeper-3.4.6/data/zkdata)目录下写一个myid文件,这个id是zookeeper的主机标示,每个主机id不同,分别是1,2,3 ,4
echo 1 > /usr/local/yyl/zookeeper-3.4.6/data/zkdata/myid
echo 2 > /usr/local/yyl/zookeeper-3.4.6/data/zkdata/myid
echo 3 > /usr/local/yyl/zookeeper-3.4.6/data/zkdata/myid
echo 4 > /usr/local/yyl/zookeeper-3.4.6/data/zkdata/myid

cat /usr/local/yyl/zookeeper-3.4.6/data/zkdata/myid
[root@hdp-node-01 zkdata]# cat /usr/local/yyl/zookeeper-3.4.6/data/zkdata/myid
1
[root@hdp-node-04 zkdata]# cat /usr/local/yyl/zookeeper-3.4.6/data/zkdata/myid
4

2.6 配置zookeeper环境变量
vi /etc/profile

export ZOOKEEPER_HOME=/usr/local/yyl/zookeeper-3.4.6
export PATH=$ZOOKEEPER_HOME/bin:$PATH

-------------------------------------------------
更多配置
export JAVA_HOME=/usr/local/yyl/jdk1.8
export HADOOP_HOME=/usr/local/yyl/hadoop-2.6.5
export HBASE_HOME=/usr/local/yyl/hbase-1.2.6
export ZOOKEEPER_HOME=/usr/local/yyl/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin

source /etc/profile
然后发送到其他节点
scp /etc/profile hdp-node-02:/etc/
每台刷新
source /etc/profile

3.启动
进入到zk安装目录下的bin目录,启动zookeeper集群
/usr/local/yyl/zookeeper-3.4.6/bin/
./zkServer.sh start (3台都需要)
检查服务状态:
./zkServer.sh status
停止:zkServer.sh stop

启动过程中可能会报错,全部启动后就好了,再查看每台的状态
[root@hdp-node-01 conf]# zkServer.sh start
JMX enabled by default
Using config: /usr/local/yyl/zookeeper-3.4.6/bin/…/conf/zoo.cfg
Starting zookeeper … already running as process 1534.

4.查看各个节点进程
[root@hdp-node-02 zookeeper-3.4.6]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/yyl/zookeeper-3.4.6/bin/…/conf/zoo.cfg
Mode: leader

[root@hdp-node-01 zookeeper-3.4.6]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/yyl/zookeeper-3.4.6/bin/…/conf/zoo.cfg
Mode: follower

[root@hdp-node-02 data]# jps
1292 QuorumPeerMain

猜你喜欢

转载自blog.csdn.net/yyl424525/article/details/89325986