相关文章
- 【数仓】基本概念、知识普及、核心技术
- 【数仓】数据分层概念以及相关逻辑
- 【数仓】Hadoop软件安装及使用(集群配置)
- 【数仓】Hadoop集群配置常用参数说明
一、环境准备
准备3台虚拟机
- Hadoop131:192.168.56.131
- Hadoop132:192.168.56.132
- Hadoop133:192.168.56.133
本例系统版本 CentOS-7.8,已安装jdk1.8
关闭防火墙
systemctl stop firewalld
二、zookeeper安装配置
1、zookeeper下载安装
1) 下载解压
# 下载
wget --no-check-certificate https://dlcdn.apache.org/zookeeper/zookeeper-3.9.1/apache-zookeeper-3.9.1-bin.tar.gz
# 解压安装
tar -xzvf apache-zookeeper-3.9.1-bin.tar.gzmv apache-zookeeper-3.9.1-bin/ /data/zookeeper/
#查看zookeeper是否部署成功;
ls -l /data/zookeeper/
2)配置服务器编号
创建数据存储目录 zkdata
mkdir /data/zookeeper/zkdata
在zkdata 目录创建文件 myid,在文件中添加与server对应的编号
131
3)配置zoo.cfg文件
zookeeper/conf目录下有zoo_sample.cfg实例配置文件,复制这个文件,重命名为zoo.cfg,开始配置zoo.cfg的内容
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改数据存储路径
dataDir=/data/zookeeper/zkdata
增加如下集群配置
############### cluster ###############
server.131=hadoop131:2888:3888
server.132=hadoop132:2888:3888
server.133=hadoop133:2888:3888
集群服务配置说明
server.A=B:C:D
A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的IP地址(或者是与IP地址做了映射的主机名);
C 第一个端口用来集群成员的信息交换,表示这个服务器与集群中的Leader服务器交换信息的端口;
D 是在leader挂掉时专门用来进行选举leader所用的端口。
2、同步zookeeper到其他服务器
1)同步zookeeper到其他两台服务器 hadoop132、hadoop133
xsync.sh /data/zookeeper/
2)分别修改 hadoop132、hadoop133 上面的 myid 为 132、133
3、集群操作
方式一:分别在各个服务器操作
1)分别启动zookeeper
/data/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
2)查看状态
/data/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
方式二:增加集群操作脚本 zk.sh
1)创建文件zk.sh
vi /usr/bin/zk.sh
# 修改文件权限
chmod 777 /usr/bin/zk.sh
2)复制如下内容
#!/bin/bash#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
ficase $1 in
"start")#遍历集群所有机器for host in hadoop131 hadoop132 hadoop133doecho -------------------- $host zookeeper 启动 --------------------ssh $host "/data/zookeeper/bin/zkServer.sh start"done
;;
"stop")#遍历集群所有机器for host in hadoop131 hadoop132 hadoop133doecho -------------------- $host zookeeper 停止 --------------------ssh $host "/data/zookeeper/bin/zkServer.sh stop"done
;;
"status")#遍历集群所有机器for host in hadoop131 hadoop132 hadoop133doecho -------------------- $host zookeeper 状态 --------------------ssh $host "/data/zookeeper/bin/zkServer.sh status"done
;;
*)echo "Input Args Error..."
;;
esac
3)通过集群脚本 zk.sh 操作
zk.sh start
-------------------- hadoop131 zookeeper 启动 --------------------
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
-------------------- hadoop132 zookeeper 启动 --------------------
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
-------------------- hadoop133 zookeeper 启动 --------------------
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
三、ZooKeeper常见配置参数
ZooKeeper的配置参数主要包括以下几项:
-
tickTime:ZooKeeper中的一个时间单元,用于服务器之间或客户端与服务器之间维持心跳。它是以毫秒为单位的,并且ZooKeeper中所有的时间都是以这个为基础进行整数倍的配置。例如,session的最小超时时间是2倍的tickTime。
-
dataDir:存储快照的目录。这也是ZooKeeper服务器用来存储事务日志的默认位置(如果没有特别配置dataLogDir的话)。考虑到事务日志的写入性能会直接影响到ZooKeeper的整体性能,因此建议将事务日志存储在一个专门的、拥有良好I/O性能的磁盘上。
-
dataLogDir:这个参数用于配置事务日志的存储目录。如果配置了这个参数,那么事务日志就会被存储在这个指定的目录中,而不是在dataDir中。这有助于优化磁盘I/O性能。
-
clientPort:这是客户端连接ZooKeeper服务器的端口。一般来说,这个端口被设置为2181。
-
initLimit:这是ZooKeeper集群中的Follower服务器与Leader服务器之间初始连接时能容忍的最多心跳数(以tickTime为单位)。这个参数用于控制ZooKeeper集群的初始化过程。
-
syncLimit:这是ZooKeeper集群中的Follower服务器与Leader服务器之间请求和应答之间能容忍的最多心跳数(以tickTime为单位)。这个参数用于控制Follower和Leader之间的同步过程。
-
maxClientCnxns:这是一个客户端连接到单个ZooKeeper服务器的最大连接数限制。这个参数可以防止ZooKeeper服务器因为过多的客户端连接而耗尽资源。
这些参数都可以在ZooKeeper的配置文件(zoo.cfg)中进行设置。在配置ZooKeeper集群时,还需要设置一些其他的参数,如server.x配置项,用于指定ZooKeeper集群中的服务器地址和端口等信息。
参考
- https://zookeeper.apache.org/doc/current/index.html