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). Topik ini menjelaskan cara mengonfigurasi dan menggunakan JindoFS serta skenario penggunaannya.
Ikhtisar
JindoFS mendukung mode penyimpanan blok dan mode cache.
JindoFS menerapkan mekanisme multi-backup heterogen. Storage Service menyediakan kemampuan penyimpanan data, dengan data disimpan di OSS untuk menjamin keandalan tinggi. Backup redundan disimpan di kluster lokal guna mempercepat operasi baca. Namespace Service mengelola metadata JindoFS. Dalam hal ini, metadata dikueri dari Namespace Service alih-alih dari OSS, sehingga meningkatkan kinerja kueri. Metode kueri JindoFS ini mirip dengan Hadoop Distributed File System (HDFS).
-
JindoFS didukung di EMR 3.20.0 dan versi setelahnya. Untuk menggunakan JindoFS, pilih layanan tersebut saat membuat kluster.
-
Topik ini menjelaskan cara menggunakan JindoFS di EMR 3.22.0 dan versi setelahnya. Untuk petunjuk penggunaan JindoFS pada versi EMR 3.20.0 hingga (namun tidak termasuk) 3.22.0, lihat Panduan Pengguna SmartData (EMR 3.20.0 hingga 3.22.0).

Persiapkan lingkungan
-
Buat kluster
Pilih EMR 3.22.0 atau versi setelahnya dan pilih SmartData dalam layanan opsional. Untuk informasi selengkapnya, lihat Buat kluster.
-
Konfigurasi kluster
JindoFS menggunakan OSS sebagai backend penyimpanannya. Sebelum dapat menggunakan JindoFS, Anda harus mengonfigurasi parameter terkait OSS. Ada dua cara untuk melakukannya. Pertama, modifikasi parameter Bigboot setelah kluster dibuat; perubahan ini memerlukan restart layanan SmartData agar berlaku. Kedua, tambahkan konfigurasi kustom saat pembuatan kluster sehingga layanan langsung berjalan dengan parameter kustom Anda begitu kluster siap.
-
Inisialisasi parameter setelah pembuatan kluster
Anda dapat mengonfigurasi semua parameter terkait JindoFS di Bigboot, seperti yang ditunjukkan pada gambar berikut.
-
Pada halaman Service Configuration, klik tab bigboot.
Atur nilai jfs.namespaces menjadi
test. -
Klik Custom Configuration. Pada kotak dialog Add Configuration Item, tambahkan item konfigurasi berikut: atur
jfs.namespaces.test.urimenjadioss://oss-bucket/oss-dir, aturjfs.namespaces.test.modemenjadiblock, konfigurasi ID AccessKey OSS dan AccessKey Secret yang sesuai, lalu klik OK.
Catatan-
Parameter yang tercantum wajib diisi.
-
JindoFS mendukung beberapa namespace. Topik ini menggunakan
testsebagai contoh namespace.
Parameter
Deskripsi
Contoh
jfs.namespaces
Namespace yang didukung oleh instans JindoFS saat ini. Gunakan koma untuk memisahkan beberapa namespace.
test
jfs.namespaces.test.uri
URI backend penyimpanan untuk namespace
test.oss://oss-bucket/oss-dir
CatatanAnda dapat mengonfigurasi ini ke direktori tertentu dalam bucket OSS. Namespace tersebut kemudian menggunakan direktori ini sebagai direktori root untuk operasi baca dan tulis.
jfs.namespaces.test.mode
Mode penyimpanan untuk namespace
test.block
CatatanJindoFS mendukung mode penyimpanan
blockdancache.jfs.namespaces.test.oss.access.key
ID AccessKey untuk OSS.
xxxx
CatatanUntuk kinerja dan stabilitas optimal, kami merekomendasikan menggunakan bucket OSS yang berada di bawah akun yang sama dan di wilayah yang sama dengan kluster EMR Anda. Hal ini memungkinkan kluster mengakses OSS tanpa kata sandi, sehingga tidak perlu mengonfigurasi ID AccessKey dan AccessKey Secret.
jfs.namespaces.test.oss.access.secret
AccessKey Secret untuk OSS.
Simpan dan terapkan konfigurasi JindoFS. Restart semua komponen di SmartData untuk menggunakan JindoFS.
-
-
Tambahkan konfigurasi kustom saat pembuatan kluster
Anda dapat menambahkan pengaturan kustom saat membuat kluster EMR. Misalnya, untuk mengaktifkan akses tanpa kata sandi ke bucket OSS di wilayah yang sama, pilih Custom Software Configuration dan tambahkan konfigurasi berikut untuk 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" } ]
-
Gunakan JindoFS
Penggunaan JindoFS mirip dengan HDFS. JindoFS juga menyediakan awalan. Untuk menggunakan JindoFS, cukup ganti awalan hdfs dengan awalan jfs.
JindoFS mendukung sebagian besar komponen komputasi di kluster EMR, termasuk Hadoop, Hive, Spark, Flink, Presto, dan Impala.
Contoh:
-
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 ./ -
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 -
Spark SQL
CREATE EXTERNAL TABLE IF NOT EXISTS src_jfs (key INT, value STRING) location 'jfs://your-namespace/Spark_sql_test/';
Kontrol watermark kapasitas disk
JindoFS menggunakan OSS sebagai backend untuk kapasitas penyimpanan masif, tetapi kapasitas disk lokal terbatas. Untuk mengelola penggunaan disk lokal, JindoFS secara otomatis menghapus cadangan data dingin berdasarkan dua parameter watermark: node.data-dirs.watermark.high.ratio dan node.data-dirs.watermark.low.ratio. Kedua parameter ini diatur sebagai rasio (desimal antara 0 hingga 1) dari total kapasitas disk. Saat penggunaan disk mencapai watermark tinggi, JindoFS menghapus data hingga tingkat penggunaan turun ke watermark rendah. Nilai watermark rendah harus lebih rendah daripada watermark tinggi.
Konfigurasi kebijakan penyimpanan
JindoFS menyediakan beberapa kebijakan penyimpanan untuk memenuhi berbagai kebutuhan penyimpanan. Tabel berikut mencantumkan empat kebijakan penyimpanan yang tersedia untuk sebuah direktori.
|
Kebijakan |
Deskripsi |
|
COLD |
Data hanya memiliki satu cadangan di OSS dan tidak ada cadangan lokal. Kebijakan ini cocok untuk menyimpan data dingin. |
|
WARM |
Kebijakan penyimpanan default. Data memiliki satu cadangan di OSS dan satu cadangan di penyimpanan lokal. Cadangan lokal secara efektif mempercepat operasi baca berikutnya. |
|
HOT |
Data memiliki satu cadangan di OSS dan beberapa cadangan di penyimpanan lokal. Kebijakan ini memberikan percepatan lebih lanjut untuk data yang paling sering diakses. |
|
TEMP |
Data hanya memiliki satu cadangan lokal. Kebijakan ini menyediakan kinerja baca-tulis berkinerja-tinggi untuk data sementara tetapi mengurangi keandalan data. Kebijakan ini cocok untuk menyimpan dan mengakses data sementara. |
JindoFS menyediakan tool baris perintah Admin untuk mengonfigurasi kebijakan penyimpanan suatu direktori. Kebijakan penyimpanan default adalah WARM. File baru disimpan berdasarkan kebijakan penyimpanan yang dikonfigurasi untuk direktori induknya. Jalankan perintah berikut untuk mengonfigurasi kebijakan penyimpanan:
jindo dfsadmin -R -setStoragePolicy [path] [policy]
Jalankan perintah berikut untuk memperoleh kebijakan penyimpanan yang dikonfigurasi untuk suatu direktori:
jindo dfsadmin -getStoragePolicy [path]
Di sini, [path] menentukan path tempat Anda ingin mengatur kebijakan, dan -R menentukan bahwa kebijakan diterapkan secara rekursif ke semua subdirektori di bawah path yang ditentukan.
Gunakan tool Admin
Tool Admin JindoFS menyediakan perintah archive dan jindo.
-
Tool Admin menyediakan perintah archive untuk mengarsipkan data dingin.
Perintah ini memungkinkan Anda secara eksplisit menghapus blok lokal. Misalnya, jika Hive mempartisi tabel berdasarkan hari dan data yang dihasilkan seminggu lalu dalam tabel partisi jarang diakses, Anda dapat menjalankan perintah archive secara berkala pada direktori tempat data tersebut disimpan. Dengan demikian, cadangan yang tersimpan di kluster lokal akan dihapus, sedangkan cadangan di OSS tetap dipertahankan.
Jalankan perintah archive berikut:
jindo dfsadmin -archive [path]CatatanParameter [path] menentukan path direktori file yang akan diarsipkan.
-
Tool Admin menyediakan perintah jindo untuk mengelola metadata JindoFS untuk Namespace Service.
jindo dfsadmin [-options]CatatanAnda dapat menjalankan perintah
jindo dfsadmin --helpuntuk memperoleh informasi bantuan.
Tool Admin juga menyediakan perintah diff dan sync untuk mode cache.
-
Perintah diff terutama digunakan untuk menampilkan perbedaan antara data lokal dan data di sistem penyimpanan backend.
jindo dfsadmin -R -diff [path]CatatanSecara default, perintah ini membandingkan metadata subdirektori langsung di dalam
[path]yang ditentukan. Opsi-Rmembandingkan semua path di bawah[path]yang ditentukan secara rekursif. -
Perintah
syncmenyinkronkan metadata antara penyimpanan lokal dan backend.jindo dfsadmin -R -sync [path]CatatanParameter
[path]menentukan path yang akan disinkronkan. Secara default, hanya metadata subdirektori langsung dari[path]yang disinkronkan. Opsi-Rmenyinkronkan semua path di bawah[path]yang ditentukan secara rekursif.