All Products
Search
Document Center

E-MapReduce:Akses OSS-HDFS dari EMR Hive atau Spark

Last Updated:Jun 22, 2026

Kluster E-MapReduce (EMR) versi 3.42 ke atas atau versi 5.8.0 ke atas mendukung OSS-HDFS (JindoFS) sebagai penyimpanan data. OSS-HDFS menyediakan akselerasi cache dan otentikasi Ranger untuk meningkatkan performa serta menyederhanakan migrasi HDFS pada skenario ETL data besar yang menggunakan Hive atau Spark. Topik ini menjelaskan cara mengakses data di OSS-HDFS menggunakan Hive atau Spark dalam kluster EMR.

Informasi latar belakang

OSS-HDFS adalah layanan penyimpanan data lake cloud-native. Dengan manajemen metadata terpadu, layanan ini sepenuhnya kompatibel dengan antarmuka sistem file HDFS dan menyediakan dukungan POSIX yang komprehensif, sehingga ideal untuk berbagai skenario komputasi data lake di bidang data besar dan AI. Untuk informasi selengkapnya, lihat Apa itu OSS-HDFS?.

Prasyarat

Anda telah membuat kluster EMR. Untuk informasi selengkapnya, lihat Buat kluster.

Prosedur

  1. Langkah 1: Aktifkan OSS-HDFS
  2. Langkah 2: Dapatkan titik akhir OSS-HDFS
  3. Langkah 3: Gunakan OSS-HDFS di kluster EMR

Langkah 1: Aktifkan OSS-HDFS

Aktifkan OSS-HDFS dan berikan izin akses yang diperlukan. Untuk informasi selengkapnya, lihat Aktifkan OSS-HDFS.

Langkah 2: Dapatkan titik akhir OSS-HDFS

Pada halaman Overview bucket Anda di Konsol OSS, pada bagian Access Domain Names, salin titik akhir dari baris HDFS Service. Titik akhir ini diperlukan untuk membuat tabel Hive di Langkah 3: Gunakan OSS-HDFS di kluster EMR. Format titik akhir tersebut adalah <Bucket-name>.<region>.oss-dls.aliyuncs.com.

Langkah 3: Gunakan OSS-HDFS di kluster EMR

Catatan Topik ini menggunakan Hive sebagai contoh untuk menunjukkan cara mengoperasikan data di OSS-HDFS. Langkah serupa dapat diikuti untuk melakukan hal yang sama dengan Spark.
  1. Masuk ke kluster. Untuk informasi selengkapnya, lihat Masuk ke kluster.
  2. Buat tabel Hive yang mengarah ke OSS-HDFS.
    1. Jalankan perintah berikut untuk masuk ke command line Hive.
      hive
    2. Jalankan perintah berikut untuk membuat database yang mengarah ke OSS-HDFS.
      CREATE DATABASE if not exists dw LOCATION 'oss://<your-oss-hdfs-endpoint>/<path>';
      Catatan
      • Pada perintah di atas, dw adalah nama database, <path> adalah path arbitrer, dan <your-oss-hdfs-endpoint> adalah titik akhir OSS-HDFS yang Anda peroleh di Langkah 2: Dapatkan titik akhir OSS-HDFS.
      • Contoh ini menggunakan titik akhir OSS-HDFS sebagai awalan path. Jika Anda ingin mengarah ke OSS-HDFS hanya dengan menggunakan nama bucket, Anda dapat mengonfigurasi titik akhir tingkat bucket atau global. Untuk informasi selengkapnya, lihat Hubungkan ke OSS-HDFS dari kluster non-EMR.
    3. Jalankan perintah berikut untuk menggunakan database baru.
      use dw;
    4. Jalankan perintah berikut untuk membuat tabel di database baru.
      CREATE TABLE IF NOT EXISTS employee(eid int, name String,salary String,destination String)
      COMMENT 'Employee details';
    5. Jalankan perintah berikut untuk melihat informasi tabel.
      desc formatted employee;
      Output berikut dikembalikan. Bidang Location menunjukkan bahwa tabel mengarah ke path di OSS-HDFS.
      # col_name              data_type               comment
      eid                     int
      name                    string
      salary                  string
      destination             string
      # Detailed Table Information
      Database:               dw
      Owner:                  root
      CreateTime:             Fri May 06 16:40:06 CST 2022
      LastAccessTime:         UNKNOWN
      Retention:              0
      Location:               oss://****.cn-hangzhou.oss-dls.aliyuncs.com/dw/employee
      Table Type:             MANAGED_TABLE
  3. Masukkan data ke dalam tabel.
    Gunakan pernyataan INSERT INTO untuk menulis data ke tabel. Pernyataan ini menghasilkan pekerjaan MapReduce.
    INSERT INTO employee(eid, name, salary, destination) values(1, 'John Doe', '100.0', '');
  4. Verifikasi data tabel.
    SELECT * FROM employee WHERE eid = 1;
    Output mencakup data yang telah Anda masukkan.
    OK
    1       John Doe 100.0
    Time taken: 12.379 seconds, Fetched: 1 row(s)

Otorisasi kluster EMR

Jika kluster EMR Anda tidak menggunakan role instans RAM default AliyunECSInstanceForEMRRole, Anda harus memberikan izin kepada kluster tersebut.

Role instans RAM AliyunECSInstanceForEMRRole dikaitkan dengan kebijakan AliyunECSInstanceForEMRRolePolicy, yang secara default mencakup izin oss:PostDataLakeStorageFileOperation. Oleh karena itu, kluster yang menggunakan role default dapat mengakses OSS-HDFS tanpa otorisasi tambahan.