zookeeper是乙個分布式服務框架,主要用來解決分布式應用中經常遇到的一些資料管理問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等。
簡而言之就是:zookeeper=檔案系統+監聽通知機制。
每個子目錄如nameservice都被稱為znode(目錄節點),和檔案系統一樣,我們可以增加、刪除znode,在znode下增加、刪除znode,唯一不同在於znode可以儲存資料,乙個znode最多可以儲存1mb資料。
zookeeper有四種型別的znode:
1.persist(持久化目錄節點)
客戶端與zookeeper斷開連線後,該節點依舊存在。
2.persist_sequential(持久化順序編號目錄節點)
客戶端與zookeeper斷開連線後,該節點依舊存在,只是zookeeper給該節點名稱進行順序編號。
3.ephemeral(臨時目錄節點)
客戶端與zookeeper斷開連線後,該節點被刪除。
4.ephemeral_sequential(臨時順序編號目錄節點)
客戶端與zookeeper斷開連線後,該節點被刪除,只是zookeeper給該節點名稱進行順序編號。
客戶端註冊監聽他關心的目錄節點,當目錄節點發生變化(資料改變、被刪除、子目錄節點增加、刪除)時,zookeeper會通知客戶端;watch監聽是暫時的,每當watch的資料發生了變化,就會重新watch。
zookeeper在分布式應用配置管理上的作用:
當程式是分布式部署在多台機器上,我們要修改程式的配置檔案時,需要每台機器逐個修改,非常麻煩;如果把這些配置全部放到zookeeper上去,儲存在zookeeper上的乙個目錄節點中,然後所有相關應用程式對這個目錄節點進行監聽,一旦配置資訊發生變化,每個應用程式就會收到zookeeper的通知,然後從zookeeper獲取新的配置資訊應用到系統中。
1、 master的選舉基本思路和編碼實現
2、 資料的發布和訂閱
3、 軟負載均衡
4、 分布式佇列
5、 分布式鎖
6、 命名服務
master選舉
zookeeper的節點有兩種型別,持久節點和臨時節點,臨時節點有個特性,如果註冊這個節點的機器失去連線(通常是宕機),那個這個節點就會被zk刪除。選主過程就是利用這個特性,在伺服器啟動時,去zk特定的乙個目錄下註冊乙個臨時節點(這個節點作為master,誰註冊這個節點誰就是master),如果註冊的時候發現該節點已經存在,則說明已經有其他的伺服器搶主成功,當前伺服器就只能作為從機存在,同時訂閱該臨時節點的刪除事件,以便下次搶主。簡而言之:選主的過程其實就是爭搶zk註冊臨時節點的操作,誰註冊了約定的臨時節點,誰就是master。
Hadoop生態圈普及
大資料一路走來,從最開始的hadoop1.0 逐漸發展到hadoop2.0。hadoop的橫空出世引領了大資料行業技術的發展。逐漸以分布式並行離線處理框架mapreduce 分布式檔案儲存系統hdfs以及排程系統yarn為中心,發展出龐大的生態圈,比如hive hbase zookeeper等等,豐...
Hadoop生態圈初識
一 簡介 hadoop是乙個由apache 會所開發的分布式系統基礎架構。hadoop的框架最核心的設計就是 hdfs和mapreduce。hdfs為海量的資料提供了儲存,則mapreduce為海量的資料提供了計算。二 hdfs hadoop distributed file system,簡稱hd...
產業生態圈和生態圈
突然想到這麼乙個比喻,不是想說明什麼。想起以前經常看到的android生態圈,mac生態圈,win生態圈之類。是不是可以把 產業生態圈 產業鏈 和 生態圈 食物鏈 做模擬?生態學裡面也形象的把以自養生物為食物的動物稱為初級消費者。市場這個 生態圈 裡的各級 消費者 傳遞的不是能量,而是利潤 空白市場...