2017-05-03 3 views
1

x個のファイルをdistcpする必要があります。distcpを2つのHdfsディレクトリ(別々のクラスタ)の間でdistcp(カンマ区切り)することは可能ですか?

これを行う方法が見つかりませんでした。

  1. ひとつのアイデアは、一時ディレクトリにそれをコピーし、そのディレクトリdistcpすることです。完了したら私はその一時ディレクトリを削除することができます。

  2. 個々のdistcpコマンド(各ファイル)。これは痛いかもしれません。

カンマ区切りが許可されているかどうかわかりません。

アイデア?

ありがとうございます。

+0

パターンがある場合は、ワイルドカードを使用できます。ディレクトリ構造のサンプルを表示してください。 – franklinsijo

+0

アプリケーションディレクトリです。アプリケーション履歴ファイルの作成を想像してみてください。/var/log/spark/appHistory/ /。私は一度に一握りの人が必要です。だから、ワイルドカードはとても役立たない。 –

答えて

3

あなたはDistCpコマンド

hadoop distcp hdfs://src_nn/var/log/spark/appHistory/<appId_1>/ \ 
       hdfs://src_nn/var/log/spark/appHistory/<appId_2>/ \ 
       .... 
       hdfs://src_nn/var/log/spark/appHistory/<appId_n>/ \ 
       hdfs://dest_nn/target/ 

あるいは、ソースのリストを含むファイルを作成し、-fオプション

でソースとしてコマンドに渡しにソースとして、すべてのファイルを渡すことができますいずれか
hadoop distcp -f hdfs://src_nn/list_of_files hdfs://dest_nn/target/ 
+1

返信を忘れました。しかし、これは私に多くの問題を救った。システムでこのトリックを5ヶ月間使用していました。作品。ありがとう@franklinsijo –

関連する問題