相關文章
- 【數倉】基本概念、知識普及、核心技術
- 【數倉】數據分層概念以及相關邏輯
- 【數倉】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