Topik ini menjelaskan cara mengonfigurasi dan menggunakan JindoFS, serta skenario penggunaannya.
Ikhtisar
JindoFS adalah sistem file cloud-native yang menggabungkan keunggulan Object Storage Service (OSS) dan penyimpanan lokal. JindoFS juga merupakan sistem penyimpanan generasi berikutnya yang menyediakan layanan penyimpanan efisien dan andal untuk komputasi awan di E-MapReduce (EMR).
JindoFS mendukung mode penyimpanan blok dan mode cache.
JindoFS mengadopsi mekanisme multi-backup heterogen. Layanan Penyimpanan memberikan kemampuan penyimpanan data. Data disimpan di OSS untuk memastikan keandalan tinggi. Backup redundan disimpan di kluster lokal untuk mempercepat operasi baca. Layanan Namespace mengelola metadata JindoFS. Dalam hal ini, metadata di-query dari Layanan Namespace bukan dari OSS, yang 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 Anda membuat kluster EMR.
- Topik ini menjelaskan cara menggunakan JindoFS di EMR V3.20.0 hingga V3.22.0 (V3.22.0 dikecualikan). Untuk informasi lebih lanjut tentang cara menggunakan JindoFS di EMR V3.22.0 atau lebih baru, lihat Gunakan JindoFS di EMR V3.22.0 hingga V3.26.3.

Skenario
EMR memiliki tiga sistem penyimpanan: EMR OssFileSystem, EMR HDFS, dan EMR JindoFS. Di antaranya, OssFileSystem dan JindoFS menyimpan data di cloud. Tabel berikut membandingkan fitur dari tiga sistem penyimpanan EMR dan dukungan Hadoop untuk Alibaba Cloud OSS.
| Fitur | Dukungan Hadoop untuk Alibaba Cloud OSS | E-MapReduce OssFileSystem | E-MapReduce HDFS | E-MapReduce JindoFS |
| Kapasitas penyimpanan | Sangat besar | Sangat besar | Tergantung pada skala kluster EMR | Sangat besar |
| Keandalan | Tinggi | Tinggi | Tinggi | Tinggi |
| Faktor yang memengaruhi throughput | Server | Kinerja I/O cache pada disk di kluster EMR | Kinerja I/O disk di kluster EMR | Kinerja I/O disk di kluster EMR |
| Efisiensi query metadata | Rendah | Sedang | Tinggi | Tinggi |
| Operasi penambahan skala | Mudah | Mudah | Mudah | Mudah |
| Operasi pengurangan skala | Mudah | Mudah | Dekomision node diperlukan | Mudah |
| Lokalitas data | Tidak ada | Lemah | Kuat | Sedang |
Mode penyimpanan blok JindoFS memiliki fitur-fitur berikut:
- JindoFS menawarkan kapasitas penyimpanan yang sangat besar dan skalabel dengan menggunakan OSS sebagai backend penyimpanan. Kapasitas penyimpanan tidak bergantung pada skala kluster EMR. Kluster lokal dapat ditambah atau dikurangi sesuai kebutuhan.
- JindoFS menyimpan beberapa data backup di kluster lokal untuk mempercepat operasi baca. Ini meningkatkan throughput dengan menggunakan kapasitas penyimpanan lokal yang terbatas, terutama untuk solusi Write Once Read Many (WORM).
- JindoFS menyediakan query metadata yang efisien mirip dengan HDFS. Dibandingkan dengan OssFileSystem, JindoFS menghemat banyak waktu dalam query metadata. Selain itu, JindoFS menghindari ketidakstabilan sistem saat data dan metadata sering diakses.
- JindoFS memastikan lokalitas data maksimal saat pekerjaan dijalankan di kluster EMR. Ini mengurangi beban pada transmisi jaringan dan meningkatkan kinerja baca.
Siapkan lingkungan
- Buat kluster EMR
Pilih versi dari EMR V3.20.0 hingga V3.22.0 (V3.22.0 dikecualikan). Pilih SmartData dan Bigboot dari layanan opsional. Untuk informasi lebih lanjut tentang cara membuat kluster EMR, lihat Buat kluster. Bigboot menyediakan layanan manajemen data terdistribusi dan manajemen komponen di EMR. Berdasarkan Bigboot, SmartData menyediakan JindoFS untuk lapisan aplikasi.

