hadoop主節點(NameNode)備份策略以及恢復方法
link:http://jiajun.iteye.com/blog/809125
一、dits和fsimage
首先要提到兩個檔案edits和fsimage,下面來說說他們是做什麼的。
- 叢集中的名稱節點(NameNode)會把檔案系統的變化以追加儲存到日誌檔案edits中。
- 當名稱節點(NameNode)啟動時,會從映象檔案 fsimage 中讀取HDFS的狀態,並且把edits檔案中記錄的操作應用到fsimage,也就是合併到fsimage中去。合併後更新fsimage的HDFS狀態,建立一個新的edits檔案來記錄檔案系統的變化
那麼問題來了,只有在名稱節點(NameNode)啟動的時候才會合併fsimage和edits,那麼久而久之edits檔案會越來越大,特別是大型繁忙的HDFS叢集。這種情況下,由於某種原因你要重啟名稱節點(NameNode),那麼會花費很長的時間去合併fsimge和edits,然後HDFS才能執行。
二、Secondary NameNode
目前使用的版本hadoop-0.20.2可以使用Secondary NameNode來解決上面的問題。Secondary NameNode定期合併fsimage和edits日誌,把edits日誌檔案大小控制在一個限度下。因為記憶體需求和NameNode差不多(On the same order),所以Sencondary NameNode通常要執行在另外個機器上。
secondary NameNode配置在conf/masters檔案,啟動命令:bin/start-dfs.sh(如果你使用不建議的start-all.sh也是會啟動的)。
三、什麼時候checkpiont
secondary NameNode 什麼時候執行checkpoint來合併fsimage和eidts。呢?有兩個配置引數控制:
- fs.checkpoint.period 指定兩次checkpoint的最大時間間隔,預設3600秒。
- fs.checkpoint.size 規定edits檔案的最大值,一旦超過這個值則強制checkpoint,不管是否到達最大時間間隔。預設大小是64M。
secondary NameNode 儲存最後一次checkpoint的結果,儲存結構和主節點(NameNode)的一樣,所以主節點(NameNode)可以隨時來讀取。
如果你沒有啟動secondary NameNode 那麼可以試試 bin/hadoop secondarynamenode -checkpoint 甚至 bin/hadoop secondarynamenode -checkpoint force. 看看生成的檔案。
checkpoint可以解決重啟NameNode時間過長的弊端。另外還有偏方:
四、Import Checkpoint(恢復資料)
如果主節點掛掉了,硬碟資料需要時間恢復或者不能恢復了,現在又想立刻恢復HDFS,這個時候就可以import checkpoint。步驟如下:
- 拿一臺和原來機器一樣的機器,包括配置和檔案,一般來說最快的是拿你節點機器中的一臺,立馬能用(部分配置要改成NameNode的配置)
- 建立一個空的資料夾,該資料夾就是配置檔案中dfs.name.dir所指向的資料夾。
- 拷貝你的secondary NameNode checkpoint出來的檔案,到某個資料夾,該資料夾為fs.checkpoint.dir指向的資料夾
- 執行命令bin/hadoop namenode -importCheckpoint
這樣NameNode會讀取checkpoint檔案,儲存到dfs.name.dir。但是如果你的dfs.name.dir包含合法的fsimage,是會執行失敗的。因為NameNode會檢查fs.checkpoint.dir目錄下映象的一致性,但是不會去改動它。
值得推薦的是,你要注意備份你的dfs.name.dir和 ${fs.checkpoint.dir}/dfs/namesecondary。
五、Checkpoint Node 和 Backup Node
在後續版本中hadoop-0.21.0,還提供了另外的方法來做checkpoint:Checkpoint Node 和 Backup Node。則兩種方式要比secondary NameNode好很多。所以 The Secondary NameNode has been deprecated. Instead, consider using the Checkpoint Node or Backup Node.
Checkpoint Node像是secondary NameNode的改進替代版,Backup Node提供更大的便利,這裡就不再介紹了。
切換namenode之後發現 進入的安全模式如下
$ hadoop dfsadmin -report
Safe mode is ON
解決方案有兩種
[hadoop@vm×× name]$ hadoop fsck /
FSCK started by hadoop (auth:SIMPLE) from /×.×.×.× for path / at Thu Apr 16 15:31:10 CST 2015
..Status: HEALTHY
Total size: 109836279 B
Total dirs: 10
Total files: 2
Total blocks (validated): 2 (avg. block size 54918139 B)
Minimally replicated blocks: 2 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 0 (0.0 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 1
Average block replication: 1.0
Corrupt blocks: 0
Missing replicas: 0 (0.0 %)
Number of data-nodes: 4
Number of racks: 1
FSCK ended at Thu Apr 16 15:31:10 CST 2015 in 4 milliseconds
The filesystem under path `/` is HEALTHY
本文轉自茄子_2008部落格園部落格,原文連結:http://www.cnblogs.com/xd502djj/p/4425990.html,如需轉載請自行聯絡原作者。
相關文章
- oop主節點(NameNode)備份策略以及恢復方法OOP
- Hadoop 啟動namenode節點失敗Hadoop
- oracle備份和恢復策略簡介Oracle
- mysqldump常用備份恢復方法MySql
- RAC一個節點恢復另一個節點在帶庫上的備份
- 【備份恢復】從備份恢復資料庫資料庫
- 【管理篇備份恢復】備份恢復基礎
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- 企業低成本備份和恢復策略探析
- MySQL備份和恢復方法彙總MySql
- Hadoop錯誤之namenode當機的資料恢復Hadoop資料恢復
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- 備份與恢復--利用備份的控制檔案恢復
- 課時7-備份與恢復----資料庫備份策略指令碼資料庫指令碼
- Mysql備份恢復MySql
- Postgresql 備份恢復SQL
- redis備份恢復Redis
- mysql 備份恢復MySql
- 小丸子學Hadoop系列之——hbase備份與恢復Hadoop
- windows主機下使用rman恢復備份到不同主機Windows
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- 解密MySQL備份恢復的4種方法解密MySql
- Oracle資料庫的備份及恢復策略研究(轉)Oracle資料庫
- 【物理熱備】(下)備份恢復系統表空間 手工備份恢復
- 詳解叢集級備份恢復:物理細粒度備份恢復
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- 備份與恢復系列 十一 控制檔案的備份與恢復
- windwos server 路由備份和恢復 路由表備份和恢復Server路由
- 【備份恢復】資料恢復指導資料恢復
- Mysql備份與恢復(1)---物理備份MySql
- RMAN備份與恢復之加密備份加密
- Grafana 備份恢復教程Grafana
- redis 備份和恢復Redis
- Postgresql 備份與恢復SQL
- Nifi flow 備份恢復Nifi
- 備份和恢復redisRedis
- MySQL備份與恢復MySql