【Hadoop-Distcp】ツールの紹介とパラメータの説明
1。概要
Distcp (分散コピー) は、大規模なクラスタ内およびクラスタ間コピーのためのツールです。ファイルの配布、エラー処理と回復、レポートの生成に Map/Reduce を使用します。
Distcp はファイルとディレクトリのリストをマップ タスクへの入力として受け取り、各タスクはソース リスト内のファイルの一部をコピーします。
公式サイトアドレス:http://hadoop.apache.org/docs/r2.7.0/hadoop-distcp/DistCp.html
2)適したシーンとそのメリット
1. 適切なシーン:
データ遠隔災害、コンピュータ室オフライン、データ移行など
2. 利点:
① はい限制带宽
、bandwidth
パラメータを使用して distcp の各マップ タスクのフローを制限し、マップの同時数を制御してコピー タスク全体の帯域幅を制御し、コピー タスクが帯域幅をいっぱいにして他のサービスに影響を与えるのを防ぎます。
② サポートoverwrite
(上書き、対象ファイルが存在しても無条件に上書き)、update
(増分書き込み、dest ファイルの名前とサイズが src ファイルと異なる場合は上書き、宛先ファイルのサイズと名前が同じ場合は上書き)ソースファイル、スキップ)、delete
(削除書き込み、宛先に存在するがソースに存在しないファイルを削除)およびその他の複数のコピー方法のコピー元とコピー先のチェックでは、大量のデータのコピーをデータ中にチェックする必要がありますコピー プロセスを実行して、ソース データとターゲット データの一貫性を確保します。
3) パラメータの説明
このパラメータは Hadoop2.x のバージョンです
-append
: ターゲット ファイル内の既存のデータを再利用し、可能な場合は上書きするのではなく新しいデータを追加します。-async
: distcp の実行をブロックするかどうか-atomic
: すべての変更をコミットするか、何もコミットしません-bandwidth <arg>
: 各マップの帯域幅を MB/秒で指定します-delete
: ターゲット ファイルには存在するがソース ファイルには存在しないファイルを削除し、HDFS ガベージ コレクション ビンに移動します-diff <arg>
: スナップショット差分レポートを使用して、ソースとターゲットの違いを特定します-f <arg>
: コピーするファイルのリスト-filelimit <arg>
: (非推奨!) コピーされるファイル数を n 以下に制限します-filters <arg>
: コピーされたファイルのリストから除外します-i
: コピー中の失敗を無視します。-log <arg>
: distcp 実行ログフォルダを HDFS に保存-m <arg>
: 同期的に開始されるマップの数を制限します。デフォルトでは、各ファイルは 1 つのマップに対応し、各マシンは最大 20 個のマップを開始できます。-mapredSslConf <arg>
: ssl 設定ファイルを設定します-numListstatusThreads <arg>
: ファイルリストの構築に使用されるスレッドの数 (最大 40)。ファイルのディレクトリ構造が複雑な場合、値を適切に増やす必要があります。-overwrite
:対象ファイルが存在する場合でも、無条件で上書きする場合に選択します。-p <arg>
: ソース ファイルの状態を保持 (rbugpcaxt) (レプリケーション、ブロック サイズ、ユーザー、グループ、権限、チェックサム タイプ、ACL、XATTR、タイムスタンプ)-sizelimit <arg>
: (非推奨!) コピーされるファイルの数を n バイト以下に制限します-skipcrccheck
: 送信元パスと宛先パスの間の CRC チェックをスキップするかどうか。-strategy <arg>
: コピー戦略を選択します。デフォルト値はuniformsizeで、各マップによってコピーされるファイルの合計サイズのバランスが取れています。これを動的に設定して、より高速なマップがより多くのファイルをコピーしてパフォーマンスを向上させることができます。-tmp
: アトムに使用する中間作業パスの約束-update
: 宛先ファイルの名前とサイズがソース ファイルと異なる場合は上書きします。宛先ファイルのサイズと名前がソース ファイルと同じ場合はスキップします。