全部产品
Search
文档中心

E-MapReduce:Menggunakan Jindo DistCp

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menggunakan alat salin data Jindo DistCp.

Prasyarat

  • Java Development Kit (JDK) 8 telah terinstal di komputer Anda.
  • Sebuah kluster E-MapReduce (EMR) telah dibuat. Untuk informasi lebih lanjut, lihat Buat kluster.

Menggunakan Jindo DistCp

  1. Sambungkan ke node master dari kluster EMR dalam mode SSH.

    Untuk informasi lebih lanjut, lihat Masuk ke kluster.

  2. Jalankan perintah berikut untuk mendapatkan informasi bantuan:
    jindo distcp --help
    Informasi berikut akan dikembalikan:
         --help           - Cetak teks bantuan
         --src=VALUE          - Direktori untuk menyalin file dari
         --dest=VALUE              - Direktori untuk menyalin file ke
         --parallelism=VALUE         - Paralelisme tugas salin
         --outputManifest=VALUE       - Nama file manifest
         --previousManifest=VALUE   -   Jalur ke file manifest yang ada
         --requirePreviousManifest=VALUE   -   Memerlukan bahwa manifest sebelumnya ada jika ditentukan
         --copyFromManifest   -   Salin dari manifest daripada mendaftarkan direktori
         --srcPrefixesFile=VALUE   -   File yang berisi daftar awalan URI sumber
         --srcPattern=VALUE   -   Hanya menyertakan file sumber yang cocok dengan pola ini
         --deleteOnSuccess   -   Hapus file input setelah penyalinan berhasil
         --outputCodec=VALUE   -   Kodek kompresi untuk file keluaran
         --groupBy=VALUE   -   Pola untuk mengelompokkan file masukan
         --targetSize=VALUE   -   Ukuran target untuk file keluaran
         --enableBalancePlan   -   Aktifkan rencana tugas salin untuk membuat keseimbangan
         --enableDynamicPlan   -   Aktifkan rencana tugas salin secara dinamis
         --enableTransaction   -   Aktifkan transaksi pada Job secara eksplisit
         --diff   -   tampilkan perbedaan antara daftar file src dan dest
         --ossKey=VALUE   -   Tentukan kunci oss Anda jika diperlukan
         --ossSecret=VALUE   -   Tentukan rahasia oss Anda jika diperlukan
         --ossEndPoint=VALUE   -   Tentukan titik akhir oss Anda jika diperlukan
         --policy=VALUE   -   Tentukan kebijakan penyimpanan oss Anda
         --cleanUpPending   -   bersihkan unggahan tidak lengkap saat pekerjaan distcp selesai
         --queue=VALUE   -   Tentukan nama antrian yarn jika diperlukan
         --bandwidth=VALUE   -   Tentukan bandwidth per map/reduce dalam MB jika diperlukan
         --s3Key=VALUE   -   Tentukan kunci s3 Anda
         --s3Secret=VALUE   -   Tentukan Sercet s3 Anda
         --s3EndPoint=VALUE   -   Tentukan Titik Akhir s3 Anda
         --enableCMS  -   Aktifkan CMS
         --update   -   Perbarui target, hanya menyalin file atau direktori yang hilang
         --filters=VALUE   -   Tentukan jalur file yang berisi pola untuk mengecualikan file sumber

--src dan --dest

--src menentukan direktori sumber. --dest menentukan direktori tujuan.

Secara default, Jindo DistCp menyalin semua file dalam direktori yang ditentukan oleh --src ke direktori yang ditentukan oleh --dest. Jika Anda tidak menentukan direktori root, Jindo DistCp secara otomatis membuat direktori root.

Sebagai contoh, Anda dapat menjalankan perintah berikut untuk menyalin file dalam direktori /opt/tmp HDFS ke Bucket OSS:

jindo distcp --src /opt/tmp --dest oss://<yourBucketName>/tmp
Catatan

yourBucketName adalah nama Bucket OSS Anda.

--parallelism

--parallelism menentukan parameter mapreduce.job.reduces untuk pekerjaan MapReduce yang dijalankan untuk menyalin file. Nilai defaultnya adalah 7. Anda dapat menyesuaikan --parallelism berdasarkan sumber daya kluster yang tersedia. Ini memungkinkan Anda menentukan berapa banyak tugas reduce yang dapat dijalankan secara paralel.

