Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

將 Hadoop 備份至 PowerScale

Summary: 本文說明將非 Isilon 之 Hadoop 環境備份至 Isilon Cluster 的建議最佳實務。

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Instructions

注意:本主題是使用 Hadoop 與 OneFS 資訊中心的一部分。


使用 DistCp 備份 Hadoop 的最佳實務

本文說明將非 PowerScale 之 Hadoop 環境備份至 Dell PowerScale Cluster 的建議最佳實務。Dell PowerScale 強大的糾刪碼資料保護可提供超過 80% 的儲存效率,是 Hadoop 叢集資料的理想備份目標。DistCp (分散式副本) 是隨附於所有 Hadoop 發佈和版本的標準工具。DistCp 可以複製整個 Hadoop 目錄。DistCp 會以 MapReduce 工作執行,以並行方式執行文件複製,並在有需要時完全運用您的系統。另外還可以透過限制頻寬的選項,以控制對其他工作的影響。

環境
本文使用下列測試環境:

  • Pivotal HD (PHD) 2.0.1,使用 Pivotal Control Center 2.0 安裝,所有設定皆使用預設值。明確來說,HDFS 安裝在 PHD 節點上,使用傳統 DAS 組態。
  • PowerScale OneFS 7.2.0

由於 DistCp 是標準的 Hadoop 工具,因此本文件概述的方法適用於大多數的 Hadoop 發佈和版本。

閱讀本文件時,我們假設要備份的資料位於 PHD Hadoop HDFS 叢集的 /mydata 目錄中。此範例會將此資料備份至 PowerScale Cluster,位於 /ifs/hadoop/backup/mydata 目錄中

將 Hadoop 叢集備份至 Isilon
圖 1:將 Hadoop 叢集備份至 Isilon


備份方法:

最簡單的備份方法

最簡單的備份命令如下所示:

[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata hdfs://all-nc-s-hdfs/backup/mydata

您可以在已安裝 Hadoop 用戶端 (hadoop) 的任何主機上執行以上命令。執行此命令的使用者必須具備讀取來源檔案和寫入目標檔案的權限。

必須指定 -skipcrccheck-update 選項,以避免針對放置在 PowerScale Cluster 上的目標檔案進行 CRC 檢查。PowerScale 不會儲存 Hadoop CRC,其計算成本太貴。因此必須使用這些選項,以避免與 CRC 檢查相關的錯誤。

下一個參數「/mydata」是來源 Hadoop 叢集上的來源路徑。這也可以使用「/」以備份整個 HDFS 命名空間。由於路徑並非完全合格,因此會使用 core-site.xml 中 fs.defaultFS 參數指定的 HDFS NameNode。

最後的參數「hdfs://all-nc-s-hdfs/backup/mydata」是 PowerScale Cluster 上的目標路徑。主機部分的「all-nc-s-hdfs」可以是相對或完整符合資格的 DNS 名稱,例如 all-nc-s-hdfs.example.com。它應該是您 PowerScale Cluster 的 SmartConnect Zone DNS 名稱。目錄部分的「/backup/mydata」是相對於 PowerScale Cluster 存取區域中定義的 HDFS 根路徑。如果您的 HDFS 根路徑為 /ifs/hadoop,則此值代表 /ifs/hadoop/backup/mydata 目錄中

若檔案在來源和目標目錄中的大小相同,便會假設其並未變更,且不會複製。明確來說,不會使用檔案的時間戳記來判斷檔案是否經過變更。如需 DistCp 的詳細資料,請參閱 Hadoop DistCp 版本 2 指南此超連結會帶您前往 Dell Technologies 以外的網站。

複製權限
根據預設,目標檔案的擁有者、群組和權限會重設為由啟動 DistCp 的使用者所建立的新檔案預設值。將會遺失來源檔案所定義的任何擁有者、群組和權限。若要保留來源檔案中的資訊,請使用 -p 選項。由於 -p 選項必須執行 chown/chgrp,因此啟動 DistCp 的使用者必須是目標系統上的超級使用者。PowerScale Cluster 上的 root 使用者可進行此操作。例如: 

[root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata

使用快照作為備份來源
備份大型資料集可能需要很長時間。在 DistCp 程序開始時,掃描目錄結構中存在的檔案,可能會在複製該檔案後遺失。這樣的檔案變更會產生錯誤。此外,應用程式可能需要一致的單一時間點備份才能使用。若要處理這些問題,建議您建立來源的 HDFS 快照,以確保資料集不會在備份程序期間變更。這與目標 PowerScale Cluster 的 SnapshotIQ 功能無關。

若要使用 HDFS 快照,您必須先允許為特定目錄拍攝快照:

[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded


在使用 DistCp 備份前建立 HDFS 快照:

[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot /mydata backupsnap Created snapshot /mydata/.snapshot/backupsnap

快照的名稱為 backupsnap。您可以在 HDFS 路徑 /mydata/.snapshot/backupsnap 存取快照。在後續備份中,將不會反映 HDFS 檔案在此快照之後的任何變更。您可以使用下列命令將快照備份至 PowerScale:

[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata/.snapshot/backupsnap hdfs://all-nc-s-hdfs/backup/mydata

備份命令執行完成後,您可以刪除快照。如此可釋出保留在拍攝快照後修改之舊版檔案的空間:

[gpadmin@phddas2-0 ~]$ hdfs dfs -deleteSnapshot /mydata backupsnap

使用 PowerScale 快照作為備份目標
除了使用快照作為備份來源之外,您也可能希望保留多個備份目標目錄的快照,以還原舊版檔案。

若要在 PowerScale 上建立快照,您必須擁有 SnapshotIQ 授權。您可以使用 Web 管理員介面或 CLI 建立快照。若要使用 CLI 手動建立單一 PowerScale 快照,請透過 SSH 進入任何 PowerScale Node,並執行下列步驟:

all-nc-s-1# isi snapshot snapshots create /ifs/hadoop/backup/mydata --name backup-2014-07-01 --expires 1D --verbose
Created snapshot backup-2014-07-01 with ID 6


您可以在下方「排程備份」一節中所述的備份程序中增加此命令。

如需有關 PowerScale OneFS 快照的詳細資料,請參閱適用您 OneFS 版本的 PowerScale OneFS CLI 管理員指南:PowerScale OneFS 資訊中心

適用於多個 PowerScale Cluster 的 SYNCIQ 複寫
在 DistCp 備份至 PowerScale Cluster 完成後,您可以使用 OneFS SyncIQ 將快照跨 WAN 複製到其他 PowerScale Cluster。複製的快照可為您的災難回復提供多樣化的高效率元件。

適用於多個 Isilon Cluster 的 SynIQ 複寫
圖 2:適用於多個 Isilon Cluster 的 SynIQ 複寫

處理已刪除檔案
根據預設,從來源 Hadoop 叢集刪除的檔案不會從目標 Hadoop 叢集刪除。如果您需要進行此行為,請在 DistCp 命令加上 -delete 變數。使用此命令時,建議您在備份目標上使用快照,以復原已刪除的檔案。

排程備份
您可以使用多種方法自動化和排程備份 Hadoop 叢集的步驟。在自動化 Hadoop 工作時經常會使用 Apache Oozie,並直接支援 DistCp。也可使用 CRON 執行 Shell 指令檔。若要在 SSH 工作階段中自動執行命令,請啟用無密碼 SSH。無密碼 SSH 可讓 CRON 使用者連線至您的 Hadoop 用戶端和 PowerScale Cluster (若使用 SnapshotIQ)。


復原方法

反向 DISTCP

將 DistCp 備份從 PowerScale 還原至傳統 Hadoop 基礎結構的標準方法,是以相反方向執行 DistCp。在執行此操作時對換來源和目標路徑。

[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update hdfs://all-nc-s-hdfs/backup/mydata /mydata

您可能想要建立目標目錄的快照,以還原在復原程序中的錯誤。不過,請注意維護快照所需的額外磁碟使用量。


使用 HDFS 直接存取備份資料

由於 PowerScale 支援 HDFS,因此可透過與來源檔案相同的方式,從 Hadoop 應用程式存取 PowerScale 上的備份目標檔案。您可以直接使用備份資料,而不必先將其還原至原本的來源 Hadoop 環境。此功能可節省分析的時間。例如,如果您執行的 MapReduce 命令如下:

hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep /mydata/mydataset1 output1 ABC

您可以使用下列命令,針對 PowerScale 的備份資料集執行 MapReduce 工作:

hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep hdfs://all-nc-s-hdfs/backup/ /mydata/mydataset1 output1 ABC

若要指定完整符合資格的 Hadoop 路徑,而不使用 fs.defaultFS 參數,請洽詢您的應用程式供應商,以取得詳細資料。此外,若 PowerScale Cluster 是專為備份與歸檔封存 (而非高效能) 所設計,則可能無法提供與主要 Hadoop 環境相同的效能。建議進行測試,或洽詢 Dell PowerScale,以進行適當的規模調整。


從 PowerScale 快照復原

您可以從先前的 PowerScale 快照復原檔案。檔案位於 /ifs/.snapshot 目錄中。如需詳細資料和其他選項,請參閱 PowerScale OneFS CLI 系統管理指南.

HDFS 版本相容性
PowerScale 與多種版本的 HDFS 相容。您可以同時使用它們來存取相同的資料集。PowerScale 不需任何組態,即可自動偵測每個連線的適當 HDFS 版本。請參閱 PowerScale OneFS CLI 系統管理指南,了解支援的 Hadoop 發佈和版本清單,或前往 OneFS 支援的 Hadoop 發佈及產品。版本相容性表示執行不同 Hadoop 版本的多個 Hadoop 環境可使用 HDFS 備份至單一 PowerScale Cluster。

如果 PowerScale 不支援您的 Hadoop 版本,您仍然可以使用 DistCp,透過 HFTP 以 PowerScale 備份和還原 Hadoop 資料。例如,PowerScale OneFS 7.1.1 及更新版本不支援 PHD 2.0 及更新版本。在此組態中,您必須使用 PowerScale 直接支援的 Hadoop 版本,建立小型 Hadoop 叢集。建立 Hadoop 叢集後,請在新叢集上使用 HFTP 通訊協定執行 DistCp,以存取原始 Hadoop 叢集上的來源資料。HFTP 通訊協定是唯讀的檔案系統,可相容不同版本的 Hadoop。舉例來說:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update hftp://phddas2-namenode-0/mydata hdfs://all-nc-s-hdfs/backup/mydata

執行 DistCp MapReduce 工作的新小型叢集大小主要取決於所需的輸送量。如果您只需要以 10 Gbps 的速率備份,則只需要一個 Hadoop 節點。您的任何資料都不會儲存在此小型 Hadoop 叢集上,因此對磁碟的需求極少。

使用不相容的通訊協定版本,將 Hadoop 叢集備份至 Isilon
圖 3:使用不相容的通訊協定版本,將 Hadoop 叢集備份至 Isilon


結論

Dell PowerScale 是最適合 Hadoop 和其他 Big Data 應用程式的平台。它使用糾刪碼來保護資料,提供超過 80% 的儲存效率,相較之下,傳統 HDFS 的儲存效率則只有 33%。Dell PowerScale 有多種節點類型的類別,從密集 NL400 到高效能 S210,以及介於兩者之間的 X410。不同的節點類型可讓您針對特定工作負載最佳化不同的 PowerScale 層級。將傳統 Hadoop 環境備份至 PowerScale 十分簡單,並可實現可用度最密集的 HDFS 備份目標。

Article Properties


Affected Product

Isilon, PowerScale OneFS, Isilon with HDFS

Last Published Date

20 Sep 2023

Version

6

Article Type

How To