1、规划
节点名称 | 安装软件 |
hadoop01 | jdk1.8 zookeeper3.4.6 |
hadoop02 | jdk1.8 zookeeper3.4.6 |
hadoop03 | jdk1.8 zookeeper3.4.6 |
2、下载jdk 和 zookeeper
3、上传jdk和zookeeper 到3台机器上解压
目录:/opt/software/
tar -zxvf jdk1.8.0_191.tar.gz
tar -zxvf zookeeper-3.4.6.tar.gz
另外2台机器也进行上传安装包并解压,保障目录和hadoop01的节点一致。
4、配置jdk环境变量(3个节点都执行)
4.1 执行命令:vim /etc/profile
在打开文件的最后一行复制粘贴下面4行内容
JAVA_HOME=/opt/software/jdk1.8.0_191
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
保存文件后执行
source /etc/profile
4.2 验证
5、配置zookeeper
5.1 修改配置文件 zoo.cfg
将zookeeper压缩文件解压后,到 conf 目录:
执行命令:cp zoo_sample.cfg zoo.cfg
5.2 通过 vim zoo.cfg 命令对该文件进行修改:
/opt/software/zookeeper-3.4.6/zk_data
/opt/software/zookeeper-3.4.6/zk_log
目录必须提前创建好。
红色框住的内容即是修改的内容:
dataDir 服务器的快照文件目录
dataLogDir 存储事务日志文件
server.A=B:C:D 是分布式是节点约定的配置格式
集群若是3个节点则有3条配置
A是编号,一般从0开始。 三个机器则分别是0 1 2 ;同时编号对应数据目录下myid文件的值
B是节点的ip
C 是zookeeper的通信端口
D 是Leader选举的端口
参数说明:
1) tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime
2)dataDir:存储内存中数据库快照的位置,指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。
3)client:监听客户端连接的端口。
4)initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
5)syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
6)server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Zookeeper服务器之间的通信端口;
D:Leader选举的端口。
server.A=B:C:D 配置,其中 A 对应下面我们即将介绍的myid 文件。B是集群的各个IP地址,C:D 是端口配置。
另外2台节点同样的操作。
5.3 上一步的数据目录下配置myid文件
hadoop01节点上 vim myid 写入0并保存
hadoop02节点上 vim myid 写入1并保存
hadoop03节点上 vim myid 写入2并保存
6、配置zookeeper 的环境变量
与配置jdk类似
vim /etc/profile
export ZK_HOME=/opt/software-3.4.6/
export PATH=$PATH:$ZK_HOME/bin
source /etc/profile
7、启动zookeeper服务
启动命令: zkServer.sh start
3个节点都已启动
可以同步jps 查看进程
查看集群节点状态:
zkServer.sh status
如果节点启动失败可以到 配置的dataDir目录下的 zookeeper.out文件中查看失败原因
停止命令:
zkServer.sh stop
重启命令:
zkServer.sh restart