翻譯官網QJN的Architecture:

在HA的集羣裏頭,兩臺獨立的機器會被個配置成爲一個NameNode。在任什麼時候刻,只能有一個namenode是active的,另一個是standby狀態。active的namenode是負責來自client的全部請求操做,而standby則在待命隨時準備成爲active的namenode。node

爲了保持namenode active和namenode standby 之間的同步,兩個namenode之間經過一個叫作JournalNodes的守護進程來保持同步的。當namenode active的namespace有被修改的時候,namenode active會把這些操做日誌記錄在journalnodes上。而後namenode standby就會從journalnodes的edits上讀取這些操做日誌。當namenode拿到edits操做日誌以後,它就會把日誌的操做應用到本身的namespace裏頭。一旦namenode active出現問題,namenode standby就能夠確保本身在成爲namenode active以前,本身已經讀取了全部的edits操做日誌。spa

爲了提供一個快速的熱備切換,就須要namenode standby時刻知道block的位置信息,要實現這一點,datanode節點配置了namenode的信息,而後datanode主動把block的位置信息和心跳數據發送給兩個namenode。日誌

確保任什麼時候候只有一個active的namenode是相當重要的,不然,可能致使數據丟失和一些嚴重後果。journalnodes會保證同一時刻只有一個namenode active。在熱備切換的時候,即將成爲active的namenode standby會接管writer的角色。進程

相關文章
相關標籤/搜索