Zookeeper - 1 概述&命令
Zookeeper 概述&命令
1)初識 Zookeeper
1.1)Zookeeper概念
•Zookeeper 是 Apache Hadoop 專案下的一個子專案,是一個樹形目錄服務。
•Zookeeper 翻譯過來就是 動物園管理員,他是用來管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 豬)的管理員。簡稱zk
•Zookeeper 是一個分散式的、開源的分散式應用程式的協調服務。
•Zookeeper 提供的主要功能包括:
•配置管理
•分散式鎖
•叢集管理
2)ZooKeeper 安裝與配置
2.1) 下載安裝
2.1.1、環境準備
ZooKeeper伺服器是用Java建立的,它執行在JVM之上。需要安裝JDK 7或更高版本。
2.1.2、上傳
將下載的ZooKeeper放到/opt/ZooKeeper目錄下
#上傳zookeeper alt+p put f:/setup/apache-zookeeper-3.5.6-bin.tar.gz #開啟 opt目錄 cd /opt #建立zooKeeper目錄 mkdir zooKeeper #將zookeeper安裝包移動到 /opt/zooKeeper mv apache-zookeeper-3.5.6-bin.tar.gz /opt/zookeeper/
2.1.3、解壓
將tar包解壓到/opt/zookeeper目錄下
tar -zxvf apache-ZooKeeper-3.5.6-bin.tar.gz
2.2) 配置啟動
2.2.1、配置zoo.cfg
進入到conf目錄拷貝一個zoo_sample.cfg並完成配置
#進入到conf目錄 cd /opt/zooKeeper/apache-zooKeeper-3.5.6-bin/conf/ #拷貝 cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
#開啟目錄 cd /opt/zooKeeper/ #建立zooKeeper儲存目錄 mkdir zkdata #修改zoo.cfg vim /opt/zooKeeper/apache-zooKeeper-3.5.6-bin/conf/zoo.cfg
修改儲存目錄:dataDir=/opt/zookeeper/zkdata
2.2.2、啟動ZooKeeper
cd /opt/zooKeeper/apache-zooKeeper-3.5.6-bin/bin/ #啟動 ./zkServer.sh start
看到上圖表示ZooKeeper成功啟動
3、檢視ZooKeeper狀態
./zkServer.sh status
zookeeper啟動成功。standalone代表zk沒有搭建叢集,現在是單節點
zookeeper沒有啟動
###
3)ZooKeeper 命令操作
3.1)Zookeeper命令操作資料模型
•ZooKeeper 是一個樹形目錄服務,其資料模型和Unix的檔案系統目錄樹很類似,擁有一個層次化結構。
•這裡面的每一個節點都被稱為: ZNode,每個節點上都會儲存自己的資料和節點資訊。
• 節點可以擁有子節點,同時也允許少量(1MB)資料儲存在該節點之下。
•節點可以分為四大類:
•PERSISTENT 持久化節點
•EPHEMERAL 臨時節點 :-e
•PERSISTENT_SEQUENTIAL 持久化順序節點 :-s
•EPHEMERAL_SEQUENTIAL 臨時順序節點 :-es
3.2)Zookeeper命令操作服務端命令
•啟動 ZooKeeper 服務: ./zkServer.sh start
•檢視 ZooKeeper 服務狀態: ./zkServer.sh status
•停止 ZooKeeper 服務: ./zkServer.sh stop
•重啟 ZooKeeper 服務: ./zkServer.sh restart
3.3)Zookeeper客戶端常用命令
•連線ZooKeeper服務端
./zkCli.sh –server ip:port
•斷開連線
quit
•檢視命令幫助
help
•顯示指定目錄下節點
ls 目錄
•建立節點
create /節點path value
•獲取節點值
get /節點path
•設定節點值
set /節點path value
•刪除單個節點
delete /節點path
•刪除帶有子節點的節點
deleteall /節點path
3.4)客戶端命令-建立臨時有序節點
•建立臨時節點
create -e /節點path value
•建立順序節點
create -s /節點path value
•查詢節點詳細資訊
ls –s /節點path
•czxid:節點被建立的事務ID
•ctime: 建立時間
•mzxid: 最後一次被更新的事務ID
•mtime: 修改時間
•pzxid:子節點列表最後一次被更新的事務ID
•cversion:子節點的版本號
•dataversion:資料版本號
•aclversion:許可權版本號
•ephemeralOwner:用於臨時節點,代表臨時節點的事務ID,如果為持久節點則為0
•dataLength:節點儲存的資料的長度
•numChildren:當前節點的子節點個數