What is Apache HBase and when should you use it?

Tinjauan: Apache HBase can be defined as the Hadoop database. It is a distributed, non-relational and open source database written in Java. It is developed based on the Google BigTable framework and runs on HDFS (Hadoop distributed file system). Apache HBase is used when you have a requirement of random, real time access to your large volume of data. HBase is a suitable candidate when you have hundreds of millions or billions of rows and enough hardware to support it. As HBase is based on HDFS and HDFS performs well when there is minimum 5 data nodes. So in short, HBase is a ‘data warehouse’ type framework which is distributed and suitable for processing large volume of data.

In this article I will explain the details with architectural concepts.

Pengenalan: Apache HBase is a NoSQL column oriented database management system which runs on top of HDFS. HBase does not support structured query language like SQL. HBase applications are all MapReduce tasks and written in Java. HBase supports applications written in REST, Thrift and Avro. Some of the important features in HBase are listed below.

• HBase supports automatic sharding.
• HBase supports HDFS as its distributed storage.
• HBase supports MapReduce for parallel processing of huge volume of data.
• HBase has support for Java client APIs.
• HBase supports strongly consistent read and write operations. It is suitable for high speed counter aggregation.

Difference between HBase and HDFS: We have described that HBase is based on top of HDFS. So you might have confusion that HDFS and HBase similar. But you need to remember that HDFS is not a simple file system, rather it is a distributed storage suitable for storing large volume of data. HDFS does not support fast record look up for large volume of data. Tetapi HBase kerja-kerja di atas HDFS dan menyediakan cepat melihat dan maklumat.

Apabila anda perlu menggunakan HBase?
HBase adalah NoSQL dan data kolumnar kedai biasa. Pemilihan pangkalan data NoSQL dan RDBMS bergantung kepada keperluan permohonan. Jadi pertama, kita harus faham kehendak itu dengan jelas dan kemudian pilih pangkalan data. Jika anda hanya memilih NoSQL DB tanpa analisis yang betul maka ia mungkin menyebabkan masalah untuk anda. Dan ia juga akan menjadi satu penyalahgunaan teknologi dan sumber-sumber. Berikut adalah beberapa perkara yang perlu dipertimbangkan untuk memilih NoSQL DB seperti HBase.

Jumlah dagangan: Jumlah data adalah kriteria pertama untuk memilih NoSQL DB. Anda perlu mempunyai data yang tidak berkesudahan (berjuta-juta atau berbilion-bilion baris) kepada proses dan menyimpan. If you only have a few thousands or million of rows then traditional RDBMS is the best fit. But if you select HBase for a small amount of data then the data will accumulate in a single node and the other nodes in the cluster will sit idle.

Hardware support: HDFS performs efficiently when there are at least 5 data nodes. As we know that HBase is based on HDFS, so you should have sufficient hardware support for implementing HBase DB.

No need for RDBMS features: Make sure that your application does not require extra features provided by typical RDBMS. The advanced features like transaction, complex query, triggers are not supported by HBase. So this is another important criterion for selection.

HBase Design Concepts:
The design concepts behind HBase are similar to HDFS and MapReduce framework. Kerana semua kerja-kerja dalam persekitaran yang diedarkan, reka bentuk umum adalah berdasarkan kepada seni bina tuan-hamba. HDFS berfungsi pada NameNode dan hamba nod, MapReduce berfungsi pada JobTracker dan TaskTracker hamba. Begitu juga HBase mempunyai master seni bina hamba berikut.

  • Nod induk menguruskan kelompok.
  • Data Kedai meja pelayan rantau ini dan bekerja pada data.

Sebagai nod induk adalah pengawal utama, HBase sangat sensitif terhadap kehilangan nod tuannya.

HBase Views: HBase adalah mempunyai pandangan jadual untuk menyimpan data. Konsep utama adalah berdasarkan kepada keluarga lajur. Jadual HBase diperbuat daripada baris, tiang dan setiap lajur tergolong dalam keluarga lajur. Kunci baris jadual adalah kunci utama untuk akses jadual. Kunci berturut-turut boleh menjadi apa-apa dan baris yang disusun oleh kunci berturut-turut. Berikut adalah dua pandangan yang menerangkan konsep-konsep.

