HBase Architekstur: Kasus Penggunaan, Komponen & Model Data
โก Ringkasan Cerdas
Arsitektur HBase dibangun dari empat komponen yang saling berkoordinasi โ HMaster, Region Servers, ZooKeeper, dan HDFS โ yang menyimpan data dalam model berorientasi kolom, membaginya menjadi beberapa wilayah, dan melayani pembacaan dan penulisan acak dengan latensi rendah.

Apache HBase adalah basis data NoSQL terdistribusi dan berorientasi kolom yang berjalan di atas Hadoop dan Hadoop Distributed File System (HDFS). Arsitekturnya menggabungkan master koordinasi, server wilayah, dan ZooKeeper untuk menyimpan tabel yang sangat besar dan melayani pembacaan dan penulisan acak yang cepat.
HBase Architekstur dan Komponen Pentingnya
Arsitektur HBase memiliki komponen utama sebagai berikut:
- Guru
- Server Wilayah SDM
- HRegion
- Penjaga kebun binatang
- HDFS
Berikut ini adalah arsitektur HBase secara detail beserta komponen-komponennya, seperti yang ditunjukkan pada diagram.
Guru
HMaster di HBase adalah implementasi server Master dalam arsitektur HBase. Ia bertindak sebagai agen pemantauan untuk memantau semua instance Region Server yang ada di klaster dan bertindak sebagai antarmuka untuk semua perubahan metadata. Dalam lingkungan klaster terdistribusi, Master berjalan di NameNode. Master menjalankan beberapa thread latar belakang.
Berikut ini adalah peran-peran penting yang dilakukan oleh HMaster dalam HBase:
- Memainkan peran penting dalam hal kinerja dan pemeliharaan node di cluster.
- HMaster memberikan kinerja admin dan mendistribusikan layanan ke server wilayah berbeda.
- HMaster menetapkan wilayah ke server wilayah.
- HMaster mengontrol penyeimbangan beban dan failover untuk menangani beban pada node yang ada di dalam cluster.
- Ketika klien ingin mengubah skema atau operasi metadata apa pun, HMaster bertanggung jawab atas operasi tersebut.
Beberapa metode yang diekspos oleh antarmuka HMaster terutama merupakan metode yang berorientasi pada metadata:
- Tabel (buat Tabel, hapus Tabel, aktifkan, nonaktifkan)
- ColumnFamily (tambahkan Kolom, ubah Kolom)
- Wilayah (pindah, tetapkan)
Klien berkomunikasi secara dua arah dengan HMaster dan ZooKeeper. Untuk operasi baca dan tulis, klien langsung menghubungi server HRegion. HMaster menetapkan region ke server region dan, pada gilirannya, memeriksa status kesehatan server region.
Dalam keseluruhan arsitektur, kami memiliki beberapa server wilayah. Sebuah HLog terdapat di server wilayah tersebut, yang menyimpan semua file log.
Server Wilayah HBase
Ketika sebuah Region Server HBase menerima permintaan tulis dan baca dari klien, server tersebut menetapkan permintaan tersebut ke region tertentu, tempat keluarga kolom sebenarnya berada. Klien dapat langsung menghubungi server HRegion; tidak diperlukan izin HMaster wajib bagi klien untuk berkomunikasi dengan server HRegion. Klien hanya memerlukan bantuan HMaster ketika diperlukan operasi yang berkaitan dengan metadata dan perubahan skema.
HRegionServer adalah implementasi Region Server. Tugasnya adalah melayani dan mengelola region, atau data yang ada dalam klaster terdistribusi. Region server berjalan pada Data Node yang ada di klaster Hadoop.
HMaster dapat terhubung dengan beberapa server HRegion dan menjalankan fungsi-fungsi berikut:
- Menjadi tuan rumah dan mengelola wilayah
- Memisahkan wilayah secara otomatis
- Menangani permintaan baca dan tulis
- Berkomunikasi dengan klien secara langsung
Daerah HBase
HRegion adalah elemen pembangun dasar dari sebuah klaster HBase. HRegion terdiri dari distribusi tabel dan tersusun dari beberapa keluarga kolom. Sebuah region berisi beberapa store, satu untuk setiap keluarga kolom. Secara umum, region terdiri dari dua komponen: MemStore dan HFile.
Penjaga kebun binatang
HBase Penjaga kebun binatang ZooKeeper adalah server pemantauan terpusat yang memelihara informasi konfigurasi dan menyediakan sinkronisasi terdistribusi. Sinkronisasi terdistribusi mengkoordinasikan aplikasi terdistribusi yang berjalan di seluruh klaster, menyediakan layanan koordinasi antar node. Jika klien ingin berkomunikasi dengan region, klien harus menghubungi ZooKeeper terlebih dahulu.
Ini adalah proyek sumber terbuka, dan menyediakan banyak layanan penting.
Layanan yang disediakan oleh ZooKeeper:
- Memelihara informasi konfigurasi
- Menyediakan sinkronisasi terdistribusi
- Membangun komunikasi klien dengan server regional.
- Menyediakan node sementara yang mewakili server wilayah yang berbeda.
- Memungkinkan server Master menggunakan node sementara ini untuk menemukan server yang tersedia di dalam cluster.
- Trackegagalan server ks dan partisi jaringan
Node master dan node slave HBase (server region) mendaftarkan diri ke ZooKeeper. Klien memerlukan akses ke konfigurasi kuorum ZooKeeper (ZK) untuk terhubung dengan master dan server region.
Saat terjadi kegagalan pada node yang ada di klaster HBase, kuorum ZooKeeper akan memicu pesan kesalahan dan mulai memperbaiki node yang gagal.
HDFS
HDFS adalah sistem terdistribusi Hadoop. File SystemSesuai namanya, ia menyediakan lingkungan terdistribusi untuk penyimpanan, dan merupakan sistem file yang dirancang untuk berjalan pada perangkat keras standar. Ia menyimpan setiap file dalam beberapa blok, dan untuk menjaga toleransi kesalahan, blok-blok tersebut direplikasi di seluruh klaster Hadoop.
HDFS menyediakan tingkat toleransi kesalahan yang tinggi dan berjalan pada perangkat keras komoditas yang murah. Dengan menambahkan node ke klaster dan melakukan pemrosesan serta penyimpanan menggunakan perangkat keras komoditas yang murah, HDFS memberikan hasil yang lebih baik bagi klien dibandingkan dengan pengaturan yang ada.
Di sini, data yang tersimpan di setiap blok direplikasi di 3 node, sehingga jika ada node yang mati, tidak akan ada kehilangan data; sistem ini memiliki mekanisme pencadangan dan pemulihan yang memadai.
HDFS terhubung dengan komponen HBase dan menyimpan sejumlah besar data secara terdistribusi.
Model Data HBase
Model Data HBase adalah sekumpulan komponen yang terdiri dari Tabel, Baris, Keluarga Kolom, Sel, Kolom, dan Versi. Tabel HBase berisi keluarga kolom dan baris, dengan elemen yang didefinisikan sebagai kunci utama. Sebuah kolom dalam tabel model data HBase mewakili atribut dari objek.
Model Data HBase terdiri dari elemen-elemen berikut:
- Seperangkat tabel
- Setiap tabel dengan kelompok kolom dan baris
- Setiap tabel harus memiliki elemen yang didefinisikan sebagai kunci utama.
- Kunci baris bertindak sebagai kunci utama di HBase.
- Setiap akses ke tabel HBase menggunakan kunci utama ini.
- Setiap kolom yang ada di HBase menunjukkan atribut yang sesuai dengan suatu objek.
Kasus Penggunaan HBase
Berikut ini adalah contoh kasus penggunaan HBase beserta penjelasan rinci tentang solusi yang diberikan HBase untuk berbagai masalah teknis.
| Pernyataan Masalah | Solusi |
| Industri telekomunikasi menghadapi tantangan teknis berikut: menyimpan miliaran catatan log Call Detail Record (CDR) yang dihasilkan oleh domain telekomunikasi; menyediakan akses waktu nyata ke log CDR dan informasi penagihan pelanggan; dan menyediakan solusi yang hemat biaya dibandingkan dengan sistem basis data tradisional. | HBase digunakan untuk menyimpan miliaran baris rekaman panggilan terperinci. Jika 20 TB data ditambahkan per bulan ke basis data RDBMS yang ada, kinerjanya akan menurun. Untuk menangani sejumlah besar data dalam kasus penggunaan ini, HBase adalah solusi terbaik. HBase melakukan kueri cepat dan menampilkan rekaman. |
| Industri perbankan menghasilkan jutaan catatan setiap hari. Selain itu, industri perbankan juga membutuhkan solusi analitik yang dapat mendeteksi kecurangan dalam transaksi keuangan. | Untuk menyimpan, memproses, dan memperbarui data dalam jumlah besar serta melakukan analisis, solusi ideal adalah HBase yang terintegrasi dengan beberapa komponen ekosistem Hadoop. |
Selain itu, HBase dapat digunakan untuk:
- Kapan pun ada kebutuhan untuk aplikasi yang banyak melakukan operasi penulisan data.
- Untuk melakukan analisis log online dan menghasilkan laporan kepatuhan.
Mekanisme Penyimpanan di HBase
HBase adalah basis data berorientasi kolom, dan data disimpan dalam tabel. Tabel diurutkan berdasarkan RowId. Seperti yang ditunjukkan di bawah ini, HBase memiliki RowId, yang merupakan kumpulan beberapa keluarga kolom yang ada dalam tabel.
Keluarga kolom yang ada dalam skema adalah pasangan kunci-nilai. Jika kita amati secara detail, setiap keluarga kolom memiliki banyak kolom. Nilai kolom disimpan di memori disk. Setiap sel tabel memiliki metadata sendiri, seperti stempel waktu dan informasi lainnya.
Tata letak penyimpanan berorientasi kolom, dengan kunci baris, famili kolom, dan sel, ditunjukkan di bawah ini.
Berikut ini adalah istilah-istilah kunci yang mewakili skema tabel HBase:
- Tabel: Kumpulan baris yang ada.
- Baris: Kumpulan keluarga kolom.
- Keluarga Kolom: Kumpulan kolom.
- Kolom: Kumpulan pasangan kunci-nilai.
- Ruang nama: Grup logisping dari tabel.
- Sel: Sebuah tuple {baris, kolom, versi} yang secara tepat menentukan definisi sel di HBase.
Penyimpanan berorientasi kolom vs berorientasi baris
Penyimpanan berbasis kolom dan berbasis baris berbeda dalam mekanisme penyimpanannya. Seperti yang kita ketahui, model relasional tradisional menyimpan data dalam format berbasis baris, dalam hal baris data. Penyimpanan berbasis kolom menyimpan tabel data dalam hal kolom dan keluarga kolom.
Tabel berikut memberikan beberapa perbedaan utama antara kedua penyimpanan ini.
| Database berorientasi kolom | Basis Data Berorientasi Baris |
| Digunakan ketika situasi melibatkan pemrosesan dan analisis, seperti Pemrosesan Analitik Online dan aplikasinya. | Pemrosesan Transaksi Online, seperti di bidang perbankan dan keuangan, menggunakan pendekatan ini. |
| Jumlah data yang dapat disimpan dalam model ini sangat besar, dalam satuan petabyte. | Ini dirancang untuk sejumlah kecil baris dan kolom. |
Penjelasan Data Baca dan Tulis HBase
Operasi baca dan tulis dari klien ke dalam HFile ditunjukkan pada diagram di bawah ini.
Langkah 1) Klien ingin menulis data dan, pada gilirannya, pertama-tama berkomunikasi dengan Server Wilayah dan kemudian dengan wilayah-wilayah tersebut.
Langkah 2) Wilayah tersebut menghubungi MemStore untuk menyimpan data yang terkait dengan keluarga kolom.
Langkah 3) Pertama, data disimpan di MemStore, di mana data diurutkan, dan setelah itu data tersebut dimasukkan ke dalam HFile. Alasan utama penggunaan MemStore adalah untuk menyimpan data dalam sistem file terdistribusi berdasarkan kunci baris. MemStore ditempatkan di memori utama Region Server, sedangkan HFiles ditulis ke HDFS.
Langkah 4) Klien ingin membaca data dari wilayah-wilayah tersebut.
Langkah 5) Selanjutnya, klien dapat mengakses MemStore secara langsung dan dapat meminta data.
Langkah 6) Klien mengakses HFiles untuk mendapatkan data. Data diambil dan diproses oleh klien.
MemStore menyimpan modifikasi dalam memori pada penyimpanan. Hierarki objek dalam region HBase, dari atas ke bawah, ditunjukkan pada tabel di bawah ini.
| tabel | Tabel HBase ada di cluster HBase |
| Daerah | Wilayah untuk tabel yang disajikan |
| Toko | Menyimpan satu per kelompok kolom untuk setiap wilayah pada tabel. |
| MemStore | MemStore untuk setiap penyimpanan di setiap wilayah untuk tabel. Ini mengurutkan data sebelum dimasukkan ke dalam HFiles. Performa baca dan tulis meningkat karena pengurutan. |
| File Penyimpanan | StoreFiles untuk setiap toko untuk setiap wilayah untuk tabel |
| Memblokir | Blok ada di dalam StoreFiles |
HBase vs.HDFS
HBase berjalan di atas HDFS dan Hadoop. Beberapa perbedaan utama antara HDFS dan HBase terletak pada operasi dan pemrosesan data.
| HBase | HDFS |
| Operasi latensi rendah | Operasi latensi tinggi |
| Membaca dan menulis secara acak | Tulis sekali, baca berkali-kali |
| Diakses melalui perintah shell, sebuah API klien di Java, REST, Avro, atau Thrift | Terutama diakses melalui MapReduce (MR) pekerjaan |
| Baik penyimpanan maupun pemrosesan dapat dilakukan. | Ini hanya untuk area penyimpanan. |
Beberapa aplikasi industri TI umum menggunakan operasi HBase bersama dengan Hadoop. Aplikasi tersebut meliputi data bursa saham dan operasi data perbankan online, di mana HBase adalah solusi yang paling sesuai. Setelah klaster Anda siap, Anda dapat Membaca dan menulis data di HBase or instal HBase pada node baru.



