Topik ini menjelaskan cara menggunakan Alibaba Cloud Jindo DistCp untuk memigrasikan data di beberapa bucket dalam OSS-HDFS.
Prasyarat
Kluster dari Alibaba Cloud EMR-5.6.0 atau versi lebih baru, atau kluster dari EMR-3.40.0 atau versi lebih baru telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kluster.
Lingkungan Hadoop 2.7.0 atau versi lebih baru, atau Hadoop 3.x telah disiapkan di kluster Elastic Compute Service (ECS) yang dikelola sendiri. Kluster tersebut harus dapat menjalankan pekerjaan MapReduce. Anda perlu menerapkan JindoData secara mandiri sebelum menyelesaikan migrasi di kluster ECS. JindoData mencakup JindoSDK dan JindoFSx. Kami merekomendasikan Anda mengunduh versi terbaru.
OSS-HDFS telah diaktifkan untuk sebuah bucket dan izin telah diberikan untuk mengakses OSS-HDFS. Untuk informasi lebih lanjut, lihat Aktifkan OSS-HDFS.
Informasi latar belakang
Anda dapat menggunakan Jindo DistCp untuk menyalin file di dalam atau antar kluster berskala besar. Jindo DistCp menggunakan MapReduce untuk mendistribusikan file, menangani kesalahan, dan memulihkan data. Daftar file dan direktori digunakan sebagai input tugas MapReduce. Setiap tugas menyalin file dan direktori tertentu dalam daftar input. Jindo DistCp mendukung penyalinan data penuh antara direktori dalam HDFS, antara HDFS dan Object Storage Service (OSS), antara HDFS dan OSS-HDFS, serta antar bucket dalam OSS-HDFS. Jindo DistCp juga menyediakan berbagai parameter salinan kustom dan kebijakan salinan.
Jindo DistCp memberikan manfaat berikut:
Efisiensi tinggi. Kecepatan migrasi data Jindo DistCp 1,59 kali lebih cepat daripada Hadoop DistCp.
Fitur dasar yang kaya. Jindo DistCp menyediakan berbagai metode salinan dan kebijakan optimasi berbasis skenario.
Integrasi mendalam dengan OSS. Jindo DistCp memanfaatkan fitur-fitur OSS sehingga Anda dapat melakukan berbagai operasi pada data, termasuk menekan data dan mengonversi kelas penyimpanan data menjadi Arsip.
Penyalinan file tanpa mengubah nama file. Hal ini memastikan konsistensi data.
Kompatibilitas tinggi. Jindo DistCp berlaku untuk berbagai skenario dan dapat digunakan untuk menggantikan Hadoop DistCp. Jindo DistCp mendukung Hadoop 2.7.x dan Hadoop 3.x.
Langkah 1: Unduh paket JAR Jindo DistCp
Langkah 2: Konfigurasikan pasangan AccessKey yang digunakan untuk mengakses OSS-HDFS
Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi pasangan AccessKey yang digunakan untuk mengakses OSS-HDFS:
Konfigurasikan pasangan AccessKey dengan menggunakan perintah contoh
hadoop jar jindo-distcp-tool-${version}.jar --src oss://srcbucket.cn-hangzhou.oss-dls.aliyuncs.com/ --dest oss://destbucket.cn-hangzhou.oss-dls.aliyuncs.com/ --hadoopConf fs.oss.accessKeyId=yourkey --hadoopConf fs.oss.accessKeySecret=yoursecret --parallelism 10Konfigurasikan pasangan AccessKey dengan menggunakan file konfigurasi
Konfigurasikan pasangan AccessKey yang digunakan untuk mengakses OSS-HDFS dengan menentukan fs.oss.accessKeyId dan fs.oss.accessKeySecret dalam file core-site.xml Hadoop. Contoh perintah:
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1********</value> </property> </configuration>
Langkah 3: Konfigurasikan titik akhir OSS-HDFS
Anda harus mengonfigurasi titik akhir OSS-HDFS ketika menggunakan OSS-HDFS untuk mengakses bucket dalam OSS. Kami merekomendasikan Anda menentukan jalur akses dalam format oss://<Bucket>.<Endpoint>/<Object>. Contoh: oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt. Setelah Anda mengonfigurasi jalur akses, JindoSDK memanggil operasi OSS-HDFS yang sesuai berdasarkan titik akhir yang ditentukan dalam jalur akses.
Anda juga dapat mengonfigurasi titik akhir OSS-HDFS dengan menggunakan metode lainnya. Titik akhir yang dikonfigurasi dengan menggunakan metode berbeda memiliki prioritas berbeda. Untuk informasi lebih lanjut, lihat Lampiran 1: Metode Lain yang Digunakan untuk Mengonfigurasi Titik Akhir OSS-HDFS.
Langkah 4: Migrasikan data penuh di beberapa bucket dalam OSS-HDFS
Dalam contoh ini, Jindo DistCp 4.4.0 digunakan. Ganti nomor versi dengan nomor versi aktual Anda.
Gunakan pasangan AccessKey yang sama untuk memigrasikan data dari Bucket A ke Bucket B di wilayah yang sama
Sintaksis Perintah
hadoop jar jindo-distcp-tool-${version}.jar --src oss://bucketname.region.oss-dls.aliyuncs.com/ --dest oss://bucketname.region.oss-dls.aliyuncs.com/ --hadoopConf fs.oss.accessKeyId=yourkey --hadoopConf fs.oss.accessKeySecret=yoursecret --parallelism 10Tabel berikut menjelaskan parameter dan opsi dalam perintah sebelumnya.
Parameter/Opsi
Deskripsi
Contoh
--src
Jalur lengkap bucket sumber dalam OSS-HDFS dari mana data dimigrasikan atau disalin.
oss://srcbucket.cn-hangzhou.oss-dls.aliyuncs.com/
--dest
Jalur lengkap bucket tujuan dalam OSS-HDFS ke mana data yang dimigrasikan atau disalin disimpan.
oss://destbucket.cn-hangzhou.oss-dls.aliyuncs.com/
--hadoopConf
Pasangan AccessKey yang digunakan untuk mengakses OSS-HDFS. Pasangan AccessKey terdiri dari ID AccessKey dan rahasia AccessKey.
ID AccessKey
LTAI********Rahasia AccessKey
KZo1********
--parallelism
Jumlah tugas migrasi data atau tugas salinan data yang dapat dijalankan secara paralel berdasarkan jumlah sumber daya dalam kluster Anda.
10
Contoh
Jalankan perintah berikut untuk memigrasikan data dari srcbucket di wilayah China (Hangzhou) ke destbucket dengan menggunakan pasangan AccessKey yang sama:
hadoop jar jindo-distcp-tool-4.4.0.jar --src oss://srcbucket.cn-hangzhou.oss-dls.aliyuncs.com/ --dest oss://destbucket.cn-hangzhou.oss-dls.aliyuncs.com/ --hadoopConf fs.oss.accessKeyId=LTAI******** --hadoopConf fs.oss.accessKeySecret=KZo1******** --parallelism 10
(Opsional) Migrasikan data tambahan di beberapa bucket dalam OSS-HDFS
Jika Anda ingin memigrasikan atau menyalin hanya data tambahan dari jalur sumber setelah migrasi atau salinan data penuh, Anda dapat menggunakan opsi --update.
Sebagai contoh, Anda dapat menjalankan perintah berikut untuk memigrasikan data tambahan dari srcbucket di wilayah China (Hangzhou) ke destbucket dengan menggunakan pasangan AccessKey yang sama:
hadoop jar jindo-distcp-tool-4.4.0.jar --src oss://srcbucket.cn-hangzhou.oss-dls.aliyuncs.com/ --dest oss://destbucket.cn-hangzhou.oss-dls.aliyuncs.com/ --hadoopConf fs.oss.accessKeyId=LTAI******** --hadoopConf fs.oss.accessKeySecret=KZo1******** --update --parallelism 10Referensi
Untuk informasi lebih lanjut tentang skenario lain dari Jindo DistCp, lihat Gunakan Jindo DistCp.