Lihat Conceptual: Dalam bahagian ini saya akan menerangkan pandangan konseptual dengan mengambil contoh. Jadual ini mengandungi keluarga lajur dan keluarga lajur mengandungi ruangan. Konvensyen ini adalah bahawa lajur diperbuat daripada tiga bahagian – ruangan nama keluarga, awalan dan ruangan nama. Watak kolon (:) delimits keluarga lajur dan lajur. Izinkan saya mengambil satu contoh, nama jadual adalah 'hbasetable’ mempunyai colfamily1 dua keluarga ruangan '’ and ‘colfamily2’. The 'colfamily1’ mempunyai nama dua tiang '’ dan 'alamat'. The 'colfamily2’ mempunyai satu lajur 'telno'. Jadi struktur itu akan seperti di bawah.

Jadual 'Hbasetable’

colfamily1: name = “Ricardo”

colfamily1: address = “MA, Amerika Syarikat”

colfamily2: telno = “2235678”

Pandangan jadual akan kelihatan seperti di bawah.

Row Utama Setem masa ColumnFamily colfamily1 ColumnFamily colfamily2
"Rowkey1" T1 colfamily2: telno = “2235678”
"Rowkey2" T2 colfamily2: telno = “9995678”
"Rowkey3" T3 colfamily2: telno = “8896578”
"Rowkey4" T4 colfamily1: name = “Ricardo”
"Rowkey5" T5 colfamily1: address = “MA, Amerika Syarikat”

Jadual 1: Pandangan jadual dari 'hbasetable'

Lihat fizikal: Kita telah membincangkan pandangan konsep jadual HBase dan kandungannya. Tetapi pandangan fizikal agak berbeza. Secara fizikal, jadual HBase disimpan secara lajur keluarga. Jadi ruangan baru boleh ditambah dengan mudah tanpa apa-apa notis terlebih dahulu. Ciri ini menambahkan fleksibiliti berskala linear yang kita telah dibincangkan sebelum ini.

Berikut adalah pandangan jadual dua keluarga lajur.

Row Utama Setem masa ColumnFamily colfamily1
"Rowkey4" T4 colfamily1: name = “Ricardo”
"Rowkey5" T5 colfamily1: address = “MA, Amerika Syarikat”

Table2: Menunjukkan colfamily1

 

Row Utama Setem masa ColumnFamily colfamily2
"Rowkey1" T1 colfamily2: telno = “2235678”
"Rowkey2" T2 colfamily2: telno = “9995678”
"Rowkey3" T3 colfamily2: telno = “8896578”

Table3: Menunjukkan colfamily2

Sila ambil perhatian bahawa sel-sel kosong dipaparkan dalam paparan konsep sebenarnya tidak disimpan. Menyimpan hanya dibenarkan untuk struktur simpanan berorientasikan ruangan. Jadi, jika kita bertanya beberapa data di setem masa tertentu 'T1’ from ‘colfamily1’, maka ia akan kembali apa-apa. Yang sama ia benar untuk 'colfamily2’ juga, semua setem masa disimpan dalam susunan menurun. Nilai yang begitu terkini dari lajur tertentu akan dikembalikan jika tiada cap masa yang disebut dalam pertanyaan.

Kesimpulan: Sebelum mengakhiri perbincangan, kita harus ingat bahawa HBase adalah sumber terbuka, NoSQL diagihkan pangkalan data sesuai untuk menyimpan dan memproses jumlah yang tidak berkesudahan data. Ia dibangunkan di bawah projek Apache Hadoop dan berdasarkan rangka kerja HDFS. Operasi HBase semua tugas-tugas MapReduce yang berjalan dengan cara yang selari. Konsep asas adalah sama seperti Bigtable Google. Pemilihan pangkalan data NoSQL perlu dilakukan dengan berhati-hati. Reka bentuk RDBMS dan NoSQL reka bentuk benar-benar berbeza supaya peralihan data dari RDBMS untuk HBase tidak mungkin. Seluruh reka bentuk perlu diubah untuk beralih daripada RDBMS untuk NoSQL HBase.

Tagged on:
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share