回覆列表
  • 1 # Amo晴天657

    其實就是簡單的 replica

    冗餘存在的目的就是為了防止掛掉

    任何形式的掛掉都要防止

    基本的原理異常的簡單

    如下:

    每一個replica HDFS ,HBse 這些都有各自的replica

    每一個replica都會企圖在 zookeeper 的某一個目錄節點獲取一個鎖

    拿到鎖的就是master , 比如說replica(1)拿到了鎖,但是需要定期的和zookeeper 交流感情,

    其他沒拿到鎖的 replica (2.3.4.5.6.)就告訴 zookeeper 說:“你要是覺得那個replica(1)掛了你告訴我一聲 啊!

    注意: 是覺得哦! 這裡分兩種可能

    1) replica(1)掛了

    2) network partition 把replica(1) 從網路中物理的隔開了。

    這個時候其他的replica(2.3.4.5.6.) 就會再去爭搶那個 master了.

    這就是冗餘機制 其實 hdfs的冗餘機制沒啥特別的 , 主要是 作為BigTable的開源實現,NONsql資料庫的特性比較重要吧

    而且zookeeper 本身 作為 Google Chubby 的開源實現 ,也是透過實現 PAXOS 演算法來保持 自身的 Consensus 的 只不過它是建立在 TCP 協議基礎上的, 所以zookeeper吧Chubby的演算法改進了一下換了個名字叫 ..total order broadcast protocol 略無恥.

    所謂特點的話: 其實就是在有這個zookeeper (Chubby) 以前 Google 使用另外一種演算法來保證核心鎖機制的 Consensus的 .. 只是那個有很多問提, 需要有人值守 這個就是我上面為什麼提到掛掉的那兩種可能的原因

    基本上就是這樣了 。。。

    你要是想學的話 Google scholar + Hadoop in action 用起來 五六個月就能有所小成了

  • 中秋節和大豐收的關聯?
  • 形容荒蕪的詩句?