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
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

Langkah 3: Gunakan OSS-HDFS di kluster EMR
- Masuk ke kluster EMR. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.
- Buat tabel Hive di direktori OSS-HDFS.
- Jalankan perintah berikut untuk membuka CLI Hive:
hive - 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,
dwadalah 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.
- Dalam perintah tersebut,
- Jalankan perintah berikut untuk menggunakan database baru:
use dw; - 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'; - Jalankan perintah berikut untuk menanyakan informasi tentang tabel:
desc formatted employee;Informasi berikut dikembalikan. Nilai parameterLokasimenunjukkan 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
- Jalankan perintah berikut untuk membuka CLI Hive:
- 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', ''); - 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.