Topik ini menjelaskan cara menggunakan Apache Sqoop pada kluster E-MapReduce (EMR) untuk mengimplementasikan akses baca dan tulis ke data yang disimpan di OSS-HDFS.
Prasyarat
OSS-HDFS diaktifkan untuk bucket, dan izin telah diberikan kepada Peran RAM untuk mengakses OSS-HDFS. Untuk informasi lebih lanjut, lihat Aktifkan OSS-HDFS dan Berikan Izin Akses.
Secara default, akun Alibaba Cloud memiliki izin untuk menghubungkan kluster EMR ke OSS-HDFS dan melakukan operasi umum terkait OSS-HDFS. Pengguna RAM dengan izin yang diperlukan telah dibuat. Jika Anda ingin menggunakan pengguna RAM untuk menghubungkan kluster EMR ke OSS-HDFS, pengguna tersebut harus memiliki izin yang sesuai. Untuk informasi lebih lanjut, lihat Berikan Izin kepada Pengguna RAM untuk Menghubungkan Kluster EMR ke OSS-HDFS.
Prosedur
- Hubungkan ke kluster EMR.
- Masuk ke Konsol EMR. Di panel navigasi sebelah kiri, klik EMR on ECS.
- Klik kluster EMR yang telah Anda buat.
- Klik tab Nodes, lalu klik ikon plus (
) di sisi kiri grup node. - Klik ID Instance ECS. Pada halaman Instances, klik Connect di sebelah ID instance.
Untuk informasi lebih lanjut tentang cara masuk ke kluster di Windows atau Linux menggunakan pasangan kunci SSH atau kata sandi SSH, lihat Masuk ke Kluster. - Impor data dari OSS-HDFS ke MySQL.
sudo sqoop import --connect <dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <oss-dir> --temporary-rootdir <oss-tmpdir> --check-column <col> --incremental <mode> --last-value <value> -as <format> -m <count>- Tabel berikut menjelaskan parameter dalam perintah sebelumnya.
Parameter Diperlukan Deskripsi dburi Ya URI yang digunakan untuk mengakses database. Contoh: jdbc:mysql://192.168.xxx.xxx:3306/.dbname Ya Nama database. username Ya Nama pengguna yang ingin Anda gunakan untuk masuk ke database. password Ya Kata sandi pengguna. tablename Ya Nama tabel MySQL. oss-dir Ya Direktori OSS-HDFS dari mana Anda ingin membaca data atau ke mana Anda ingin menulis data. Contoh: oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/.oss-tmpdir Tidak Direktori tempat data ditulis sementara. Anda harus menentukan parameter ini jika parameter mode diatur ke append. Jika Anda mengatur parameter mode ke append, Apache Sqoop mengimpor data ke direktori sementara, lalu mengganti nama dan menyimpan file di direktori tujuan. Jika direktori tujuan ada di OSS-HDFS, Apache Sqoop tidak akan mengimpor data ke direktori tersebut atau menimpa data di direktori tersebut.
col Tidak Kolom pemeriksaan yang ingin Anda gunakan untuk menentukan baris yang akan diimpor dalam skenario impor tambahan. mode Tidak Mode impor tambahan. Nilai valid: append dan lastmodified. - append: Data diimpor secara bertahap berdasarkan kolom tambahan.
- lastmodified: Data diimpor secara bertahap berdasarkan kolom waktu.
value Tidak Nilai maksimum kolom pemeriksaan dalam impor tambahan sebelumnya. format Tidak Format di mana Anda ingin menyimpan objek. Nilai valid: avrodatafile, sequencefile, textfile (default), dan parquetfile. count Tidak Jumlah tugas MapReduce. - Contoh:
Kode sampel berikut memberikan contoh tentang cara mengimpor data di direktori tertentu dari examplebucket ke tabel src_kv di MySQL:
sudo sqoop import --connect jdbc:mysql://master-1-1/sqoop_test --username root --password password1 --table src_kv -m 1 --target-dir oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/tmp/sqoop_kv --as-parquetfile
- Tabel berikut menjelaskan parameter dalam perintah sebelumnya.