Di E-MapReduce (EMR) V3.27.0 dan versi lebih baru, Anda dapat menggunakan Raft-RocksDB-Tablestore untuk menyimpan metadata yang dikelola oleh Namespace Service dari JindoFS. Saat membuat kluster EMR JindoFS, buat tiga Node master dan deploy instance Raft pada Node tersebut. Setiap peer node dari instance Raft menggunakan Raft-RocksDB lokal untuk menyimpan metadata.
Prasyarat
- Sebuah instance Tablestore telah dibuat. Kami merekomendasikan penggunaan instance berperforma tinggi. Untuk informasi lebih lanjut, lihat Buat Instance. Catatan Anda harus mengaktifkan fitur transaksi.
- Sebuah kluster EMR dengan tiga Node master telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kluster.

Informasi latar belakang
RocksDB mendukung replikasi data di antara tiga node berdasarkan protokol Raft. Anda dapat mengaitkan kluster EMR dengan instance Tablestore dan menggunakan instance Tablestore sebagai media penyimpanan tambahan untuk Namespace Service dari JindoFS. EMR secara asinkron mengunggah metadata dari RocksDB lokal ke instance Tablestore secara real-time.

Konfigurasikan instance Raft sebagai backend penyimpanan lokal
- Hentikan semua komponen SmartData dari kluster EMR.
- Masuk ke Konsol EMR Alibaba Cloud.
- Di bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih grup sumber daya sesuai kebutuhan bisnis Anda.
- Klik tab Cluster Management.
- Pada halaman Cluster Management, temukan kluster Anda dan klik Details di kolom Tindakan.
- Di panel navigasi sebelah kiri, pilih .
- Pilih Stop All Components dari daftar drop-down di pojok kanan atas.
- Masuk ke Konsol EMR Alibaba Cloud.
- Konfigurasikan parameter Layanan Namespace sesuai kebutuhan bisnis Anda.Untuk informasi lebih lanjut, lihat Gunakan JindoFS dalam Mode Penyimpanan Blok.
- Pergi ke tab bigboot untuk layanan SmartData.
- Di panel navigasi sebelah kiri, pilih .
- Klik tab Configure.
- Di bagian Service Configuration, klik tab bigboot.
- Konfigurasikan parameter yang dijelaskan dalam tabel berikut pada tab bigboot.
Parameter Deskripsi Contoh namespace.backend.type Jenis penyimpanan backend dari Layanan Namespace. - rocksdb
- ots
- raft
Nilai default: rocksdb. Atur parameter ini ke raft.
raft namespace.backend.raft.initial-conf Alamat dari tiga Node master tempat instance Raft dideploy. Nilainya tetap. emr-header-1:8103:0,emr-header-2:8103:0,emr-header-3:8103:0 jfs.namespace.server.rpc-address Alamat dari tiga Node master yang digunakan oleh klien untuk mengakses instance Raft. Nilainya tetap. emr-header-1:8101,emr-header-2:8101,emr-header-3:8101 Catatan Jika Anda tidak perlu menggunakan Tablestore untuk penyimpanan jarak jauh, lewati Langkah 5. - Opsional:Konfigurasikan instance Tablestore sebagai backend penyimpanan asinkron jarak jauh.Pada tab bigboot untuk layanan SmartData, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
Parameter Deskripsi Contoh namespace.ots.instance Nama instance Tablestore. emr-jfs namespace.ots.accessKey ID AccessKey yang digunakan untuk mengakses instance Tablestore. kkkkkk namespace.ots.accessSecret Rahasia AccessKey yang digunakan untuk mengakses instance Tablestore. XXXXXX namespace.ots.endpoint Titik akhir instance Tablestore. Kami merekomendasikan Anda menggunakan titik akhir VPC. http://emr-jfs.cn-hangzhou.vpc.tablestore.aliyuncs.com namespace.backend.raft.async.ots.enabled Menentukan apakah akan mengaktifkan unggah asinkron ke Tablestore. Nilai valid: - true
- false
Atur parameter ini ke true. Pastikan inisialisasi layanan SmartData belum selesai.Catatan Jika inisialisasi selesai, pengaturan tidak akan berlaku karena metadata telah dibuat di RocksDB lokal.true - Simpan konfigurasi.
- Di pojok kanan atas bagian Konfigurasi Layanan, klik Save.
- Di kotak dialog Confirm Changes, tentukan Deskripsi dan aktifkan Auto-update Configuration.
- Klik OK.
- Pilih Start All Components dari daftar drop-down di pojok kanan atas.
Pemulihan metadata dari instance Tablestore
Jika Anda telah mengonfigurasi instance Tablestore sebagai backend penyimpanan asinkron jarak jauh untuk kluster EMR Anda, salinan lengkap metadata JindoFS disimpan di instance Tablestore. Setelah Anda menghentikan atau melepaskan kluster EMR, Anda dapat memulihkan metadata JindoFS dari instance Tablestore ke kluster EMR baru. Dengan cara ini, Anda dapat mengakses file asli dari kluster EMR baru.
- Opsional:Persiapkan pemulihan.
- Opsional:Kumpulkan statistik metadata dari kluster EMR asli. Statistik metadata menunjukkan jumlah file dan folder.
hadoop fs -count jfs://test/ 1596 1482809 25 jfs://test/ (Jumlah folder) (Jumlah file) - Hentikan pekerjaan yang sedang berjalan di kluster EMR asli. Anda mungkin perlu menunggu 30 hingga 120 detik agar EMR menyinkronkan semua metadata kluster ke instance Tablestore. Jalankan perintah berikut untuk melihat status metadata. Jika keluaran perintah berisi
_synced=1untuk node LEADER, metadata terbaru telah disinkronkan ke instance Tablestore.jindo jfs -metaStatus -detail
- Hentikan atau lepaskan kluster EMR asli dan pastikan tidak ada kluster yang mengakses instance Tablestore.
- Opsional:Kumpulkan statistik metadata dari kluster EMR asli. Statistik metadata menunjukkan jumlah file dan folder.
- Buat kluster EMR.Buat kluster EMR yang berada di wilayah yang sama dengan instance Tablestore. Hentikan semua komponen SmartData. Untuk informasi lebih lanjut, lihat Langkah 1 dalam Konfigurasikan Instance Raft sebagai Backend Penyimpanan Lokal.
- Konfigurasikan parameter untuk pemulihan metadata.Pada tab bigboot untuk layanan SmartData, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
Parameter Deskripsi Nilai wajib namespace.backend.raft.async.ots.enabled Menentukan apakah akan mengaktifkan unggah asinkron ke Tablestore. Nilai valid: - true
- false
false namespace.backend.raft.recovery.mode Menentukan apakah akan mengaktifkan pemulihan metadata dari Tablestore. Nilai valid: - true
- false
true - Simpan konfigurasi.
- Di pojok kanan atas bagian Konfigurasi Layanan, klik Save.
- Dalam kotak dialog Confirm Changes, tentukan Deskripsi dan aktifkan opsi Auto-update Configuration.
- Klik OK.
- Pilih Start All Components dari daftar drop-down di pojok kanan atas.
- Setelah layanan SmartData dari kluster EMR baru diaktifkan, EMR secara otomatis memulihkan metadata dari instance Tablestore ke Raft-RocksDB lokal. Anda dapat menjalankan perintah berikut untuk melihat kemajuan pemulihan:
jindo jfs -metaStatus -detailJika status node LEADER adalah FINISH, pemulihan selesai, seperti ditunjukkan pada gambar berikut.
- Opsional:Periksa apakah jumlah file dan folder dari kluster EMR baru konsisten dengan kluster EMR asli.Kluster EMR baru berada dalam mode pemulihan dan hanya-baca.
# Hitung jumlah file dan folder untuk kluster EMR baru. Hasilnya konsisten dengan kluster EMR asli. [hadoop@emr-header-1 ~]$ hadoop fs -count jfs://test/ 1596 1482809 25 jfs://test/ # Gunakan perintah CAT atau GET untuk membaca data dari file. [hadoop@emr-header-1 ~]$ hadoop fs -cat jfs://test/testfile this is a test file # Lihat direktori file. [hadoop@emr-header-1 ~]$ hadoop fs -ls jfs://test/ Found 3 items drwxrwxr-x - root root 0 2020-03-25 14:54 jfs://test/emr-header-1.cluster-50087 -rw-r----- 1 hadoop hadoop 5 2020-03-25 14:50 jfs://test/haha-12096RANDOM.txt -rw-r----- 1 hadoop hadoop 20 2020-03-25 15:07 jfs://test/testfile # Hapus file. Kesalahan hanya-baca dikembalikan. [hadoop@emr-header-1 ~]$ hadoop fs -rm jfs://test/testfile java.io.IOException: ErrorCode : 25021 , ErrorMsg: Namespace is under recovery mode, and is read-only. - Aktifkan unggah asinkron ke Tablestore dan nonaktifkan pemulihan dari Tablestore.Pada tab bigboot untuk layanan SmartData, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
Parameter Deskripsi Nilai wajib namespace.backend.raft.async.ots.enabled Menentukan apakah akan mengaktifkan unggah asinkron ke Tablestore. Nilai valid: - true
- false
true namespace.backend.raft.recovery.mode Menentukan apakah akan mengaktifkan pemulihan metadata dari Tablestore. Nilai valid: - true
- false
false - Mulai ulang kluster EMR baru.
- Klik tab Cluster Management.
- Pada halaman Cluster Management, temukan kluster. Di kolom Tindakan kluster ini, klik More dan pilih .
- Klik tab Cluster Management.