Sebagai contoh, Anda dapat menjalankan perintah berikut untuk menyalin file dalam direktori /opt/tmp HDFS ke Bucket OSS:

jindo distcp --src /opt/tmp --dest oss://<yourBucketName>/tmp --parallelism 20

--srcPattern

--srcPattern menentukan ekspresi reguler yang menyaring file untuk operasi salin. Ekspresi reguler harus cocok dengan jalur penuh.

Sebagai contoh, jika Anda perlu menyalin semua file log dalam direktori /data/incoming/hourly_table/2017-02-01/03, atur --srcPattern menjadi .*\.log.

Jalankan perintah berikut untuk melihat file dalam direktori /data/incoming/hourly_table/2017-02-01/03:

hdfs dfs -ls /data/incoming/hourly_table/2017-02-01/03

Informasi berikut dikembalikan:

Ditemukan 6 item
-rw-r-----   2 root hadoop       2252 2020-04-17 20:42 /data/incoming/hourly_table/2017-02-01/03/000151.sst
-rw-r-----   2 root hadoop       4891 2020-04-17 20:47 /data/incoming/hourly_table/2017-02-01/03/1.log
-rw-r-----   2 root hadoop       4891 2020-04-17 20:47 /data/incoming/hourly_table/2017-02-01/03/2.log
-rw-r-----   2 root hadoop       4891 2020-04-17 20:42 /data/incoming/hourly_table/2017-02-01/03/OPTIONS-000109
-rw-r-----   2 root hadoop       1016 2020-04-17 20:47 /data/incoming/hourly_table/2017-02-01/03/emp01.txt
-rw-r-----   2 root hadoop       1016 2020-04-17 20:47 /data/incoming/hourly_table/2017-02-01/03/emp06.txt

Jalankan perintah berikut untuk menyalin file log:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --srcPattern .*\.log --parallelism 20

Jalankan perintah berikut untuk melihat file dalam Bucket OSS tujuan:

hdfs dfs -ls oss://<yourBucketName>/hourly_table/2017-02-01/03

Informasi berikut dikembalikan. Hanya file log dalam direktori sumber yang disalin.

Ditemukan 2 item
-rw-rw-rw-   1       4891 2020-04-17 20:52 oss://<yourBucketName>/hourly_table/2017-02-01/03/1.log
-rw-rw-rw-   1       4891 2020-04-17 20:52 oss://<yourBucketName>/hourly_table/2017-02-01/03/2.log

--deleteOnSuccess

--deleteOnSuccess mengaktifkan Jindo DistCp untuk menghapus file yang disalin dari direktori sumber setelah operasi salin berhasil.

Sebagai contoh, Anda dapat menjalankan perintah berikut untuk menyalin file dalam /data/incoming/hourly_table ke Bucket OSS dan menghapus file yang disalin dari direktori sumber:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --deleteOnSuccess --parallelism 20

--outputCodec

--outputCodec menentukan kodek kompresi yang digunakan untuk mengompres file yang disalin secara online. Contoh:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --outputCodec=gz --parallelism 20

Jalankan perintah berikut untuk melihat file dalam direktori tujuan:

hdfs dfs -ls oss://<yourBucketName>/hourly_table/2017-02-01/03

Informasi berikut dikembalikan. File dalam direktori tujuan dikompres dalam format GZ.

Ditemukan 6 item
-rw-rw-rw-   1        938 2020-04-17 20:58 oss://<yourBucketName>/hourly_table/2017-02-01/03/000151.sst.gz
-rw-rw-rw-   1       1956 2020-04-17 20:58 oss://<yourBucketName>/hourly_table/2017-02-01/03/1.log.gz
-rw-rw-rw-   1       1956 2020-04-17 20:58 oss://<yourBucketName>/hourly_table/2017-02-01/03/2.log.gz
-rw-rw-rw-   1       1956 2020-04-17 20:58 oss://<yourBucketName>/hourly_table/2017-02-01/03/OPTIONS-000109.gz
-rw-rw-rw-   1        506 2020-04-17 20:58 oss://<yourBucketName>/hourly_table/2017-02-01/03/emp01.txt.gz
-rw-rw-rw-   1        506 2020-04-17 20:58 oss://<yourBucketName>/hourly_table/2017-02-01/03/emp06.txt.gz

