全部产品
Search
文档中心

E-MapReduce:Gunakan Raft-RocksDB-Tablestore untuk menyimpan metadata

更新时间:Jul 06, 2025

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.3 Master

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.

Gambar berikut menunjukkan arsitektur Raft-RocksDB-Tablestore dengan ketersediaan tinggi untuk Namespace Service.Raft + RocksDB + Tablestore

Konfigurasikan instance Raft sebagai backend penyimpanan lokal

  1. Hentikan semua komponen SmartData dari kluster EMR.
    1. Masuk ke Konsol EMR Alibaba Cloud.
    2. Di bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih grup sumber daya sesuai kebutuhan bisnis Anda.
    3. Klik tab Cluster Management.
    4. Pada halaman Cluster Management, temukan kluster Anda dan klik Details di kolom Tindakan.
    5. Di panel navigasi sebelah kiri, pilih Cluster Service > SmartData.
    6. Pilih Stop All Components dari daftar drop-down Actions di pojok kanan atas.
  2. Konfigurasikan parameter Layanan Namespace sesuai kebutuhan bisnis Anda.
    Untuk informasi lebih lanjut, lihat Gunakan JindoFS dalam Mode Penyimpanan Blok.
  3. Pergi ke tab bigboot untuk layanan SmartData.
    1. Di panel navigasi sebelah kiri, pilih Cluster Service > SmartData.
    2. Klik tab Configure.
    3. Di bagian Service Configuration, klik tab bigboot.
  4. Konfigurasikan parameter yang dijelaskan dalam tabel berikut pada tab bigboot.
    ParameterDeskripsiContoh
    namespace.backend.typeJenis penyimpanan backend dari Layanan Namespace.
    • rocksdb
    • ots
    • raft

    Nilai default: rocksdb. Atur parameter ini ke raft.

    raft
    namespace.backend.raft.initial-confAlamat 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-addressAlamat 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.
  5. Opsional:Konfigurasikan instance Tablestore sebagai backend penyimpanan asinkron jarak jauh.
    Pada tab bigboot untuk layanan SmartData, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
    ParameterDeskripsiContoh
    namespace.ots.instanceNama instance Tablestore.emr-jfs
    namespace.ots.accessKeyID AccessKey yang digunakan untuk mengakses instance Tablestore.kkkkkk
    namespace.ots.accessSecretRahasia AccessKey yang digunakan untuk mengakses instance Tablestore.XXXXXX
    namespace.ots.endpointTitik akhir instance Tablestore. Kami merekomendasikan Anda menggunakan titik akhir VPC.http://emr-jfs.cn-hangzhou.vpc.tablestore.aliyuncs.com
    namespace.backend.raft.async.ots.enabledMenentukan 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
  6. Simpan konfigurasi.
    1. Di pojok kanan atas bagian Konfigurasi Layanan, klik Save.
    2. Di kotak dialog Confirm Changes, tentukan Deskripsi dan aktifkan Auto-update Configuration.
    3. Klik OK.
  7. Pilih Start All Components dari daftar drop-down Actions 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.

  1. Opsional:Persiapkan pemulihan.
    1. 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)
    2. 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=1 untuk node LEADER, metadata terbaru telah disinkronkan ke instance Tablestore.
      jindo jfs -metaStatus -detail
      View metadata status
    3. Hentikan atau lepaskan kluster EMR asli dan pastikan tidak ada kluster yang mengakses instance Tablestore.
  2. 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.
  3. Konfigurasikan parameter untuk pemulihan metadata.
    Pada tab bigboot untuk layanan SmartData, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
    ParameterDeskripsiNilai wajib
    namespace.backend.raft.async.ots.enabledMenentukan apakah akan mengaktifkan unggah asinkron ke Tablestore. Nilai valid:
    • true
    • false
    false
    namespace.backend.raft.recovery.modeMenentukan apakah akan mengaktifkan pemulihan metadata dari Tablestore. Nilai valid:
    • true
    • false
    true
  4. Simpan konfigurasi.
    1. Di pojok kanan atas bagian Konfigurasi Layanan, klik Save.
    2. Dalam kotak dialog Confirm Changes, tentukan Deskripsi dan aktifkan opsi Auto-update Configuration.
    3. Klik OK.
  5. Pilih Start All Components dari daftar drop-down Actions di pojok kanan atas.
  6. 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 -detail
    Jika status node LEADER adalah FINISH, pemulihan selesai, seperti ditunjukkan pada gambar berikut.View recovery progress
  7. 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.
  8. Aktifkan unggah asinkron ke Tablestore dan nonaktifkan pemulihan dari Tablestore.
    Pada tab bigboot untuk layanan SmartData, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
    ParameterDeskripsiNilai wajib
    namespace.backend.raft.async.ots.enabledMenentukan apakah akan mengaktifkan unggah asinkron ke Tablestore. Nilai valid:
    • true
    • false
    true
    namespace.backend.raft.recovery.modeMenentukan apakah akan mengaktifkan pemulihan metadata dari Tablestore. Nilai valid:
    • true
    • false
    false
  9. Mulai ulang kluster EMR baru.
    1. Klik tab Cluster Management.
    2. Pada halaman Cluster Management, temukan kluster. Di kolom Tindakan kluster ini, klik More dan pilih Restart.