2016-07-19 37 views
0

我試圖從s3複製193 GB數據到HDFS。我運行下面的命令爲S3-DistCp使用和Hadoop DistCp使用:s3-dist-cp和hadoop distcp作業無限循環在EMR

s3-dist-cp --src s3a://PathToFile/file1 --dest hdfs:///user/hadoop/S3CopiedFiles/ 

hadoop distcp s3a://PathToFile/file1 hdfs:///user/hadoop/S3CopiedFiles/ 

我主節點上運行的這些和也保持在金額的支票被轉移。 花了大約一個小時,複製完成後,所有內容都被擦除,羣集中的4個核心實例中的磁盤空間顯示爲99.8%,並且hadoop作業將永久運行。 只要我運行命令,

16/07/18 18:43:55 INFO mapreduce.Job: map 0% reduce 0% 
16/07/18 18:44:02 INFO mapreduce.Job: map 100% reduce 0% 
16/07/18 18:44:08 INFO mapreduce.Job: map 100% reduce 14% 
16/07/18 18:44:11 INFO mapreduce.Job: map 100% reduce 29% 
16/07/18 18:44:13 INFO mapreduce.Job: map 100% reduce 86% 
16/07/18 18:44:18 INFO mapreduce.Job: map 100% reduce 100% 

此被印刷在數據立即然後拷貝了一個小時。它重新開始。

16/07/18 19:52:45 INFO mapreduce.Job: map 0% reduce 0% 
16/07/18 18:52:53 INFO mapreduce.Job: map 100% reduce 0% 

我在這裏丟失了什麼嗎?任何幫助表示讚賞。

另外我想知道我在哪裏可以找到主節點上的日誌文件,看看作業是否失敗,因此循環? 謝謝

回答

0

在我的情況下,我從hdfs複製一個大的壓縮文件到s3和 hadoop distcp比s3-dist-cp快得多。

當我檢查日誌時,多上傳部分需要很長時間來減少步驟。 對於s3-dist-cp,上傳一個塊(134MB)需要20秒,而hadoop distcp只需要4秒。

distcp和s3-dist-cp之間的區別是distcp在s3(在目標文件系統)創建臨時文件,而s3-dist-cp在hdfs創建臨時文件。

我仍在研究爲什麼多上傳性能與distcp和s3-dist-cp有很大不同,希望有一些具有良好洞察力的人能夠在這裏貢獻力量。

0

如果您可以爲您的調查選擇Hadoop 2.8.0,並使用s3a://文件系統,則可以獲取大量現在收集的文件系統統計信息。

真正的性能殺手是rename(),它在s3客戶機中通過拷貝然後刪除來模擬:如果distcp運行嘗試使用重命名執行原子distcp,則會延遲大約1每6-10MB數據第二個。上傳延遲時間爲16秒的134MB將與「重命名」