從事大數據,還不知道Zookeeper是啥?帶你安裝Zookeeper集群
zookeeper概述
什么是zookeeper?為什么zookeeper在大數據領域如此重要?下面我們從最基礎的開始了解。
zookeeper是一個分布式協調服務的開源框架。其主要作用是用來解決分布式集群中的數據一致性問題。zookeeper本質上是一個小文件系統。其數據結構類似于文件系統的目錄樹,zookeeper可以對這些節點進行有效的管理。通過節點管理,來達到監控和維護節點數據的目標。通過監控數據的變化,來達到管理集群的目的。常見的應用如:配置管理、名稱服務、分布式消息隊列、分布式鎖、分布式協調服務等。

zookeeper特性
數據一致性:在zookeeper集群中,每個server都保存著一份相同的數據副本,client無論連接到哪一個server,展示的數據都是一致的,這是zookeeper一個非常重要的特性,也是其在大數據領域廣泛應用的基礎。
可靠性:如果客戶端請求被任意一個server接受,那么該請求就會被整個集群接受。
順序性:有全局有序和偏序兩種。全局有序是指如果在一臺server上,消息a在消息b先發布,那么在所有server上,消息a都在消息b先發布。而偏序是指消息a在消息b前被同一個server發布,那么消息a必定在消息b的前面。
數據更新的原子性:一次數據更新要么成功,要么失敗,不存在中間狀態。
實時性:zookeeper保證客戶端在一定的時間間隔內獲得服務器的響應,無論是成功還是失敗。
zookeeper角色

leader:是集群正常工作的核心。事務性(寫操作)請求的唯一處理者和調度者。集群內部的管理者和調度者。
follower:處理非事務性請求,參與集群leader選舉,轉發事務性請求給leader.
observer:處理非事務性請求,不參與leader選舉,轉發事務性請求給leader。如果集群的讀請求很多,可以添加observer角色,提高集群的非事務處理能力。
zookeeper安裝
zookeeper的安裝分為單機版和集群版,單機版主要用來調試。下面我們演示在虛擬機中安裝集群版。zookeeper集群通常由奇數個節點組成,這是為了保證集群leader的選舉(基于paxos算法,此篇文章不做介紹)。本次演示使用3臺機器如何安裝zookeeper集群。
1.安裝jdk,三臺機器都要安裝
- 下載地址https://www.oracle.com/technetwork/java/javase/downloads
- /index.htmljdk-8u211-linux-x64.rpm#安裝rpm -ivh jdk-8u211-linux-
- x64.rpm#切換javaalternatives --config java
2.下載zookeeper安裝包
- 下載地址:https://archive.apache.org/dist/zookeeper/安裝包版本:zookeeper-3.4.5.tar.gz
3.配置主機名映射
- vim /etc/hosts192.168.80.10 node1192.168.80.11 node2192.168.80.12 node3
4.修改zookeeper配置文件
- tar -zxvf zookeeper-3.4.5.tar.gz -C /servers/cd /serversln -s
- zookeeper-3.4.5/ zookeepercd /servers/zookeeper/confcp zoo_sample.cfg
- zoo.cfgvim zoo.cfg#在zoo.cfg中添加如下配置信息
- tickTime=2000dataDir=/servers/zookeeper
- /dataclientPort=2181server.1=node1:2888:3888server.2=node2:2888:3888s
- erver.3=node3:2888:3888
5.設置myid文件
myid文件只包含一個數字,數值范圍在1-255,myid文件的位置在數據目錄下,由dataDir參數指定
- cd /servers/zookeeper/dataecho 1 > myid注意myid中的值必須是唯一的,在
- 這里我們三臺機器分別設置為1,2,3
6.啟動zookeeper
- ./zkServer.sh start
7.查看角色狀態
- /servers/zookeeper/bin/zkServer.sh status
zookeeper集群環境已經搭建好了,下一篇文章我們看看如何使用zookeeper,zookeeper又有哪些有趣的特性。