全部产品
Search
文档中心

E-MapReduce:Gunakan OSS-HDFS di EMR Hive atau Spark

更新时间:Jul 02, 2025

OSS-HDFS (JindoFS) adalah layanan penyimpanan yang mendukung percepatan berbasis cache dan otentikasi Ranger. Layanan ini tersedia untuk kluster E-MapReduce (EMR) V3.42 atau versi minor terbaru, serta EMR V5.8.0 atau versi minor terbaru. Kluster yang menggunakan OSS-HDFS sebagai penyimpanan backend menawarkan performa lebih baik dalam skenario ekstraksi, transformasi, dan pemuatan data besar (ETL), serta memungkinkan migrasi mulus dari HDFS ke OSS-HDFS. Topik ini menjelaskan cara menggunakan OSS-HDFS di EMR Hive atau Spark.

Informasi latar belakang

OSS-HDFS adalah layanan penyimpanan danau data berbasis cloud-native. OSS-HDFS menyediakan manajemen metadata terpadu dan sepenuhnya kompatibel dengan API HDFS. OSS-HDFS juga mendukung Antarmuka Sistem Operasi Portabel (POSIX). Layanan ini memungkinkan Anda mengelola data dalam berbagai skenario komputasi berbasis danau data di bidang data besar dan AI. Untuk informasi lebih lanjut, lihat Apa itu OSS-HDFS?.

Prasyarat

Kluster EMR telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kluster.

Prosedur

  1. Langkah 1: Aktifkan OSS-HDFS
  2. Langkah 2: Dapatkan Nama Domain Bucket OSS-HDFS
  3. Langkah 3: Gunakan OSS-HDFS di Kluster EMR

Langkah 1: Aktifkan OSS-HDFS

Aktifkan OSS-HDFS dan dapatkan izin untuk mengakses OSS-HDFS. Untuk informasi lebih lanjut, lihat Aktifkan OSS-HDFS.

Langkah 2: Dapatkan nama domain bucket OSS-HDFS

Pada halaman Overview bucket Anda di konsol OSS, dapatkan nama domain bucket OSS-HDFS. Nama domain bucket diperlukan saat Anda membuat tabel Hive di Langkah 3: Gunakan OSS-HDFS di Kluster EMR. HDFS Endpoint

Langkah 3: Gunakan OSS-HDFS di kluster EMR

Catatan Bagian ini menjelaskan cara menggunakan OSS-HDFS di EMR Hive. Anda juga dapat menggunakan OSS-HDFS di EMR Spark dengan mengikuti petunjuk dalam topik ini.
  1. Masuk ke kluster EMR. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.
  2. Buat tabel Hive di direktori OSS-HDFS.
    1. Jalankan perintah berikut untuk membuka CLI Hive:
      hive
    2. Jalankan perintah berikut untuk membuat database di direktori OSS-HDFS:
      CREATE DATABASE if not exists dw LOCATION 'oss://<yourBucketName>.<yourBucketEndpoint>/<path>';
      Catatan
      • Dalam perintah tersebut, dw adalah nama database, <path> menentukan jalur acak, dan <yourBucketName>.<yourBucketEndpoint> menentukan nama domain bucket OSS-HDFS yang Anda dapatkan di Langkah 2: Dapatkan Nama Domain Bucket OSS-HDFS.
      • Dalam contoh ini, nama domain bucket OSS-HDFS digunakan sebagai awalan jalur. Jika Anda ingin menggunakan hanya nama bucket untuk menunjuk ke direktori OSS-HDFS, Anda dapat menentukan endpoint tingkat bucket atau endpoint global. Untuk informasi lebih lanjut, lihat Lampiran 1: Metode Lain untuk Mengonfigurasi Endpoint OSS-HDFS.
    3. Jalankan perintah berikut untuk menggunakan database baru:
      use dw;
    4. Jalankan perintah berikut untuk membuat tabel Hive di database baru:
      CREATE TABLE IF NOT EXISTS employee(eid int, name String,salary String,destination String)
      COMMENT 'Detail karyawan';
    5. Jalankan perintah berikut untuk menanyakan informasi tentang tabel:
      desc formatted employee;
      Informasi berikut dikembalikan. Nilai parameter Lokasi menunjukkan bahwa tabel Hive dibuat di direktori OSS-HDFS.
      # col_name              data_type               comment
      
      eid                     int
      name                    string
      salary                  string
      destination             string
      
      # Informasi Tabel Rinci
      Database:               dw
      Pemilik:                root
      Waktu Pembuatan:        Fri May 06 16:40:06 CST 2022
      LastAccessTime:         UNKNOWN
      Retention:              0
      Location:               oss://****.cn-hangzhou.oss-dls.aliyuncs.com/dw/employee
      Tipe Tabel:             MANAGED_TABLE
  3. Masukkan data ke tabel Hive.
    Jalankan Pernyataan SQL berikut untuk menulis data ke tabel Hive. Pekerjaan EMR dihasilkan.
    INSERT INTO employee(eid, name, salary, destination) values(1, 'liu hua', '100.0', '');
  4. Verifikasi data di tabel Hive.
    SELECT * FROM employee WHERE eid = 1;
    Informasi yang dikembalikan berisi data yang dimasukkan.
    OK
    1       liu hua 100.0
    Waktu yang diperlukan: 12.379 detik, Diambil: 1 baris

Berikan izin akses ke kluster EMR

Jika peran default AliyunECSInstanceForEMRRole tidak digunakan oleh kluster EMR Anda, Anda harus memberikan izin kepada kluster EMR untuk mengakses OSS-HDFS.

Jika peran default AliyunECSInstanceForEMRRole digunakan oleh kluster EMR Anda, Anda tidak perlu memberikan izin kepada kluster EMR untuk mengakses OSS-HDFS. Secara default, kebijakan AliyunECSInstanceForEMRRolePolicy dilampirkan ke peran tersebut, dan kebijakan tersebut berisi izin oss:PostDataLakeStorageFileOperation.