zookeeper集群配置

在集群环境下配置 zookeeper , 先准备三台linux 服务器 ,记住 ip地址
1: 官网下载 zookeeper ,可 百度

2: 解压,放至其中一台linux服务器某个目录下。如图:

zookeeper集群配置_第1张图片

注意: 是以root用户放进来的,现在想将权限赋给hadoop用户,注意一下操作。

3:将此目录赋权限给hadoop用户。


4:建立配置文件,进入conf目录,新建立一个zoo.cfg文件,文件内容如下:
tickTime=2000 
initLimit=5 
syncLimit=2 
dataDir=/home/zookeeper/data 
dataLogDir=/home/zookeeper/logs 
clientPort=4180 
server.43=10.1.39.43:2888:3888 
server.47=10.1.39.47:2888:3888 
server.48=10.1.39.48:2888:3888 
解释:
tickTime: zookeeper中使用的基本时间单位, 毫秒值.
dataDir: 数据目录. 可以是任意目录.
dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
clientPort: 监听client连接的端口号.
initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 如果配置的是伪集群模式, 那么各个server的B, C参数必须不同. 例如:
server.0=127.0.0.1:8880:7770 
server.1=127.0.0.1:8881:7771 
server.2=127.0.0.1:8882:7772 
5: 新建myid文件
在之前设置的dataDir中新建myid文件, 写入一个数字, 该数字表示这是第几号server. 该数字必须和zoo.cfg文件中的server.X中的X一一对应
6:按照上面的方法配置其它两台linux服务器
7:启动客户端
任意进入一个linuxzookeeper/bin目录, 启动server.

zookeeper的服务端要从每个节点(linux服务器)来启动。启动使用命令:

bin/zkServer.sh start

启动时可能会报权限不够的提示,请使用如下命令改变权限:
chmod 775 zkServer.sh
成功启动后有如下提示:


8: 按照相同方法启动另外两台节点的服务端。

9: 查看状态
查看状态: bin/zkServer.sh status
查看zookeeper状态时出现:Error contactiong service. It is probably not running
先使用jps查看是否有QuorumPeerMain;
再查看2181端口是否开启: netstat -an | grep 2181 
如果这2项都没有问题,原因可能是你只是单机启动,集群中其他计算机并没有启动zookeeper,把集群中其他的启动后再使用此命令。而且此命令功能太过单一,反馈信息也不准确。 

如果状态无误,那么三个服务器显示的状态可能不同,leader节点显示的信息如下:


另外两个节点显示如下:


10:使用客户端命令连接服务端
bin/zkCli.sh -server localhost:2181
注意: localhost是连接本地节点的服务端,也可以换成集群中的其他节点的服务端。


以上为zookeeper的集群搭建方法。

你可能感兴趣的:(hadoop大数据,zookeeper,linux操作系统,虚拟机)