Anda dapat mengatur parameter ini ke gzip, gz, lzo, lzop, snappy, none, atau keep. Nilai default: keep. Deskripsi untuk none dan keep:

  • none: Jindo DistCp tidak mengompres file yang disalin. Jika file telah dikompres, Jindo DistCp mendekompresinya.

  • keep: Jindo DistCp menyalin file tanpa mengubah kompresi.

Catatan

Jika Anda ingin menggunakan kodek LZO dalam kluster Hadoop open source, Anda harus menginstal pustaka asli gplcompression dan paket hadoop-lzo.

--outputManifest dan --requirePreviousManifest

--outputManifest menghasilkan file manifest yang berisi informasi tentang semua file yang disalin oleh Jindo DistCp. Informasi tersebut mencakup file tujuan, file sumber, dan ukuran file.

Jika Anda ingin menghasilkan file manifest, atur --requirePreviousManifest ke false. Secara default, file dikompres dalam format GZ. Ini adalah satu-satunya format yang didukung.

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --outputManifest=manifest-2020-04-17.gz --requirePreviousManifest=false --parallelism 20

Jalankan perintah berikut untuk melihat isi file:

hadoop fs -text oss://<yourBucketName>/hourly_table/manifest-2020-04-17.gz > before.lst
cat before.lst 

Informasi berikut dikembalikan:

{"path":"oss://<yourBucketName>/hourly_table/2017-02-01/03/000151.sst","baseName":"2017-02-01/03/000151.sst","srcDir":"oss://<yourBucketName>/hourly_table","size":2252}
{"path":"oss://<yourBucketName>/hourly_table/2017-02-01/03/1.log","baseName":"2017-02-01/03/1.log","srcDir":"oss://<yourBucketName>/hourly_table","size":4891}
{"path":"oss://<yourBucketName>/hourly_table/2017-02-01/03/2.log","baseName":"2017-02-01/03/2.log","srcDir":"oss://<yourBucketName>/hourly_table","size":4891}
{"path":"oss://<yourBucketName>/hourly_table/2017-02-01/03/OPTIONS-000109","baseName":"2017-02-01/03/OPTIONS-000109","srcDir":"oss://<yourBucketName>/hourly_table","size":4891}
{"path":"oss://<yourBucketName>/hourly_table/2017-02-01/03/emp01.txt","baseName":"2017-02-01/03/emp01.txt","srcDir":"oss://<yourBucketName>/hourly_table","size":1016}
{"path":"oss://<yourBucketName>/hourly_table/2017-02-01/03/emp06.txt","baseName":"2017-02-01/03/emp06.txt","srcDir":"oss://<yourBucketName>/hourly_table","size":1016}

--outputManifest dan --previousManifest

--outputManifest menghasilkan file manifest yang berisi daftar file yang sebelumnya dan baru saja disalin. --previousManifest menghasilkan file manifest yang berisi daftar file yang sebelumnya disalin. Dengan cara ini, Anda dapat merekonstruksi riwayat lengkap operasi dan melihat file apa yang disalin oleh pekerjaan saat ini.

Sebagai contoh, dua file ditambahkan ke direktori sumber. Jalankan perintah berikut untuk menyalin file yang baru ditambahkan:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --outputManifest=manifest-2020-04-18.gz --previousManifest=oss://<yourBucketName>/hourly_table/manifest-2020-04-17.gz --parallelism 20

Jalankan perintah berikut untuk melihat file yang disalin:

hadoop fs -text oss://<yourBucketName>/hourly_table/manifest-2020-04-18.gz > current.lst
diff before.lst current.lst 

Informasi berikut dikembalikan:

3a4,5
> {"path":"oss://<yourBucketName>/hourly_table/2017-02-01/03/5.log","baseName":"2017-02-01/03/5.log","srcDir":"oss://<yourBucketName>/hourly_table","size":4891}
> {"path":"oss://<yourBucketName>/hourly_table/2017-02-01/03/6.log","baseName":"2017-02-01/03/6.log","srcDir":"oss://<yourBucketName>/hourly_table","size":4891}