- Konfigurasikan JindoFS
JindoFS yang disediakan oleh SmartData menggunakan OSS sebagai backend penyimpanan. Oleh karena itu, Anda harus mengonfigurasi parameter terkait OSS sebelum menggunakan JindoFS. EMR menyediakan dua metode konfigurasi berikut: 1. Ubah parameter terkait Bigboot setelah Anda membuat kluster EMR, lalu mulai ulang SmartData agar konfigurasi berlaku. 2. Tambahkan konfigurasi kustom saat Anda membuat kluster EMR. Dalam hal ini, layanan terkait dimulai ulang berdasarkan parameter kustom setelah kluster EMR dibuat.
- Inisialisasi parameter setelah kluster EMR dibuat
oss.access.bucketmenentukan nama Bucket OSS.oss.data-dirmenentukan direktori JindoFS di Bucket OSS. Direktori ini hanya berfungsi sebagai backend penyimpanan untuk JindoFS. Data yang dihasilkan di direktori ini tidak boleh rusak. Direktori ini dibuat secara otomatis saat JindoFS menulis data. Anda tidak perlu membuat direktori ini terlebih dahulu.oss.access.endpointmenentukan wilayah tempat Bucket OSS berada.oss.access.keymenentukan ID AccessKey yang digunakan untuk mengakses Bucket OSS.oss.access.secretmenentukan Rahasia AccessKey yang digunakan untuk mengakses Bucket OSS.
Kami merekomendasikan Anda menyimpan data di Bucket OSS yang berada di wilayah 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 memungkinkan akses tanpa kata sandi dari kluster EMR.
Anda dapat mengonfigurasi semua parameter terkait JindoFS di Bigboot, seperti yang ditunjukkan pada gambar berikut. Parameter yang diberi bingkai merah wajib.
null JindoFS mendukung beberapa namespace. Namespace bernama test digunakan dalam topik ini.Simpan dan terapkan konfigurasi JindoFS. Mulai ulang semua komponen di SmartData untuk menggunakan JindoFS.

- Tambahkan konfigurasi kustom saat Anda membuat kluster EMR
Anda dapat menambahkan konfigurasi kustom saat Anda membuat kluster EMR. Anggaplah Anda ingin membuat kluster EMR di wilayah yang sama dengan Bucket OSS untuk mengakses OSS tanpa menggunakan pasangan AccessKey. Nyalakan Custom Software Settings seperti yang ditunjukkan pada gambar berikut. Tambahkan konfigurasi berikut termasuk
oss.data-dirdanoss.access.bucketke bidang di bagian Pengaturan Lanjutan:[ { "ServiceName":"BIGBOOT", "FileName":"bigboot", "ConfigKey":"oss.data-dir", "ConfigValue":"jindoFS-1" }, { "ServiceName":"BIGBOOT", "FileName":"bigboot", "ConfigKey":"oss.access.bucket", "ConfigValue":"oss-bucket-name" } ]
- Inisialisasi parameter setelah kluster EMR dibuat
Gunakan JindoFS
hadoop fs -ls jfs:/// hadoop fs -mkdir jfs:///test-dirhadoop fs -put test.log jfs:///test-dir/
Data hanya dapat dibaca dari JindoFS saat pekerjaan Hadoop, Hive, dan Spark sedang berjalan di kluster EMR.Kontrol penggunaan ruang disk
JindoFS menggunakan OSS sebagai backend penyimpanan data, yang memungkinkan Anda menyimpan 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. JindoFS secara default menggunakan total kapasitas penyimpanan semua disk data. Parameter node.data-dirs.watermark.high.ratio menentukan batas atas penggunaan ruang pada setiap disk. Data yang jarang diakses yang disimpan di disk dilepaskan jika ruang yang digunakan oleh JindoFS mencapai batas atas. Parameter node.data-dirs.watermark.low.ratio menentukan batas bawah penggunaan ruang pada setiap disk. Setelah penggunaan ruang pada disk mencapai batas atas, data yang jarang diakses dilepaskan hingga penggunaan ruang pada disk mencapai batas bawah. Anda dapat mengonfigurasi batas atas dan batas bawah untuk menyesuaikan dan mengalokasikan ruang disk ke JindoFS. Pastikan bahwa batas atas lebih besar dari 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 sebuah direktori.
| Kebijakan | Deskripsi |
| COLD | Data memiliki backup di OSS tetapi tidak ada backup di kluster lokal. Kebijakan ini cocok untuk menyimpan data dingin. |
| WARM |
Kebijakan penyimpanan default. Data memiliki backup di OSS dan backup di kluster lokal. Backup lokal dapat mempercepat operasi baca. |
| HOT | Data memiliki backup di OSS dan beberapa backup di kluster lokal. Backup lokal dapat mempercepat operasi baca pada data panas. |
| TEMP | Data memiliki backup di kluster lokal tetapi tidak ada backup di OSS. Kebijakan ini cocok untuk menyimpan data sementara. Backup 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 sebuah 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 sebuah direktori:
jindo dfsadmin -getStoragePolicy [path]
Alat Admin menyediakan perintah archive untuk mengarsipkan data dingin.
Perintah ini memungkinkan Anda secara eksplisit mengevakuasi blok lokal. Anggaplah Hive mempartisi tabel berdasarkan hari. Jika data yang dihasilkan seminggu lalu di tabel terpartisi jarang diakses, Anda dapat menjalankan perintah archive pada direktori yang menyimpan data tersebut secara berkala. Kemudian, backup yang disimpan di kluster lokal dievakuasi, sedangkan backup di OSS dipertahankan.
Jalankan perintah archive berikut:
jindo dfsadmin -archive [path]