从零搭建hadoop集群之zookeeper集群安装
1. 从官方渠道获取对应的zookeeper的安装包
http://archive.apache.org/dist/zookeeper/
zookeeper-3.4.10.tar.g
2. 上传zookeeper安装包到 hadoop01节点的/home/hadoop/software目录下并解压
tar -zxvf zookeeper-3.4.10.tar.gz -C ../module/
3. 修改配置文件
cd /home/hadoop/module/zookeeper-3.4.10/conf
更改配置文件名称
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/home/hadoop/module/zkdata dataLogDir=/home/hadoop/module/logs/zklog # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 server.1=hadoop01:2888:3888 server.2=hadoop02:2888:3888 server.3=hadoop03:2888:3888
- tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime
- dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能
- client:监听客户端连接的端口
- initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败
- syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃
-
server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Leader选举的端口;
D:Zookeeper服务器之间的通信端口
其中 A 对应下面我们即将介绍的myid 文件。B是集群的各个IP地址,C:D 是端口配置
4. 分发安装包到所有的zookeeper节点
scp -r zookeeper-3.4.10/ hadoop@hadoop02:$PWD scp -r zookeeper-3.4.10/ hadoop@hadoop03:$PWD
5. 所有节点配置环境变量
vim ~/.bashrc
添加以下内容
export ZOOKEEPER_HOME=/home/hadoop/module/zookeeper-3.4.10 export PATH=$PATH:$ZOOKEEPER_HOME/bin
刷新环境变量文件使新增的生效
source ~/.bashrc
6. 给每一个zookeeper server 要分配一个不重复的1-255之间的serverid,在dataDir目录中必须加入一个文件叫做myid,myid文件中放入一个serverid
mkdir /home/hadoop/module/zkdata
echo 1 > myid #不要多出空格,不要多出空行,每个节点都要进行这个操作,值要与配置中的id对应
7. 直接启动zookeeper 不需要初始化
zkServer.sh start 启动
zkServer.sh stop 停止
zkServer.sh status 查看角色的状态