--copyFromManifest

Anda dapat menggunakan --copyFromManifest untuk menentukan file manifest yang sebelumnya dihasilkan oleh --outputManifest dan menyalin file yang terdaftar dalam file manifest ke direktori tujuan. Contoh:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --previousManifest=oss://<yourBucketName>/hourly_table/manifest-2020-04-17.gz --copyFromManifest --parallelism 20

--srcPrefixesFile

--srcPrefixesFile memungkinkan Jindo DistCp menyalin file dalam beberapa folder sekaligus.

Jalankan perintah berikut untuk melihat sub-folder di bawah hourly_table:

hdfs dfs -ls oss://<yourBucketName>/hourly_table

Informasi berikut dikembalikan:

Ditemukan 4 item
drwxrwxrwx   -          0 1970-01-01 08:00 oss://<yourBucketName>/hourly_table/2017-02-01
drwxrwxrwx   -          0 1970-01-01 08:00 oss://<yourBucketName>/hourly_table/2017-02-02

Jalankan perintah berikut untuk menyalin semua file di bawah hourly_table ke folder tujuan. Sebuah file bernama folders.txt dihasilkan. File tersebut berisi awalan yang sesuai dengan masing-masing sub-folder di bawah hourly_table.

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --srcPrefixesFile file:///opt/folders.txt --parallelism 20

Jalankan perintah berikut untuk melihat isi file folders.txt:

cat folders.txt 

Informasi berikut dikembalikan:

hdfs://emr-header-1.cluster-50466:9000/data/incoming/hourly_table/2017-02-01
hdfs://emr-header-1.cluster-50466:9000/data/incoming/hourly_table/2017-02-02

--groupBy dan -targetSize

Membaca sejumlah besar file kecil dari HDFS mempengaruhi kinerja pemrosesan data. Oleh karena itu, kami sarankan Anda menggunakan Jindo DistCp untuk menggabungkan file kecil menjadi file besar dengan ukuran tertentu. Ini mengoptimalkan kinerja analisis dan mengurangi biaya.

Jalankan perintah berikut untuk melihat file dalam folder yang ditentukan:

hdfs dfs -ls /data/incoming/hourly_table/2017-02-01/03

Informasi berikut dikembalikan:

Ditemukan 8 item
-rw-r-----   2 root hadoop       2252 2020-04-17 20:42 /data/incoming/hourly_table/2017-02-01/03/000151.sst
-rw-r-----   2 root hadoop       4891 2020-04-17 20:47 /data/incoming/hourly_table/2017-02-01/03/1.log
-rw-r-----   2 root hadoop       4891 2020-04-17 20:47 /data/incoming/hourly_table/2017-02-01/03/2.log
-rw-r-----   2 root hadoop       4891 2020-04-17 21:08 /data/incoming/hourly_table/2017-02-01/03/5.log
-rw-r-----   2 root hadoop       4891 2020-04-17 21:08 /data/incoming/hourly_table/2017-02-01/03/6.log
-rw-r-----   2 root hadoop       4891 2020-04-17 20:42 /data/incoming/hourly_table/2017-02-01/03/OPTIONS-000109
-rw-r-----   2 root hadoop       1016 2020-04-17 20:47 /data/incoming/hourly_table/2017-02-01/03/emp01.txt
-rw-r-----   2 root hadoop       1016 2020-04-17 20:47 /data/incoming/hourly_table/2017-02-01/03/emp06.txt

Jalankan perintah berikut untuk menggabungkan file TXT dalam folder menjadi file masing-masing dengan ukuran tidak lebih dari 10 MB:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --targetSize=10 --groupBy='.*/([a-z]+).*.txt' --parallelism 20

Jalankan perintah berikut untuk melihat file dalam direktori tujuan. Dua file TXT digabungkan menjadi satu.

hdfs dfs -ls oss://<yourBucketName>/hourly_table/2017-02-01/03/
Ditemukan 1 item
-rw-rw-rw-   1       2032 2020-04-17 21:18 oss://<yourBucketName>/hourly_table/2017-02-01/03/emp2

