zookeeper 就是做分布式一致性
1.產生背景
任務 100個節點 集群
分布式情景下 如何實現資料一致性?
一致性:
強一致性:
寫入什麼 就讀到什麼
例如:從任意乙個節點寫入資料 其他節點讀取到寫入後的資料
集群中只有乙個節點 一致性最強的 集群中節點個數越多 強一致性越難保證
弱一致性:
寫入什麼 盡量保證讀到什麼
不保證最終讀取的結果一定對的
最終一致性:
弱一致性的特殊情況
允許一定的時間延遲的
是什麼:
zookeeper 就是做分布式一致性
分布式演算法 演變:
cap
c:強一致性 乙個節點
a:高可用性 節點越多可用性越高
p:機架策略
實驗環境下
base:
c-- 最終一致性 a :基本可用
ath
:path:
path
:zoo_home/bin
source /etc/profile
ticktime=2000
initlimit=10
synclimit=5
datadir=/home/hadoop/data/zookeeperdata
clientport=2181
#maxclientcnxns=60
server.id = 主機:2888:3888 一行乙個節點
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
zk中每乙個節點都會有乙個id int 0-255 便於投票使用
同乙個集群中 不同節點的id 不可重複
hadoop01 1
hadoop02 2
hadoop03 3
5)新增id檔案
/home/hadoop/data/zookeeperdata 下建立檔名myid的檔案
myid儲存當前節點的id
myid 不要有多餘的空格 也不要有多餘的換行符
sudo scp /etc/profile hadoop02:/etc/
sudo scp /etc/profile hadoop03:/etc/
source /etc/profile
7)到hadoop02 hadoop03 建立 myid檔案
先建立目錄
8)啟動
注意:啟動之前一定保證防火牆關閉的 時間同步的
三個節點都要執行
啟動hadoop01
zkserver.sh start
21698 quorumpeermain zookeeper的程序
有這個程序 不代表啟動成功
驗證啟動成功 zk的狀態
zkserver.sh status
error contacting service. it is probably not running.
啟動hadoop02
zkserver.sh start
mode: leader
hadoop01上
mode: follower
啟動hadoop03
zkserver.sh start
mode: follower
3.全新集群的選主
zookeeper的架構:
主 leader
從 follower
啟動順序 和 myid 有關
啟動順序 hadoop01–1 —》 hadoop02—2 —》 hadoop03—3
1)hadoop01啟動,找集群中的leader,發現沒有leader,發起選主,但是集群中只有乙個節點 他自己, 這個時候hadoop01 就將選票投給自己,這時候hadoop01獲取1票,沒有過半,選主失敗,這個時候hadoop01的狀態 無狀態(it is probably not running)
2)hadoop02啟動,找集群中的leader,發現沒有leader,發起選主,集群中有hadoop01–1 hadoop02—2,每個節點開始投票,zk內部規定id小的節點強制將自己的票投給id大的,hadoop01 —id=2 hadoop02—id=2,id=2(hadoop02)獲取兩票,已經過半了,hadoop02就是選舉的leader , hadoop01 就主動的將自己的狀態切為follower
3)hadoop03啟動,找集群leader,發現集群中已經有leader,主動將自己的狀態切為follower
(未完)
Java 基礎知識記錄
int整型 string字串型 char字元型 float,double浮點型別,即小數,使用float時小數後加f 輸出字元system.out.println hello world 每個println獨佔一行,print合併在同一行 自增 自減 加 減 乘 除法 餘數 與 或 非 短路與 短路...
Unity Shader 基礎知識記錄
首先謝謝大家的支援,其次如果你碰到什麼其他問題的話,歡迎來 我自己的乙個 討論群559666429來,大家一起找答案,共同進步 你能看到這篇文章,說明你最近在和我做一樣的事情 學習shader 由於也是剛開始學習,此處也是整理一些基礎的知識。unity官網資源 著色器 貓都能學會的unity sha...
python基礎知識記錄
1.python 必須頂格寫,除非是巢狀在其他語句中 2.每一層巢狀需要相差4個空格,且同一級 必須對齊 3.當行注釋用 多行注釋用 三引號 注釋 或 注釋 4.if while for語句以冒號結尾,然後通過4個空格開始下一層 5.每行語句結尾不用 6.識別符號除了字母數字下劃線之外可以用中文 7...