JindoFS adalah sistem file cloud-native yang menggabungkan keunggulan Object Storage Service (OSS) dan penyimpanan lokal. Sistem ini juga merupakan solusi penyimpanan generasi berikutnya yang menyediakan layanan efisien dan andal untuk komputasi awan di E-MapReduce (EMR). Topik ini menjelaskan cara mengonfigurasi, menggunakan, serta skenario penggunaan JindoFS.
Ikhtisar
JindoFS mendukung mode penyimpanan blok dan mode cache.
JindoFS mengadopsi mekanisme multi-backup heterogen. Layanan Penyimpanan bertanggung jawab atas penyimpanan data, dengan data utama disimpan di OSS untuk memastikan keandalan tinggi. Backup redundan disimpan di kluster lokal untuk mempercepat operasi baca. Layanan Namespace mengelola metadata JindoFS, sehingga query metadata tidak bergantung pada OSS, meningkatkan kinerja query. Metode query ini pada JindoFS mirip dengan Hadoop Distributed File System (HDFS).
- EMR V3.20.0 dan versi lebih baru mendukung JindoFS. Untuk menggunakan JindoFS, pilih layanan terkait saat membuat kluster EMR.
- Topik ini menjelaskan cara menggunakan JindoFS di EMR V3.22.0 atau lebih baru. Untuk informasi tentang penggunaan JindoFS di EMR V3.20.0 hingga V3.22.0 (tidak termasuk V3.22.0), lihat Gunakan JindoFS di EMR V3.20.0 hingga V3.22.0 (V3.22.0 tidak termasuk).

Siapkan lingkungan
- Buat Kluster EMR
Pilih EMR V3.22.0 atau versi lebih baru. Aktifkan layanan opsional SmartData. Untuk panduan pembuatan kluster EMR, lihat Buat Kluster.

- Konfigurasikan JindoFS JindoFS yang disediakan oleh SmartData menggunakan OSS sebagai backend penyimpanan. Oleh karena itu, konfigurasikan parameter terkait OSS sebelum menggunakan JindoFS. EMR menyediakan dua metode konfigurasi: 1. Ubah parameter Bigboot setelah kluster EMR dibuat, lalu mulai ulang SmartData agar konfigurasi berlaku. 2. Tambahkan konfigurasi kustom saat membuat kluster EMR. Dalam hal ini, layanan terkait dimulai ulang berdasarkan parameter kustom setelah kluster EMR dibuat.
- Inisialisasi Parameter Setelah Pembuatan Kluster EMR
Semua parameter terkait JindoFS dapat dikonfigurasi di Bigboot, seperti yang ditunjukkan pada gambar berikut.
Di bagian Service Configuration, klik tab bigboot.

- Klik Custom Configuration di pojok kanan atas.

Catatan- Parameter yang diberi bingkai merah pada gambar wajib diisi.
- JindoFS mendukung beberapa namespace. Namespace bernama test digunakan dalam topik ini.
Parameter Deskripsi Contoh jfs.namespaces Namespace yang didukung oleh JindoFS. Pisahkan beberapa namespace dengan koma (,). test jfs.namespaces.test.uri Backend penyimpanan namespace test. oss://oss-bucket/oss-dir Catatan Anda dapat menetapkan nilai ke direktori di Bucket OSS. Dalam hal ini, direktori ini berfungsi sebagai direktori root, di mana namespace test membaca dan menulis data.jfs.namespaces.test.mode Mode penyimpanan namespace test. block Catatan JindoFS mendukung mode penyimpanan blok dan mode cache.jfs.namespaces.test.oss.access.key ID AccessKey yang digunakan untuk mengakses Bucket OSS yang berfungsi sebagai backend penyimpanan. xxxx Catatan Kami merekomendasikan Anda menyimpan data di Bucket OSS yang berada di wilayah yang sama dan di bawah akun yang sama dengan kluster EMR Anda. Ini memastikan performa dan stabilitas tinggi. Dalam hal ini, Anda tidak perlu mengonfigurasi ID AccessKey dan Rahasia AccessKey karena Bucket OSS mengizinkan akses tanpa kata sandi dari kluster EMR.jfs.namespaces.test.oss.access.secret Rahasia AccessKey yang digunakan untuk mengakses Bucket OSS yang berfungsi sebagai backend penyimpanan. Simpan dan terapkan konfigurasi JindoFS. Mulai ulang semua komponen di SmartData untuk menggunakan JindoFS.

