全部产品
Search
文档中心

Object Storage Service:Gunakan Apache Sqoop pada kluster EMR untuk mengimplementasikan akses baca dan tulis ke data yang disimpan di OSS-HDFS

更新时间:Jun 26, 2025

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

  1. Hubungkan ke kluster EMR.
    1. Masuk ke Konsol EMR. Di panel navigasi sebelah kiri, klik EMR on ECS.
    2. Klik kluster EMR yang telah Anda buat.
    3. Klik tab Nodes, lalu klik ikon plus (+) di sisi kiri grup node.
    4. 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.
  2. 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.
      ParameterDiperlukanDeskripsi
      dburiYaURI yang digunakan untuk mengakses database. Contoh: jdbc:mysql://192.168.xxx.xxx:3306/.
      dbnameYaNama database.
      usernameYaNama pengguna yang ingin Anda gunakan untuk masuk ke database.
      passwordYaKata sandi pengguna.
      tablenameYaNama tabel MySQL.
      oss-dirYaDirektori 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-tmpdirTidakDirektori 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.

      colTidakKolom pemeriksaan yang ingin Anda gunakan untuk menentukan baris yang akan diimpor dalam skenario impor tambahan.
      modeTidakMode impor tambahan. Nilai valid: append dan lastmodified.
      • append: Data diimpor secara bertahap berdasarkan kolom tambahan.
      • lastmodified: Data diimpor secara bertahap berdasarkan kolom waktu.
      valueTidakNilai maksimum kolom pemeriksaan dalam impor tambahan sebelumnya.
      formatTidakFormat di mana Anda ingin menyimpan objek. Nilai valid: avrodatafile, sequencefile, textfile (default), dan parquetfile.
      countTidakJumlah 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