ディレクトリのリストをあるHadoopファイルシステムから同じディレクトリ構造を持つ別のファイルシステムに同期する効率的な方法を探しています。
たとえば、HDFS1 がデータが作成される公式ソースであり、週に 1 回、新しく作成されたデータをすべてのdata-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 つのディレクトリがあります。
/repo/area-1/data-2
/repo/area-1/data-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
これにより、2 つの Hadoop ジョブが実行されます。ディレクトリの数が多い場合は、hdfs://namenode1:port/ の下に 500 の重複しないディレクトリがあるとします。これにより、500 の Hadoop ジョブが作成されますが、これは明らかに過剰です。
カスタム ディレクトリ リストを distcp に挿入する方法はありますか? ディレクトリのカスタムリストのすべてのパスをコピーする1つのジョブをdistcpに作成させる方法は?