zookeper安装_ZooKeeper安装和配置
##軟件下載
寫本文時, ZooKeeper 最新穩定版本是 3.4.8, 可以從 ZooKeeper官網下載 zookeeper-3.4.8.tar.gz。將下載的 zookeeper-3.4.8.tar.gz 文件拷貝到 /opt 目錄下。
安裝和配置
JDK安裝
注意安裝 ZooKeeper 之前需要先安裝 JDK, 關于 JDK 的安裝這里不再贅述。
###解壓
sudo tar -zxvf zookeeper-3.4.8.tar.gz
###目錄重命名
sudo mv zookeeper-3.4.8 zookeeper
###修改用戶和用戶組
sudo chown —R hadoop:hadoop zookeeper/
###環境變量配置
編輯 .bashrc 文件, 在文件末尾添加以下環境變量配置:
# ZooKeeper Env
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
運行以下命令使環境變量生效:
source .bashrc
核心配置文件zoo.cfg
初次使用 ZooKeeper 時, 需要將 $ZOOKEEPER_HOME/conf 目錄下的 zoo_sample.cfg 重命名為 zoo.cfg, 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=/tmp/zookeeper
# 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
配置說明
tickTime: ZooKeeper 中使用的基本時間單元, 以毫秒為單位, 默認值是 2000。它用來調節心跳和超時。例如, 默認的會話超時時間是兩倍的 tickTime。
initLimit: 默認值是 10, 即 tickTime 屬性值的 10 倍。它用于配置允許 followers 連接并同步到 leader 的最大時間。如果 ZooKeeper 管理的數據量很大的話可以增加這個值。
syncLimit: 默認值是 5, 即 tickTime 屬性值的 5 倍。它用于配置leader 和 followers 間進行心跳檢測的最大延遲時間。如果在設置的時間內 followers 無法與 leader 進行通信, 那么 followers 將會被丟棄。
dataDir: ZooKeeper 用來存儲內存數據庫快照的目錄, 并且除非指定其它目錄, 否則數據庫更新的事務日志也將會存儲在該目錄下。建議配置
dataLogDir 參數來指定 ZooKeeper 事務日志的存儲目錄。
clientPort: 服務器監聽客戶端連接的端口, 也即客戶端嘗試連接的端口, 默認值是 2181。
maxClientCnxns: 在 socket 級別限制單個客戶端與單臺服務器之前的并發連接數量, 可以通過 IP 地址來區分不同的客戶端。它用來防止某種類型的 DoS 攻擊, 包括文件描述符耗盡。默認值是 60。將其設置為 0 將完全移除并發連接數的限制。
autopurge.snapRetainCount: 配置 ZooKeeper 在自動清理的時候需要保留的數據文件快照的數量和對應的事務日志文件, 默認值是 3
autopurge.purgeInterval: 和參數 autopurge.snapRetainCount 配套使用, 用于配置 ZooKeeper 自動清理文件的頻率, 默認值是 1, 即默認開啟自動清理功能, 設置為 0 則表示禁用自動清理功能。
更多 ZooKeeper 配置后面會寫文章詳細描述。
單機模式
zoo.cfg配置
ticketTime=2000
clientPort=2181
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs
啟動 ZooKeeper 服務
可以使用如下命令來啟動 ZooKeeper 服務
zkServer.sh start
服務啟動信息如下:
驗證 ZooKeeper 服務
服務啟動完成后, 可以使用 telnet 和 stat 命令驗證服務器啟動是否正常:
在單機模式中, Mode 的值是 "standalone"。
停止 ZooKeeper 服務
想要停止 ZooKeeper 服務, 可以使用如下命令:
zkServer.sh stop
服務停止信息如下:
##集群模式
###zoo.cfg配置
在 master 機器上, 在單機模式的配置文件下增加了最后 5 行配置:
ticketTime=2000
clientPort=2181
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs
initLimit=10
syncLimit=5
server.1=master:2888:3888
server.2=slave01:2888:3888
server.3=slave02:2888:3888
配置說明:
集群模式中, 集群中的每臺機器都需要感知其它機器, 在 zoo.cfg 配置文件中, 可以按照如下格式進行配置, 每一行代表一臺服務器配置:
server.id=host:port:port
id 被稱為 Server ID, 用來標識服務器在集群中的序號。同時每臺 ZooKeeper 服務器上, 都需要在數據目錄(即 dataDir 指定的目錄) 下創建一個 myid 文件, 該文件只有一行內容, 即對應于每臺服務器的Server ID。
ZooKeeper 集群中, 每臺服務器上的 zoo.cfg 配置文件內容一致。
server.1 的 myid 文件內容就是 "1"。每個服務器的 myid 內容都不同, 且需要保證和自己的 zoo.cfg 配置文件中 "server.id=host:port:port" 的 id 值一致。
id 的范圍是 1 ~ 255。
###創建myid文件
在 dataDir 指定的目錄下 (即 /opt/zookeeper/data 目錄) 創建名為 myid 的文件, 文件內容和 zoo.cfg 中當前機器的 id 一致。根據上述配置, master 的 myid 文件內容為 1。
slave配置
按照相同步驟, 為 slave01 和 slave02 配置 zoo.cfg 和 myid 文件。zoo.cfg文件內容相同, slave01 的 myid 文件內容為 2, slave02 的 myid 文件內容為 3。
集群啟動
在集群中的每臺機器上執行以下啟動命令:
zkServer.sh start
啟動信息如下:
master 和 slave01 兩臺服務器的 Mode 值均為 follower, 表明它們在集群中的角色為 Follower。
slave02 服務器的 Mode 值為 leader, 表明它在集群中的角色為 Leader。
參考資料
總結
以上是生活随笔為你收集整理的zookeper安装_ZooKeeper安装和配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 坐标偏差大_控制点的坐标复核(二)
- 下一篇: u盘上的文件夹变成exe文件怎么办 U盘