Baik HBase dan HDFS dalam satu gambar
catatan:
Periksa iblis HDFS (Highlighted in green) seperti DataNode (collocated Region Server) dan NameNode di cluster dengan memiliki HBase dan Hadoop HDFS
HDFS adalah sistem file terdistribusi yang sangat cocok untuk penyimpanan file besar. yang tidak menyediakan pencarian catatan cepat individu dalam file.
HBase , di sisi lain, dibangun di atas HDFS dan menyediakan pencarian catatan cepat (dan pembaruan) untuk tabel besar. Ini kadang-kadang bisa menjadi titik kebingungan konseptual. HBase secara internal menempatkan data Anda di "StoreFiles" yang diindeks yang ada pada HDFS untuk pencarian berkecepatan tinggi.
Bagaimana ini terlihat?
Nah, pada tingkat infrastruktur, setiap mesin salep di kluster memiliki setan berikut
- Server Wilayah - HBase
- Node Data - HDFS
Bagaimana cara cepat dengan pencarian?
HBase mencapai pencarian cepat pada HDFS (kadang-kadang sistem file terdistribusi lainnya juga) sebagai penyimpanan yang mendasarinya, menggunakan model data berikut
Meja
- Tabel HBase terdiri dari beberapa baris.
Baris
- Baris dalam HBase terdiri dari kunci baris dan satu atau lebih kolom dengan nilai yang terkait dengannya. Baris diurutkan berdasarkan abjad dengan kunci baris saat disimpan. Untuk alasan ini, desain kunci baris sangat penting. Tujuannya adalah untuk menyimpan data sedemikian rupa sehingga baris terkait saling berdekatan. Pola kunci baris yang umum adalah domain situs web. Jika kunci baris Anda adalah domain, Anda mungkin harus menyimpannya secara terbalik (org.apache.www, org.apache.mail, org.apache.jira). Dengan cara ini, semua domain Apache berdekatan satu sama lain dalam tabel, daripada disebarkan berdasarkan huruf pertama dari subdomain.
Kolom
- Kolom dalam HBase terdiri dari keluarga kolom dan kualifikasi kolom, yang dibatasi oleh karakter: (titik dua).
Keluarga Kolom
- Keluarga kolom secara fisik menempatkan satu set kolom dan nilai-nilainya, seringkali karena alasan kinerja. Setiap keluarga kolom memiliki seperangkat properti penyimpanan, seperti apakah nilainya harus di-cache dalam memori, bagaimana datanya dikompresi atau kunci barisnya disandikan, dan lainnya. Setiap baris dalam tabel memiliki keluarga kolom yang sama, meskipun baris yang diberikan mungkin tidak menyimpan apa pun dalam keluarga kolom yang diberikan.
Kualifikasi Kolom
- Kualifikasi kolom ditambahkan ke keluarga kolom untuk memberikan indeks untuk sepotong data tertentu. Diberikan konten keluarga kolom, kualifikasi kolom mungkin konten: html dan lainnya mungkin konten: pdf. Meskipun keluarga kolom ditetapkan pada pembuatan tabel, kualifikasi kolom bisa berubah dan mungkin sangat berbeda di antara baris.
Sel
- Sel adalah kombinasi baris, kumpulan kolom, dan kualifikasi kolom, dan berisi nilai dan stempel waktu, yang mewakili versi nilai.
Stempel waktu
- Stempel waktu ditulis di samping setiap nilai dan merupakan pengidentifikasi untuk versi nilai yang diberikan. Secara default, cap waktu menunjukkan waktu pada RegionServer saat data ditulis, tetapi Anda dapat menentukan nilai cap waktu yang berbeda saat Anda memasukkan data ke dalam sel.
Alur permintaan baca klien:
Apa tabel meta pada gambar di atas?
Setelah semua informasi, HBase read flow adalah untuk pencarian sentuhan entitas ini
- Pertama, pemindai mencari sel Row di cache Block - read-cache. Nilai-nilai Kunci Baca Baru-baru ini di-cache di sini, dan Paling Baru-baru Ini Digunakan diusir ketika memori diperlukan.
- Selanjutnya, pemindai terlihat di MemStore , cache tulis di memori yang berisi penulisan terbaru.
- Jika pemindai tidak menemukan semua sel baris di MemStore dan Block Cache, maka HBase akan menggunakan indeks Block Cache dan filter bloom untuk memuat HFiles ke dalam memori, yang mungkin berisi sel-sel baris target.
sumber dan informasi lebih lanjut:
- Model data HBase
- Arsitek HBase