zookeeper偽叢集模式搭建
在學習zookeeper的過程中,常常受制於環境限制,沒有足夠多的硬體資源以供自己玩耍,通常情況下只有自己的16G記憶體的筆記本,因此,在這種情況下,我們需要通過搭建偽叢集環境來體驗zookeeper的叢集模式。
1.環境準備
作業系統: fedora25
硬體配置: thinkpad X230 i5 16G 500G
依賴軟體: jdk 1.8.0_121 (官方版本,非openjdk)
下載: zookeeper-3.4.10.tar.gz
cd /opt
wget http://www-us.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
安裝目錄:/opt/zookeeper
mkdir /opt/zookeeper
cd /opt/zookeeper
tar -zxvf /opt/zookeeper-3.4.10.tar.gz
cp -rf /opt/zookeeper/zookeeper-3.4.10 /opt/zookeeper/zoo-node1
cp -rf /opt/zookeeper/zookeeper-3.4.10 /opt/zookeeper/zoo-node2
cp -rf /opt/zookeeper/zookeeper-3.4.10 /opt/zookeeper/zoo-node3
rm -rf /opt/zookeeper/zookeeper-3.4.10
這樣,zookeeper的三個節點執行目錄分別為:
/opt/zookeeper/zoo-node1
/opt/zookeeper/zoo-node2
/opt/zookeeper/zoo-node3
2.配置
2.1 zoo.cfg配置檔案
zookeeper的執行,需要在conf目錄配置zoo.cfg檔案。我們可以參考zoo_sample.cfg進行配置。
節點1配置如下:
#zookeeper時間單元,單位為毫秒
tickTime=2000
#叢集中的follower伺服器(F)與leader伺服器(L)之間 初始連線 時能容忍的最多心跳數(tickTime的數量)。
initLimit=10
# 叢集中的follower伺服器(F)與leader伺服器(L)之間 請求和應答 之間能容忍的最多心跳數(tickTime的數量)。
syncLimit=5
# data資料目錄
dataDir=/opt/zookeeper/zoo-node1/data
# 客戶端連線埠
clientPort=2181
# 客戶端最大連線數
#maxClientCnxns=60
# 需要保留的快照數目
#autopurge.snapRetainCount=3
# 是否開啟自動清理事務日誌和快照功能 0 不開啟,1表示開啟
#autopurge.purgeInterval=1
#叢集配置
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
節點2配置
#zookeeper時間單元,單位為毫秒
tickTime=2000
#叢集中的follower伺服器(F)與leader伺服器(L)之間 初始連線 時能容忍的最多心跳數(tickTime的數量)。
initLimit=10
# 叢集中的follower伺服器(F)與leader伺服器(L)之間 請求和應答 之間能容忍的最多心跳數(tickTime的數量)。
syncLimit=5
# data資料目錄
dataDir=/opt/zookeeper/zoo-node2/data
# 客戶端連線埠
clientPort=2182
# 客戶端最大連線數
#maxClientCnxns=60
# 需要保留的快照數目
#autopurge.snapRetainCount=3
# 是否開啟自動清理事務日誌和快照功能 0 不開啟,1表示開啟
#autopurge.purgeInterval=1
#叢集配置
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
節點3配置
#zookeeper時間單元,單位為毫秒
tickTime=2000
#叢集中的follower伺服器(F)與leader伺服器(L)之間 初始連線 時能容忍的最多心跳數(tickTime的數量)。
initLimit=10
# 叢集中的follower伺服器(F)與leader伺服器(L)之間 請求和應答 之間能容忍的最多心跳數(tickTime的數量)。
syncLimit=5
# data資料目錄
dataDir=/opt/zookeeper/zoo-node3/data
# 客戶端連線埠
clientPort=2183
# 客戶端最大連線數
#maxClientCnxns=60
# 需要保留的快照數目
#autopurge.snapRetainCount=3
# 是否開啟自動清理事務日誌和快照功能 0 不開啟,1表示開啟
#autopurge.purgeInterval=1
#叢集配置
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
分別將上述配置檔案放置在三個節點對應的conf目錄下。
另外,需要新建data目錄
mkdir /opt/zookeeper/zoo-node1/data
mkdir /opt/zookeeper/zoo-node2/data
mkdir /opt/zookeeper/zoo-node3/data
2.2 myid配置檔案
zookeeper還需要在data目錄中配置myid檔案。myid檔案中存放對應節點的序號。
echo '1' > /opt/zookeeper/zoo-node1/data/myid
echo '2' > /opt/zookeeper/zoo-node2/data/myid
echo '3' > /opt/zookeeper/zoo-node3/data/myid
2.3 日誌路徑配置
修改 bin 目錄下的zkEnv.sh
將ZOO_LOG_DIR 修改為:
ZOO_LOG_DIR="../logs/"
按上述方法分別修改三個節點中的zkEnv.sh檔案
3.啟動
/opt/zookeeper/zoo-node1/bin/zkServer.sh start
/opt/zookeeper/zoo-node2/bin/zkServer.sh start
/opt/zookeeper/zoo-node2/bin/zkServer.sh start
如此分別啟動三個節點即可。
啟動效果如下:
[root@localhost bin]# /opt/zookeeper/zoo-node1/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zoo-node1/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
檢視日誌:
4.客戶端連線
執行 zkCli.sh 連線到預設的埠
4.1 create
使用create 可以建立一個zookeeper節點。
命令格式
create [-s] [-e] path data acl
create /zk-book 123
4.2 ls
列出zookeeper指定節點下的所有子節點。
命令格式
ls path [watch]
ls /
4.3 get
get 可以獲取zookeeper指定節點的資料內容和屬性資訊。
get path [watch]
get /zk-book
4.4 set
更新指定節點的資料內容
set path data [vresion]
set /zk-book 456
4.5 delete
delete 刪除zookeeper上指定節點內容
delete path [version]
delete /zk-book
不過需要注意的是,刪除的節點必須為空,否則無法刪除。
create /zk-book 123
create /zk-book/child 12345
delete /zk-book
相關文章
- 搭建zookeeper叢集(偽叢集)
- linux下搭建ZooKeeper叢集(偽叢集)Linux
- zookeeper 叢集搭建
- Zookeeper叢集搭建
- 搭建 zookeeper 叢集
- ActiveMQ+ZooKeeper 偽叢集整合MQ
- zookeeper叢集及kafka叢集搭建Kafka
- ZooKeeper 搭建 solr 叢集Solr
- zookeeper叢集的搭建
- redis偽叢集配置Cluster叢集模式Redis模式
- zookeeper 高可用叢集搭建
- Zookeeper 叢集環境搭建
- Linux下搭建ZooKeeper叢集Linux
- Zookeeper簡介與叢集搭建
- Kafka學習之(五)搭建kafka叢集之Zookeeper叢集搭建Kafka
- 面試官:Zookeeper叢集怎麼搭建?面試
- Zookeeper叢集搭建和簡介(二)
- Zookeeper叢集 + Kafka叢集Kafka
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- 基於 ZooKeeper 搭建 Spark 高可用叢集Spark
- ZooKeeper學習筆記一:叢集搭建筆記
- 基於zookeeper+leveldb搭建activemq叢集MQ
- CentOS上zookeeper叢集模式安裝配置CentOS模式
- rocketMq叢集master模式搭建MQAST模式
- 基於 ZooKeeper 搭建 Hadoop 高可用叢集Hadoop
- 分散式協調服務☞zookeeper叢集搭建分散式
- ZooKeeper 系列(二)—— Zookeeper單機環境和叢集環境搭建
- 安裝配置 zookeeper (單機非叢集模式)模式
- Mac 使用 docker 搭建 kafka 叢集 + Zookeeper + kafka-managerMacDockerKafka
- Hadoop叢集之 ZooKeeper和Hbase環境搭建Hadoop
- 使用 Docker 一步搞定 ZooKeeper 叢集的搭建Docker
- hadoop叢集搭建——單節點(偽分散式)Hadoop分散式
- Zookeeper原始碼分析(四) —– 叢集模式(replicated)執行原始碼模式
- Zookeeper原始碼分析(四) ----- 叢集模式(replicated)執行原始碼模式
- Zookeeper叢集 + Kafka叢集 + KafkaOffsetMonitor 監控薦Kafka
- MySQL MGR 叢集搭建(單主模式)MySql模式
- zookeeper入門(1)在單機上實現ZooKeeper偽機群/偽叢集部署
- ActiveMQ+ZooKeeper 叢集整合MQ