Hadoop 之 Distcp官網介紹和注意事項

2021-10-03 11:53:35 字數 2598 閱讀 3488

官網:

distcp(分布式拷貝)是用於大規模集群內部和集群之間拷貝的工具。它使用map/reduce實現檔案分發,錯誤處理和恢復,以及報告生成。它把檔案和目錄的列表作為map任務的輸入,每個任務會完成源列表中部分檔案的拷貝。由於使用了map/reduce方法,這個工具在語義和執行上都會有特殊的地方。

distcp版本2(分布式副本)是用於大型集群間/集群內複製的工具。它使用mapreduce來實現其分發,錯誤處理和恢復以及報告。它將檔案和目錄的列表擴充套件為對映任務的輸入,每個任務都會複製源列表中指定的檔案分割槽。

引數,官網介紹的已經是很完整的

1.為什麼-update不能在預先存在的目標目錄下建立父源目錄?

-update和-overwrite 的行為在本文件的「用法」部分中進行了詳細說明。簡而言之,如果將任一選項與預先存在的目標目錄一起使用,則將複製每個源目錄的內容,而不是源目錄本身。此行為也與舊版distcp實現一致。

2.新的distcp在語義上與舊版distcp有何不同?

使用舊版distcp複製時,在複製過程中跳過的檔案過去也具有不變的檔案屬性(許可權,所有者/組資訊等)。現在,即使跳過了檔案副本,這些檔案也已更新。

在舊版distcp中,未在目標上建立源路徑輸入中的空根目錄。現在已建立。

3.為什麼新的distcp使用的maps比舊的distcp更多?

舊版distcp的工作原理是,在啟動複製作業之前,先確定需要實際複製哪些檔案到目標,然後啟動複製所需的任意數量的地圖。因此,如果需要跳過大多數檔案(例如,因為它們已經存在),則需要的對映將更少。結果,設定所花費的時間(即在m / r作業之前)要更長。新的distcp僅計算源路徑的內容。它不會嘗試篩選出可以跳過哪些檔案。在m / r作業執行之前,該決定將推遲。這要快得多(相對於執行時間),但是啟動的對映數將在-m選項中指定,如果未指定,則為20(預設)。指定更多地圖時,

4.為什麼distcp不能執行得更快? 當前,distcp的最小工作單元是乙個檔案。即,乙個檔案僅由乙個地圖處理。將對映數增加到超過檔案數的值將不會產生效能優勢。啟動的地圖數量將等於檔案數量。

5.為什麼distcp的記憶體不足? 如果從源路徑複製的單個檔案/目錄的數量非常大(例如1,000,000個路徑),則distcp可能會在確定複製路徑列表時用盡記憶體。這不是新的distcp實現所獨有的。要解決此問題,請考慮更改-xmx jvm堆大小引數,如下所示:

bash $ export hadoop_client_opts =「-xms64m -xmx1024m」

bash $ hadoop distcp / source / target

1.在hdfs版本之間複製為了在hadoop的兩個不同主要版本之間(例如1.x和2.x之間)進行複製,通常將使用webhdfsfilesystem。與以前的hftpfilesystem不同,由於webhdfs可用於讀取和寫入操作,因此distcp可以在源群集和目標群集上執行。遠端集群指定為webhdfs:// :。(當使用ssl保護webhdfs時,請使用「 swebhdfs:// 」方案)。

在hadoop集群的相同主要版本之間(例如,在2.x和2.x之間)進行複製時,請使用hdfs協議以獲得更好的效能。

2.distcp命令的安全設定

安全設定揭示了distcp命令是執行在源集群上還是執行在目標集群上。一般認為,如果乙個集群是安全的,另乙個集群是不安全的,則dist

cp應該從安全集群執行,否則可能存在與安全相關的問題。

將資料從安全集群複製到非安全集群時,distcp客戶端需要設定如下配置:

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

true

將資料從安全集群複製到安全集群時,core-site.xml檔案中需要設定如下配置:

hadoop.security.auth_to_local

maps kerberos principals to local user names

3.-skipcrccheck-skipcrccheck 是否跳過源路徑和目標路徑之間的crc檢查。

4.map sizing

新的distcp還提供了「動態」大小對映的策略,與較慢的節點相比,較快的資料節點可複製更多位元組。使用-strategy dynamic(在體系結構中說明),而不是將固定的原始檔集分配給每個對映任務,而是將檔案分成幾組。集的數量超過地圖的數量,通常是2-3倍。每個對映都會拾取並複製塊中列出的所有檔案。當乙個塊用完時,將獲取並處理乙個新的塊,直到不再剩餘任何塊為止。

通過不將源路徑分配給固定對映,與較慢的節點相比,較快的對映任務(即資料節點)能夠消耗更多的塊,從而複製更多的資料。儘管此分布不均勻,但對於每個對映器的容量而言,這是公平的。

動態策略由dynamicinputformat實現。在大多數情況下,它都能提供卓越的效能。

這個引數一定要設定上,有很大的優化

路之慢慢,唯堅易破,初出茅廬,何畏言懼

Hadoop之 通過distcp並行複製

distcp是乙個分布式複製程式,改程式可以從hadoop檔案系統間複製大量資料,也可以將大量的資料複製到hadoop中 distcp的典型應用是在兩個hdfs集群間傳輸資料 hadoop distcp hdfs binghe101 foo hdfs binghe102 bar預設情況下,distc...

Hadoop資料遷移 distcp 工具

hadoop distcp 備份hdfs檔案,並行複製大量資料。1.同版本集群之間複製 hadoop distcp hdfs namenode1 src hdfs namenode2 dist這將從第乙個集群中複製 src目錄下的內容複製到第二個集群中的 dist目錄下 預設情況下,distcp會跳...

Hadoop集群間資料拷貝distcp使用

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