zookeeper 基礎知識記要

2021-09-28 00:08:03 字數 2394 閱讀 2705

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...