2017-12-18 158 views
1

作爲一些背景,我們有2個目前用作生產和開發的簇。作爲其中的一部分,我們正在將生產集羣中的文件(使用hadoop distcp -update)從生產過程生成(即,它也可以作爲災難恢復集羣)複製到開發集羣。具有不同複製因子的簇之間的hadoop distcp

的Hadoop版本是在兩個羣集相同的:Hadoop的2.6.0-cdh5.12.1

然而,發展集羣不僅具有實時集羣的存儲容量的約65%。爲了解決這個問題,我們有一個默認的複製因子3,用於活動,2用於開發。

我注意到從活動複製到開發的文件的複製因子爲3.我已經做了一些閱讀,並認爲這是它應該如何行爲,即使它不是我如何喜歡它的行爲。

我有過這樣的背面有兩個問題:

  • 從一些研究已經表明,-setrep可以用來交副本,但-D dfs.replication = X可作爲的一部分複製命令。有沒有人有任何這些選項的經驗?
  • 有沒有人需要處理這種情況,並找到了不同的解決方案?

感謝您的幫助。

回答

1

我已經做了一些測試,並做了以下內容:

  • 通過先前複製,因此具有3複製因子和使用的文件從hadoop distcp -update $SOURCE $TARGET改變了DistCp使用命令hadoop distctp -D dfs.replication=2 -update $SOURCE $TARGET
  • 運行hdfs dfs -setrep -w 2 $TARGET修改複製因子。

磁盤空間已經開始下降,所以我認爲這是成功的。也許有一天我可以聲稱我知道我在做什麼。