distcp指令並行拷貝大資料檔案

2021-07-13 14:54:52 字數 3261 閱讀 7637

您可以使用目標群集上的 distcp 工具啟用複製作業以移動資料。在執行不同 cdh 版本的兩個群集之間,執行 distcp 工具(hftp:// 作為原始檔系統且 hdfs:// 作為目標檔案系統)。它將 hftp 協議用於原始檔系統且 hdfs 協議用於目標檔案系統。hftp 的預設埠為 50070,hdfs 的預設埠為 8020。此外,還通過 s3:// 或 s3n:// 協議支援 amazon s3 塊和本地檔案系統。

源 uri 示例:

hftp://namenode-location:50070/basepath

其中,namenode-location 是指 cdh 4 namenode 主機名稱,如其配置的 fs.default.name 所定義,且 50070 是 namenode 的 http 伺服器端口,如其配置的 dfs.http.address 所定義。

目標uri 示例:

hdfs://nameservice-id/basepath 或 hdfs://namenode-location

這是指 cdh 5 namenode,如其配置的 fs.defaultfs 所定義。

以上兩個 uri 中的 basepath 是指想要複製的目錄(如明確需要乙個)。

amazon s3 塊檔案系統 uri 示例:

s3://accesskeyid:secretkey@bucket/file

amazon s3 本地檔案系統 uri 示例:

s3n://accesskeyid:secretkey@bucket/file

如需更多幫助並檢視 distcp 命令中可用的所有選項,請使用以下命令檢視內建幫助:

$ hadoop distcp
執行 

distcp 複製,方法是在 cdh 5 群集上發出以下命令:

distcp 用作公升級的一部分,請僅在公升級過程中在目標群集上執行以下命令,在此示例中,為 cdh 5 群集。

$ hadoop distcp hftp://cdh4-namenode:50070/ hdfs://cdh5-nameservice/

$ hadoop distcp s3://accesskeyid:secretkey@bucket/ hdfs://cdh5-nameservice/

$ hadoop distcp s3n://accesskeyid:secretkey@bucket/ hdfs://cdh5-nameservice/

或者使用特定路徑,例如 /hbase,以移動 hbase 資料,例如:

$ hadoop distcp hftp://cdh4-namenode:50070/hbase hdfs://cdh5-nameservice/hbase

$ hadoop distcp s3://accesskeyid:secretkey@bucket/file hdfs://cdh5-nameservice/bucket/file

$ hadoop distcp s3n://accesskeyid:secretkey@bucket/file hdfs://cdh5-nameservice/bucket/file

distcp 隨後將提交執行 逐檔案複製的常規 mapreduce 作業。

distcp 是乙個用於在不同群集中的分布式檔案系統之間複製檔案的通用實用程式。通常情況下,您可以使用 distcp 以在任一方向的相容群集之間複製檔案。例如,您可以將檔案從 hdfs 檔案系統複製到 amazon s3 檔案系統。以上示例特定於使用 distcp 輔助從 cdh 4 公升級到 cdh 5。

下表列出了在不同版本 cdh 上使用具有 distcp 命令的不同協議的支援。在該表中,安全是指該群集已配置為使用 kerberos。由於包括 hdfs-6776,因此,僅 cdh 5.1.3 以後的版本才支援在安全群集和非安全群集之間複製。

目標源協議和配置

目標協議和配置

發出 distcp 命令的位置

所需回退配置

狀態cdh 4

cdh 4

hdfs 或 webhdfs,非安全

hdfs 或 webhdfs,非安全

源或目標

確定cdh 4

cdh 4

hftp,非安全

hdfs 或 webhdfs,非安全

目標確定

cdh 4

cdh 4

hdfs 或 webhdfs,安全

hdfs 或 webhdfs,安全

源或目標

確定cdh 4

cdh 4

hftp,安全

hdfs 或 webhdfs,安全

目標確定

cdh 4

cdh 5

webhdfs,非安全

webhdfs 或 hdfs,非安全

目標確定

cdh 4

cdh 5(5.1.3 及更高版本)

webhdfs,非安全

webhdfs,安全目標是

確定cdh 4

cdh 5

webhdfs 或 hftp,非安全

webhdfs 或 hdfs,非安全

目標確定

cdh 4

cdh 5

webhdfs 或 hftp,安全

webhdfs 或 hdfs,安全

目標確定

cdh 5

cdh 5

hdfs 或 webhdfs,非安全

hdfs 或 webhdfs,非安全

源或目標

確定cdh 5

cdh 5

hftp,非安全

hdfs 或 webhdfs,非安全

目標確定

cdh 5

cdh 5

hdfs 或 webhdfs,安全

hdfs 或 webhdfs,安全

源或目標

確定cdh 5

cdh 5

hftp,安全

hdfs 或 webhdfs,安全

目標確定

cdh 5

cdh 5(5.1.3 及更高版本)

hdfs 或 webhdfs,安全

hdfs 或 webhdfs,非安全源是

確定 要啟用回退配置以在安全群集和非安全群集之間進行複製,請將以下複製到 hdfs 

core-default.xml,方法是使用該配置**段(如使用的是 cloudera manager),或者直接編輯檔案。

ipc.client.fallback-to-******-auth-allowed

true

Hadoop集群間資料拷貝distcp使用

distcp是hadoop集群間拷貝工具,使用mapreduce的方式,進行大資料在集群的拷貝,不同於簡單的資料copy,distcp會校驗資料,穩定傳輸,最後進行拷貝結果統計,彙總拷貝狀態,如拷貝成功的檔案數 大小等 基本命令 hadoop distcp option src dst 關於dist...

Hadoop集群間資料拷貝distcp使用

distcp是hadoop集群間拷貝工具,使用mapreduce的方式,進行大資料在集群的拷貝,不同於簡單的資料copy,distcp會校驗資料,穩定傳輸,最後進行拷貝結果統計,彙總拷貝狀態,如拷貝成功的檔案數 大小等 基本命令 hadoop distcp option src dst 關於dist...

第三章 第七節 使用distcp並行拷貝

到現在為止我們看到的hdfs訪問模式都是單執行緒訪問。它可以操作一組檔案 例如定義file glob 但是要高效並行處理這些檔案,你需要自己寫乙個程式。hadoop自帶了乙個有用的程式叫distcp用來 並行拷貝檔案到 從hadoop檔案系統。distcp的乙個作用是有效代替hadoop fs cp...