全部产品
Search
文档中心

E-MapReduce:Hadoop DistCp

更新时间:Feb 28, 2026

Hadoop DistCp (distributed copy) mereplikasi data antara kluster Hadoop Distributed File System (HDFS) atau dalam satu kluster tunggal. Alat ini menggunakan MapReduce untuk mendistribusikan, melacak, dan memulihkan data selama replikasi.

Untuk daftar lengkap opsi dan penggunaan lanjutan, lihat DistCp Guide dalam dokumentasi Apache Hadoop.

Pilih antara Hadoop DistCp dan Jindo DistCp

E-MapReduce (EMR) menyediakan dua alat DistCp. Pilih yang sesuai dengan sumber dan tujuan data Anda.

ToolDescriptionWhen to use
Hadoop DistCpAlat open source bawaan Hadoop untuk replikasi data terdistribusi.Replikasi data antara kluster HDFS.
Jindo DistCpAlat migrasi data JindoFS yang mendukung sumber data Object Storage Service (OSS), OSS-HDFS, dan sistem yang kompatibel dengan Amazon S3.Migrasikan data HDFS ke OSS atau OSS-HDFS, serta data Amazon S3 ke OSS atau OSS-HDFS.

Copy data antar kluster

Prasyarat

Buat koneksi jaringan antara kluster HDFS sumber dan tujuan. Untuk petunjuk penyiapan, lihat Solusi migrasi data E-MapReduce.

Jalankan perintah copy

Untuk mereplikasi direktori /foo/bar pada kluster nn1 ke /bar/foo pada kluster nn2, jalankan:

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

Untuk opsi dan detail penggunaan lebih lanjut, lihat DistCp Guide.

Troubleshooting

Error "ACLs not supported on at least one file system"

DistCp mengembalikan error berikut:

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

Untuk mengatasi masalah ini:

  1. Tentukan apakah kluster sumber memiliki access control lists (ACLs) yang perlu disinkronkan.

    ScenarioAction
    Kluster sumber memiliki ACLs yang perlu disinkronkanTambahkan parameter -p setelah distcp untuk memberikan izin sinkronisasi.
    Kluster tujuan tidak mendukung ACLsAktifkan ACLs pada kluster tujuan dengan mengubah konfigurasinya, lalu restart NameNode.
    Kluster sumber tidak mendukung ACLsHapus parameter -a dari perintah. Tidak ada ACLs yang perlu disinkronkan.
  2. Verifikasi bahwa nilai dfs.permissions.enabled dan dfs.namenode.acls.enabled sama pada kedua kluster. Jika nilainya berbeda, atur agar keduanya memiliki nilai yang sama atau lewati sinkronisasi ACL.

Error out-of-memory (OOM) saat menjalankan DistCp

DistCp open source menyimpan daftar path yang akan direplikasi di memori client. Ketika jumlah file sangat besar (misalnya, satu juta file) atau nama file sangat panjang, terjadi error OOM.

Tingkatkan memori client sebelum menjalankan DistCp:

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