--enableBalancePlan

Jika baik file kecil maupun besar akan disalin tetapi ukuran file tidak berbeda signifikan di antara file kecil dan di antara file besar, Anda dapat menggunakan --enableBalancePlan untuk mengoptimalkan rencana alokasi pekerjaan. Ini meningkatkan kinerja salin Jindo DistCp. Jika Anda tidak menentukan rencana aplikasi, file dialokasikan secara acak.

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --enableBalancePlan --parallelism 20
Catatan

Anda tidak dapat menggunakan opsi ini dalam perintah yang sama dengan --groupBy atau --targetSize.

--enableDynamicPlan

Jika file yang akan disalin sangat berbeda dalam ukuran dan sebagian besar file adalah file kecil, Anda dapat menggunakan --enableDynamicPlan untuk mengoptimalkan rencana alokasi pekerjaan. Ini meningkatkan kinerja salin Jindo DistCp.

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --enableDynamicPlan --parallelism 20
Catatan

Anda tidak dapat menggunakan opsi ini dalam perintah yang sama dengan --groupBy atau --targetSize.

--enableTransaction

--enableTransaction memastikan integritas tingkat pekerjaan dan dukungan transaksi di antara pekerjaan. Contoh:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --enableTransaction --parallelism 20

--diff

Setelah file disalin, Anda dapat menggunakan --diff untuk memeriksa perbedaan antara file dalam direktori sumber dan tujuan.

Contoh:
jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --diff
Jika semua file disalin, informasi berikut dikembalikan:
INFO distcp.JindoDistCp: Jindo DistCp job exit with 0
Jika beberapa file tidak disalin, sebuah file manifest yang berisi daftar file-file tersebut dihasilkan di direktori tujuan. Kemudian, Anda dapat menggunakan --copyFromManifest dan --previousManifest untuk menyalin file dalam daftar ke direktori tujuan. Dengan cara ini, volume data dan jumlah file diverifikasi. Jika Jindo DistCp telah melakukan operasi kompresi atau dekompresi selama proses salin, --diff tidak mengembalikan perbedaan ukuran file yang akurat.
jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --dest oss://<yourBucketName>/hourly_table --previousManifest=file:///opt/manifest-2020-04-17.gz --copyFromManifest --parallelism 20
Catatan Jika direktori tujuan Anda adalah direktori HDFS, Anda harus menentukan --dest dalam format /path, hdfs://hostname:ip/path, atau hdfs://headerIp:ip/path. Format lainnya, seperti hdfs:///path dan hdfs:/path, tidak didukung.
Anda juga dapat menggunakan --update untuk memperbarui file yang memiliki perbedaan secara inkremental.
hadoop jar jindo-distcp-3.5.0.jar --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --update --parallelism 20

--queue

--queue menentukan nama antrian YARN tempat tugas DistCp saat ini berada.

Contoh:
jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --queue yarnqueue

--bandwidth

--bandwidth menentukan bandwidth yang dialokasikan untuk satu node dari tugas DistCp saat ini. Ini mencegah tugas mengambil bandwidth berlebihan. Unit: MB/s.

--update

--update mengaktifkan Jindo DistCp untuk memperbarui file secara inkremental dengan satu klik. Jindo DistCp melewati file dan direktori yang sama dengan yang ada di tujuan dan langsung menyinkronkan file dan direktori baru serta diperbarui dari sumber ke tujuan.

Contoh:
hadoop jar jindo-distcp-3.5.0.jar --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --update --parallelism 20

--filters

--filters menentukan jalur file. Dalam file ini, satu ekspresi reguler ditentukan dalam setiap baris. Ekspresi reguler digunakan untuk menyaring file yang tidak ingin Anda salin atau bandingkan perbedaannya dalam tugas DistCp saat ini.

Contoh:
hadoop jar jindo-distcp-3.5.0.jar --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table -filters /path/to/filterfile.txt --parallelism 20
Isi contoh file:
.*\.tmp.
.*\.staging.*

