資源描述:
《HBase數(shù)據(jù)備份》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、HBase數(shù)據(jù)備份的方法1FullShutdownBackup1.1關(guān)閉hbase1.2利用hadoop的distcpDistcp既用于將HDFS里面的HBase目錄下的內(nèi)容拷貝到當(dāng)前集群的另一個目錄,也可以拷貝到另一個集群。1.3Hadoopdistcp用法DistCp(分布式拷貝)是用于大規(guī)模集群內(nèi)部和集群之間拷貝的工具。它使用Map/Reduce實(shí)現(xiàn)文件分發(fā),錯誤處理和恢復(fù),以及報(bào)告生成。它把文件和目錄的列表作為map任務(wù)的輸入,每個任務(wù)會完成源列表中部分文件的拷貝。由于使用了Map/Reduce方法,這個工具在語義和執(zhí)行上都會有特殊的地方。這篇文檔會為常用DistCp操作提供
2、指南并闡述它的工作模型。使用方法基本使用方法DistCp最常用在集群之間的拷貝:bash$hadoopdistcphdfs://nn1:8020/foo/barhdfs://nn2:8020/bar/foo這條命令會把nn1集群的/foo/bar目錄下的所有文件或目錄名展開并存儲到一個臨時文件中,這些文件內(nèi)容的拷貝工作被分配給多個map任務(wù),然后每個TaskTracker分別執(zhí)行從nn1到nn2的拷貝操作。注意DistCp使用絕對路徑進(jìn)行操作。命令行中可以指定多個源目錄:bash$hadoopdistcphdfs://nn1:8020/foo/ahdfs://nn1:8020/foo
3、/bhdfs://nn2:8020/bar/foo或者使用-f選項(xiàng),從文件里獲得多個源:bash$hadoopdistcp-fhdfs://nn1:8020/srclisthdfs://nn2:8020/bar/foo其中srclist的內(nèi)容是hdfs://nn1:8020/foo/ahdfs://nn1:8020/foo/b當(dāng)從多個源拷貝時,如果兩個源沖突,DistCp會停止拷貝并提示出錯信息,如果在目的位置發(fā)生沖突,會根據(jù)選項(xiàng)設(shè)置解決。默認(rèn)情況會跳過已經(jīng)存在的目標(biāo)文件(比如不用源文件做替換操作)。每次操作結(jié)束時都會報(bào)告跳過的文件數(shù)目,但是如果某些拷貝操作失敗了,但在之后的嘗試成功
4、了,那么報(bào)告的信息可能不夠精確(請參考附錄)。每個TaskTracker必須都能夠與源端和目的端文件系統(tǒng)進(jìn)行訪問和交互。對于HDFS來說,源和目的端要運(yùn)行相同版本的協(xié)議或者使用向下兼容的協(xié)議??截愅瓿珊螅ㄗh生成源端和目的端文件的列表,并交叉檢查,來確認(rèn)拷貝真正成功。因?yàn)镈istCp使用Map/Reduce和文件系統(tǒng)API進(jìn)行操作,所以這三者或它們之間有任何問題都會影響拷貝操作。一些Distcp命令的成功執(zhí)行可以通過再次執(zhí)行帶-update參數(shù)的該命令來完成,值得注意的是,當(dāng)另一個客戶端同時在向源文件寫入時,拷貝很有可能會失敗。嘗試覆蓋HDFS上正在被寫入的文件的操作也會失敗。如果一
5、個源文件在拷貝之前被移動或刪除了,拷貝失敗同時輸出異常FileNotFoundException。選項(xiàng)選項(xiàng)索引標(biāo)識描述備注-p[rbugp]Preserver:replicationnumberb:blocksizeu:userg:groupp:permission修改次數(shù)不會被保留。并且當(dāng)指定-update時,更新的狀態(tài)不會被同步,除非文件大小不同(比如文件被重新創(chuàng)建)。-i忽略失敗就像在附錄中提到的,這個選項(xiàng)會比默認(rèn)情況提供關(guān)于拷貝的更精確的統(tǒng)計(jì),同時它還將保留失敗拷貝操作的日志,這些日志信息可以用于調(diào)試。最后,如果一個map失敗了,但并沒完成所有分塊任務(wù)的嘗試,這不會導(dǎo)致整個作
6、業(yè)的失敗。-log記錄日志到DistCp為每個文件的每次嘗試拷貝操作都記錄日志,并把日志作為map的輸出。如果一個map失敗了,當(dāng)重新執(zhí)行時這個日志不會被保留。-m同時拷貝的最大數(shù)目指定了拷貝數(shù)據(jù)時map的數(shù)目。請注意并不是map數(shù)越多吞吐量越大。-overwrite覆蓋目標(biāo)如果一個map失敗并且沒有使用-i選項(xiàng),不僅僅那些拷貝失敗的文件,這個分塊任務(wù)中的所有文件都會被重新拷貝。就像下面提到的,它會改變生成目標(biāo)路徑的語義,所以用戶要小心使用這個選項(xiàng)。-update如果源和目標(biāo)的大小不一樣則進(jìn)行覆蓋像之前提到的,這不是"同步"操作。執(zhí)
7、行覆蓋的唯一標(biāo)準(zhǔn)是源文件和目標(biāo)文件大小是否相同;如果不同,則源文件替換目標(biāo)文件。像下面提到的,它也改變生成目標(biāo)路徑的語義,用戶使用要小心。-f使用作為源文件列表這等價于把所有文件名列在命令行中。urilist_uri列表應(yīng)該是完整合法的URI。更新和覆蓋這里給出一些-update和-overwrite的例子。考慮一個從/foo/a和/foo/b到/bar/foo的拷貝,源路徑包括:hdfs://nn1:8