- Tambahkan Konfigurasi Kustom Saat Membuat Kluster EMR Anda dapat menambahkan konfigurasi kustom saat membuat kluster EMR. Misalnya, jika Anda ingin membuat kluster EMR di wilayah yang sama dengan Bucket OSS untuk mengakses OSS tanpa menggunakan pasangan AccessKey, aktifkan Custom Software Settings seperti yang ditunjukkan pada gambar berikut. Tambahkan konfigurasi berikut ke bidang Pengaturan Lanjutan untuk menyesuaikan parameter namespace test:
[ { "ServiceName":"BIGBOOT", "FileName":"bigboot", "ConfigKey":"jfs.namespaces","ConfigValue":"test" },{ "ServiceName":"BIGBOOT", "FileName":"bigboot", "ConfigKey":"jfs.namespaces.test.uri", "ConfigValue":"oss://oss-bucket/oss-dir" },{ "ServiceName":"BIGBOOT", "FileName":"bigboot", "ConfigKey":"jfs.namespaces.test.mode", "ConfigValue":"block" } ]
- Inisialisasi Parameter Setelah Pembuatan Kluster EMR
Gunakan JindoFS
Penggunaan JindoFS serupa dengan HDFS. JindoFS juga menyediakan prefiks. Untuk menggunakan JindoFS, cukup ganti prefiks hdfs dengan prefiks jfs.
JindoFS mendukung sebagian besar komponen komputasi di kluster EMR, termasuk Hadoop, Hive, Spark, Flink, Presto, dan Impala.
Contoh:
- Jalankan perintah shell
hadoop fs -ls jfs://your-namespace/ hadoop fs -mkdir jfs://your-namespace/test-dir hadoop fs -put test.log jfs://your-namespace/test-dir/ hadoop fs -get jfs://your-namespace/test-dir/test.log . / - Jalankan pekerjaan MapReduce
hadoop jar /usr/lib/hadoop-current/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar teragen -Dmapred.map.tasks=1000 10737418240 jfs://your-namespace/terasort/input hadoop jar /usr/lib/hadoop-current/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar terasort -Dmapred.reduce.tasks=1000 jfs://your-namespace/terasort/input jfs://your-namespace/terasort/output - Jalankan tes SQL Spark
CREATE EXTERNAL TABLE IF NOT EXISTS src_jfs (key INT, value STRING) location 'jfs://your-namespace/Spark_sql_test/';
Kontrol penggunaan ruang disk
JindoFS menggunakan OSS sebagai backend penyimpanan data, memungkinkan penyimpanan volume data yang besar. Namun, kapasitas disk lokal terbatas. JindoFS secara otomatis menghapus data dingin di disk lokal. Alibaba Cloud menggunakan parameter node.data-dirs.watermark.high.ratio dan node.data-dirs.watermark.low.ratio untuk menyesuaikan penggunaan ruang disk lokal. Nilai kedua parameter tersebut berada dalam rentang 0 hingga 1 untuk menunjukkan persentase penggunaan ruang. Secara default, JindoFS menggunakan total kapasitas penyimpanan semua disk data. Parameter node.data-dirs.watermark.high.ratio menentukan batas atas penggunaan ruang pada setiap disk. Data jarang diakses yang disimpan di disk dilepaskan jika penggunaan ruang mencapai batas atas. Parameter node.data-dirs.watermark.low.ratio menentukan batas bawah penggunaan ruang pada setiap disk. Setelah penggunaan ruang mencapai batas atas, data jarang diakses dilepaskan hingga penggunaan ruang mencapai batas bawah. Pastikan batas atas lebih besar daripada batas bawah.
Konfigurasikan kebijakan penyimpanan
JindoFS menyediakan beberapa kebijakan penyimpanan untuk memenuhi kebutuhan penyimpanan yang berbeda. Tabel berikut mencantumkan empat kebijakan penyimpanan yang tersedia untuk direktori.
| Kebijakan | Deskripsi |
| COLD | Data hanya memiliki cadangan di OSS tetapi tidak ada cadangan di kluster lokal. Kebijakan ini cocok untuk menyimpan data dingin. |
| WARM | Kebijakan penyimpanan default. Data memiliki cadangan di OSS dan cadangan di kluster lokal. Cadangan lokal dapat mempercepat operasi baca. |
| HOT | Data memiliki cadangan di OSS dan beberapa cadangan di kluster lokal. Cadangan lokal dapat mempercepat operasi baca pada data panas. |
| TEMP | Data hanya memiliki cadangan di kluster lokal. Kebijakan ini cocok untuk menyimpan data sementara. Cadangan lokal dapat mempercepat operasi baca dan tulis pada data sementara. Namun, ini mungkin menurunkan keandalan data. |
JindoFS menyediakan alat baris perintah Admin untuk mengonfigurasi kebijakan penyimpanan direktori. Kebijakan penyimpanan default adalah WARM. File baru disimpan berdasarkan kebijakan penyimpanan yang dikonfigurasi untuk direktori induk. Jalankan perintah berikut untuk mengonfigurasi kebijakan penyimpanan:
jindo dfsadmin -R -setStoragePolicy [path] [policy]Jalankan perintah berikut untuk mendapatkan kebijakan penyimpanan yang dikonfigurasi untuk direktori:
jindo dfsadmin -getStoragePolicy [path]Gunakan alat Admin
Alat Admin menyediakan perintah archive untuk mengarsipkan data dingin.
Perintah ini memungkinkan Anda mengevakuasi blok lokal secara eksplisit. Misalnya, jika Hive mempartisi tabel berdasarkan hari dan data seminggu lalu jarang diakses, jalankan perintah archive pada direktori yang menyimpan data tersebut secara berkala. Cadangan di kluster lokal dievakuasi, sedangkan cadangan di OSS dipertahankan.
Jalankan perintah archive berikut:
jindo dfsadmin -archive [path]Catatan Parameter [path] menentukan direktori tempat data akan diarsipkan.Alat Admin menyediakan perintah jindo untuk mengelola metadata JindoFS untuk Layanan Namespace.
jindo dfsadmin [-options]Catatan Jalankan perintahjindo dfsadmin --helpuntuk mendapatkan informasi bantuan.
- Perintah diff menampilkan perbedaan antara data yang disimpan di kluster lokal dan di OSS.
jindo dfsadmin -R -diff [path]Catatan Secara default, perintah diff menampilkan perbedaan antara metadata yang disimpan di kluster lokal dan di subdirektori dari direktori yang ditentukan oleh parameter[path]. Opsi-R[path]menentukan bahwa operasi rekursif dilakukan untuk membandingkan metadata di semua subdirektori. - Perintah sync menyinkronkan metadata antara kluster lokal dan OSS.
jindo dfsadmin -R -sync [path]Catatan Parameter[path]menentukan direktori tempat metadata akan disinkronkan. Secara default, perintah sync menyinkronkan metadata di subdirektori dari direktori yang ditentukan oleh parameter[path]ke kluster lokal. Opsi-R[path]menentukan bahwa operasi rekursif dilakukan untuk menyinkronkan metadata di semua subdirektori.