Jika file contoh di atas digunakan, tugas DistCp akan menyaring file yang namanya mengandung .tmp atau .staging dalam direktori hdfs://data/incoming/hourly_tabl dan melewati file-file tersebut selama operasi salin dan --diff.

Menggunakan pasangan AccessKey untuk mengakses OSS

Jika Anda ingin mengakses OSS dari instance di luar EMR atau akses tanpa AccessKey tidak didukung, Anda dapat menggunakan pasangan AccessKey untuk mengakses OSS. Tetapkan parameter --key, --secret, dan --endPoint dalam perintah untuk menentukan pasangan AccessKey.

Contoh:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --key <yourAccessKeyId> --secret <yourAccessKeySecret> --endPoint oss-cn-hangzhou.aliyuncs.com --parallelism 20

yourAccessKeyId adalah ID AccessKey akun Alibaba Cloud Anda. yourAccessKeySecret adalah Rahasia AccessKey akun Alibaba Cloud Anda.

Menulis data ke Penyimpanan Arsip Dingin OSS, Arsip, atau IA

Saat Anda menggunakan tugas DistCp untuk menulis data ke Object Storage Service (OSS), Anda dapat menggunakan --policy untuk menentukan kelas penyimpanan.
  • Contoh kelas Penyimpanan Arsip Dingin (--policy coldArchive)
    hadoop jar jindo-distcp-3.5.0.jar --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --policy coldArchive --parallelism 20
    Catatan Kelas Penyimpanan Arsip Dingin hanya tersedia di beberapa wilayah. Untuk informasi lebih lanjut tentang wilayah yang didukung, lihat Kelas Penyimpanan.
  • Contoh kelas Arsip (--policy archive)
    jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --policy archive --parallelism 20
  • Contoh kelas Akses Jarang (IA) (--policy ia)
    jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --policy ia --parallelism 20

Menggunakan CloudMonitor

Anda dapat menggunakan CloudMonitor untuk mengumpulkan metrik sumber daya Alibaba Cloud dan metrik kustom Anda, mendeteksi ketersediaan layanan, dan mengonfigurasi peringatan untuk metrik. Ini membantu Anda mendapatkan penggunaan sumber daya Alibaba Cloud dan status aplikasi serta menangani pengecualian secepat mungkin untuk memastikan aplikasi Anda berjalan normal.

Anda dapat menentukan apakah CloudMonitor melaporkan kegagalan jika tugas DistCp saat ini gagal. Anda dapat melakukan langkah-langkah berikut untuk mengonfigurasi fitur peringatan di konsol CloudMonitor:

  1. Buat kontak peringatan atau grup kontak peringatan. Untuk informasi lebih lanjut, lihat Buat kontak peringatan atau grup kontak peringatan.
  2. Dapatkan token peringatan.
    1. Di panel navigasi kiri, pilih Alerts > Alert Contacts.
    2. Di halaman Alert Contacts, klik tab Alert Contact Group.
    3. Temukan grup kontak peringatan Anda dan klik Access External alert.

      Catat token peringatan yang ditampilkan di panel yang muncul.

  3. Di panel, klik Test Command untuk mengonfigurasi variabel lingkungan yang dijelaskan dalam tabel berikut.
    ParameterDeskripsi
    cmsAccessKeyIdID AccessKey akun Alibaba Cloud Anda.
    cmsAccessSecretRahasia AccessKey akun Alibaba Cloud Anda.
    cmsRegionID wilayah tempat kluster berada, seperti cn-hangzhou.
    cmsTokenToken peringatan yang diperoleh di Langkah 2.
    cmsLevelTingkat peringatan. Tingkat berikut didukung:
    • INFO: email dan bot obrolan DingTalk
    • WARN: pesan teks, email, dan bot obrolan DingTalk
    • CRITICAL: panggilan telepon, pesan teks, email, dan bot obrolan DingTalk
    Contoh:
    export cmsAccessKeyId=<your_key_id>
    export cmsAccessSecret=<your_key_secret>
    export cmsRegion=cn-hangzhou
    export cmsToken=<your_cms_token>
    export cmsLevel=WARN
    
    hadoop jar jindo-distcp-3.5.0.jar \
    --src /data/incoming/hourly_table \
    --dest oss://yang-hhht/hourly_table \
    --enableCMS

