すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Hadoop DistCp

最終更新日:Feb 28, 2026

Hadoop DistCp (分散コピー) は、Hadoop 分散ファイルシステム (HDFS) クラスター間、または単一クラスター内でデータをレプリケートします。MapReduce を使用して、レプリケーション中にデータを分散、追跡、回復します。

オプションの完全なリストと詳細な使用方法については、Apache Hadoop ドキュメントの「DistCp Guide」をご参照ください。

Hadoop DistCp と Jindo DistCp の選択

E-MapReduce (EMR) は 2 つの DistCp ツールを提供しています。ご利用のデータソースと宛先に合わせて選択してください。

ツール説明使用場面
Hadoop DistCp分散データレプリケーション用の組み込みオープンソース Hadoop ツール。HDFS クラスター間でデータをレプリケートします。
Jindo DistCpJindoFS データ移行ツール。Object Storage Service (OSS)、OSS-HDFS、および Amazon S3 互換のデータソースをサポートします。HDFS データを OSS または OSS-HDFS に移行します。Amazon S3 データを OSS または OSS-HDFS に移行します。

クラスター間でのデータコピー

前提条件

ソース HDFS クラスターと宛先 HDFS クラスター間のネットワーク接続を確立します。セットアップ手順については、「E-MapReduce データ移行ソリューション」をご参照ください。

コピーコマンドの実行

/foo/bar ディレクトリを nn1 クラスターから /bar/foonn2 クラスターへ複製するには、次のコマンドを実行します:

hadoop distcp hdfs://nn1:8020/foo/bar hdfs://nn2:8020/bar/foo

その他のオプションと使用方法の詳細については、「DistCp Guide」をご参照ください。

トラブルシューティング

「ACLs not supported on at least one file system」エラー

DistCp は次のエラーを返します:

org.apache.hadoop.tools.CopyListing$AclsNotSupportedException: ACLs not supported for file system: hdfs://xx.xx.xx.xx:8020

この問題を解決するには:

  1. ソースクラスターに同期するアクセス制御リスト (ACL) があるかどうかを判断します。

    シナリオアクション
    ソースクラスターに同期する ACL がある場合同期権限を付与するために、distcp の後に -p パラメーターを追加します。
    宛先クラスターが ACL をサポートしていない場合宛先クラスターで ACL を有効にするには、その構成を変更し、NameNode を再起動します。
    ソースクラスターは ACL をサポートしていませんコマンドから -a パラメーターを削除します。ACL を同期する必要はありません。
  2. dfs.permissions.enableddfs.namenode.acls.enabled が両方のクラスターで一致することを確認します。値が異なる場合は、両方のクラスターで同じ値に設定するか、ACL 同期をスキップします。

DistCp 実行中の Out-of-memory (OOM) エラー

オープンソースの DistCp は、レプリケートするパスのリストをクライアントメモリに保存します。ファイル数が多い場合 (例: 100 万ファイル) やファイル名が長い場合、OOM エラーが発生します。

DistCp を実行する前にクライアントメモリを増やします:

export HADOOP_CLIENT_OPTS="-Xmx1024m"
hadoop distcp /source /target