Hadoop中Namenode單點故障的解決方案
Hadoop中Namenode單點故障的解決方案
需求:
實現namenode後設資料的備份,解決namenode單點當機導致叢集不可用的問題。
方案描述:
當namenode所在伺服器當機的時候,我們可以利用namenode備份的後設資料迅速重構新的namenode來投入使用。
1. Hadoop本身提供了可利用secondarynamenode的備份資料來恢復namenode的後設資料的方案,但因為checkpoint(在每次 checkpoint的時候secondarynamenode才會合併並同步namenode的資料)的問題,secondarynamenode的備份資料並不能時刻保持與namenode同步,也就是說在namenode當機的時候secondarynamenode可能會丟失一段時間的資料,這段 時間取決於checkpoint的週期。我們可以減小checkpoint的週期來減少資料的丟失量,但由於每次checkpoint很耗效能,而且這種方案也不能從根本上解決資料丟失的問題。所以如果需求上不允許這種資料的丟失,這種方案可直接不予考慮。
2. Hadoop提供的另一種方案就是NFS,一種即時備份namenode後設資料的方案,設定多個data目錄(包括NFS目錄),讓namenode在持 久化後設資料的時候同時寫入多個目錄,這種方案較第一種方案的優勢是能避免資料的丟失(這裡我們暫時不討論NFS本身會丟失資料的可能性,畢竟這種機率很小 很小)。既然可以解決資料丟失的問題,說明這套方案在原理上是可行的
參考下面一樣:
Hadoop叢集中,NameNode節點儲存著HDFS上所有檔案和目錄的後設資料資訊
如果NameNode掛了,也就意味著整個Hadoop叢集也就完了
所以,NameNode節點的備份很重要,可以從以下2個方面來備份NameNode節點
1. 在hdfs-site.xml中,配置多個name的dir到不同的磁碟分割槽上:
<property>
<name>dfs.name.dir</name>
<value>/pvdata/hadoopdata/name/,/opt/hadoopdata/name/</value>
</property>
2. 在另外的一臺伺服器上配置Secondary NameNode:它是NameNode的一個備份
Secondary NameNode會定期合併fsimage和edits日誌,將edits日誌檔案大小控制在一個限度下
合併的時機是由2個配置引數決定的:
fs.checkpoint.period,指定連續兩次檢查點的最大時間間隔, 預設值是1小時。
fs.checkpoint.size定義了edits日誌檔案的最大值,一旦超過這個值會導致強制執行檢查點(即使沒到檢查點的最大時間間隔)。預設值是64MB。
Secondary NameNode的配置過程如下:
在conf/masters中指定第二名稱節點的主機名
在core-site.xml中指定checkpoint的目錄
<property>
<name>fs.checkpoint.dir</name>
<value>/opt/hadoopdata/secondname,/pvdata/hadoopdata/secondname</value>
<description>Determines where on the local filesystem the DFS secondary
name node should store the temporary images to merge.
If this is a comma-delimited list of directories then the image is
replicated in all of the directories for redundancy.
</description>
</property>
如果NameNode節點掛了,可以按照如下步驟來從Secondary NameNode來恢復:
在dfs.name.dir指定的位置建立一個空資料夾
從Secondary NameNode上把secondname的目錄給scp到新的NameNode機器的fs.checkpoint.dir下
使用hadoop/bin/hadoop namenode -importCheckpoint來啟動NameNode,主要不要執行format命令
使用hadoop fsck /user命令檢查檔案Block的完整性。
相關文章
- Hadoop 啟動namenode節點失敗Hadoop
- Hadoop框架:NameNode工作機制詳解Hadoop框架
- Hadoop2之NameNode HA詳解Hadoop
- Hadoop雙namenode配置搭建(HA)Hadoop
- hadoop訪問不到8088解決方案Hadoop
- Hadoop常見錯誤及解決方案Hadoop
- led螢幕的安裝方式及故障解決方案
- Oracle ASM故障資料恢復解決方案OracleASM資料恢復
- 下拉選單「點選外面關閉」的終極解決方案
- 黑猴子的家:Hadoop之Namenode多目錄配置Hadoop
- 使用NVRAM的簡單解決方案VR
- hadoop(5)--NameNode後設資料管理(2)Hadoop
- 完全跨域的單點登入(SSO)解決方案原始碼解析跨域原始碼
- 普通raid常見故障解和決方案彙總AI
- Hadoop錯誤之namenode當機的資料恢復Hadoop資料恢復
- 簡單的mock-server 解決方案MockServer
- Hadoop3.2.1 【 HDFS 】原始碼分析 : Secondary Namenode解析Hadoop原始碼
- Hadoop3.2.1 【 HDFS 】原始碼分析 : Standby Namenode解析Hadoop原始碼
- 簡單的瞭解跨域以及解決方案跨域
- Windows還原系統後分割槽故障解決方案Windows
- 黑猴子的家:Hadoop NameNode 高可用 (High Availability) 實現解析HadoopAI
- 基於商業版Hadoop搭建的資料倉儲解決方案Hadoop
- JS中的非同步解決方案JS非同步
- 聊聊分散式資料庫中單節點故障的影響分散式資料庫
- 點晴移動OA解決方案
- 安裝 Hadoop:設定單節點 Hadoop 叢集Hadoop
- Hadoop中java.lang.ClassCastException: partition解決方法HadoopJavaASTException
- 新鮮出爐:appium2.0+ 單點觸控和多點觸控新的解決方案APP
- 程式設計師筆記|常見的SpringMVC故障排查及解決方案程式設計師筆記SpringMVC
- Python 的 3 個主要缺點及其解決方案Python
- Windows下hadoop環境搭建之NameNode啟動報錯WindowsHadoop
- 重點人員管控解決方案
- 【故障】安裝完Pycharm,啟動時碰到"failed to load jvm dll"的解決方案PyCharmAIJVM
- FRAM作為程式碼儲存器應用中的單晶片解決方案晶片
- ORA-10873 故障解決
- 三菱PLC常見故障及遠端維護解決方案
- B站伺服器故障?淺析其中原因及解決方案伺服器
- 硬碟物理故障解決方法之電路板損壞修復方案硬碟