Bersihkan file residu

Saat Anda menjalankan tugas DistCp, file yang tidak terunggah dengan benar mungkin dihasilkan di direktori tujuan Anda. File-file tersebut dikelola oleh OSS berdasarkan uploadId dan mungkin tidak terlihat oleh pengguna. Dalam kasus ini, Anda dapat menentukan parameter --cleanUpPending dalam perintah. Dengan cara ini, sistem secara otomatis membersihkan file residu setelah tugas selesai. Sebagai alternatif, Anda juga dapat membersihkan file di konsol OSS.

Contoh:

jindo distcp --src /data/incoming/hourly_table --dest oss://<yourBucketName>/hourly_table --cleanUpPending --parallelism 20

Menggunakan Amazon S3 sebagai sumber data

Anda dapat menggunakan parameter --s3Key, --s3Secret, dan --s3EndPoint dalam perintah untuk menentukan informasi terkait Amazon S3.

Contoh:
jindo distcp jindo-distcp-2.7.3.jar --src s3a://yourbucket/ --dest oss://<your_bucket>/hourly_table --s3Key yourkey --s3Secret yoursecret --s3EndPoint s3-us-west-1.amazonaws.com 
Anda dapat mengonfigurasi parameter s3Key, s3Secret, dan s3EndPoint dalam file core-site.xml Hadoop. Dengan cara ini, Anda tidak perlu menentukan pasangan AccessKey setiap kali Anda menjalankan perintah.
<configuration>
    <property>
        <name>fs.s3a.access.key</name>
        <value>xxx</value>
    </property>

    <property>
        <name>fs.s3a.secret.key</name>
        <value>xxx</value>
    </property>

    <property>
        <name>fs.s3.endpoint</name>
        <value>s3-us-west-1.amazonaws.com</value>
    </property>
</configuration>
Contoh:
jindo distcp /tmp/jindo-distcp-2.7.3.jar --src s3://smartdata1/ --dest s3://smartdata1/tmp --s3EndPoint  s3-us-west-1.amazonaws.com

Periksa Penghitung DistCp

Jalankan perintah berikut untuk memeriksa Penghitung DistCp dalam informasi penghitung MapReduce:
JindoDistcpCounter
  BYTES_EXPECTED=10000
  BYTES_SKIPPED=10000
  FILES_EXPECTED=11
  FILES_SKIPPED=11
Shuffle Errors
  BAD_ID=0
  CONNECTION=0
  IO_ERROR=0
  WRONG_LENGTH=0
  WRONG_MAP=0
  WRONG_REDUCE=0    
Penghitung TugasDeskripsi
COPY_FAILEDJumlah file yang gagal disalin. Peringatan dilaporkan ketika penghitung ini tidak 0.
CHECKSUM_DIFFJumlah file yang gagal melewati verifikasi checksum. Angka tersebut ditambahkan ke nilai COPY_FAILED.
FILES_EXPECTEDJumlah file yang perlu disalin.
FILES_COPIEDJumlah file yang disalin.
FILES_SKIPPEDJumlah file yang dilewati selama pembaruan inkremental.
BYTES_SKIPPEDJumlah byte yang dilewati selama pembaruan inkremental.
DIFF_FILESJumlah file yang memiliki perbedaan. File tersebut diperoleh dengan menggunakan --diff. Peringatan dilaporkan ketika penghitung ini tidak 0.
SAME_FILESJumlah file yang tidak memiliki perbedaan. File tersebut diperoleh dengan menggunakan --diff.
DST_MISSJumlah file yang tidak ada di direktori tujuan. Angka tersebut ditambahkan ke nilai DIFF_FILES.
LENGTH_DIFFJumlah file yang memiliki ukuran berbeda di direktori sumber dan tujuan. Angka tersebut ditambahkan ke nilai DIFF_FILES.
CHECKSUM_DIFFJumlah file yang gagal melewati verifikasi checksum. Angka tersebut ditambahkan ke nilai DIFF_FILES.
DIFF_FAILEDJumlah file yang melaporkan kesalahan terkait --diff. Anda dapat melihat detail kesalahan dalam file log.