0
我正在尋找一種有效的方法來將一個Hadoop filesytem中的目錄列表同步到另一個具有相同目錄結構的目錄中。如何使Hadoop Distcp複製文件夾的自定義列表?
例如可以說HDFS1就是數據被創建的官方消息和每週一次,我們需要新創建的數據下的所有數據-2目錄複製到HDFS2:
**HDFS1**
hdfs://namenode1:port/repo/area-1/data-1
hdfs://namenode1:port/repo/area-1/data-2
hdfs://namenode1:port/repo/area-1/data-3
hdfs://namenode1:port/repo/area-2/data-1
hdfs://namenode1:port/repo/area-2/data-2
hdfs://namenode1:port/repo/area-3/data-1
**HDFS2** (subset of HDFS1 - only data-2)
hdfs://namenode2:port/repo/area-1/dir2
hdfs://namenode2:port/repo/area-2/dir2
在這種情況下,我們有2個目錄同步:
hadoop distcp hdfs://namenode1:port/repo/area-1/data-2 hdfs://namenode2:port/repo/area-1
hadoop distcp hdfs://namenode1:port/repo/area-2/data-2 hdfs://namenode2:port/repo/area-2
:
/repo/area-1/data-2
/repo/area-1/data-2
這可以這樣做
這將運行2個Hadoop作業,如果目錄數很大,假設在hdfs:// namenode1:port /下有500個不同的非重疊目錄,這將創建500個明顯過度殺毒的Hadoop作業。
有沒有辦法將自定義目錄列表注入distcp? 如何使distcp創建一個作業複製自定義目錄列表中的所有路徑?
感謝貢獻,但是如何避免調用許多hadoop作業? – Bohdan