HBaz Archidoku: Kullanım Durumları, Bileşenler ve Veri Modeli
⚡ Akıllı Özet
HBase mimarisi, verileri sütun odaklı bir modelde depolayan, bölgelere ayıran ve düşük gecikmeli rastgele okuma ve yazma işlemleri sağlayan dört koordineli bileşenden (HMaster, Bölge Sunucuları, ZooKeeper ve HDFS) oluşur.

Apache HBase, dağıtık, sütun tabanlı bir NoSQL veritabanıdır ve şu altyapı üzerinde çalışır: Hadoop'un ve Hadoop Dağıtılmış Dosya Sistemi (HDFS). Mimari yapısı, çok büyük tabloları depolamak ve hızlı rastgele okuma ve yazma işlemleri sağlamak için bir koordinasyon ana sunucusu, bölge sunucuları ve ZooKeeper'ı bir araya getirir.
HBaz ArchiYapı ve Önemli Bileşenleri
HBase mimarisi aşağıdaki ana bileşenlerden oluşmaktadır:
- Usta
- HBölgeSunucusu
- HBölgeler
- hayvan bakıcısı
- HDFS
Aşağıda, şemada gösterildiği gibi, HBase'in bileşenleriyle birlikte ayrıntılı mimarisi yer almaktadır.
Usta
HBase'deki HMaster, HBase mimarisinde bir Master sunucusunun uygulamasıdır. Kümede bulunan tüm Bölge Sunucusu örneklerini izlemek için bir izleme aracı görevi görür ve tüm meta veri değişiklikleri için bir arayüz görevi görür. Dağıtılmış bir küme ortamında, Master, NameNode üzerinde çalışır. Master, arka planda çeşitli iş parçacıkları çalıştırır.
Aşağıda HMaster'ın HBase'deki önemli rolleri yer almaktadır:
- Performans ve kümedeki düğümlerin bakımı açısından hayati bir rol oynar.
- HMaster, yönetici performansı sağlar ve hizmetleri farklı bölge sunucularına dağıtır.
- HMaster bölgeleri bölge sunucularına atar.
- HMaster, kümedeki düğümler arasında yükü dengelemek ve yük devretmeyi yönetmek için yük dengeleme ve arıza durumunda yedekleme işlemlerini kontrol eder.
- Bir istemci herhangi bir şema veya meta veri işlemini değiştirmek istediğinde, bu işlemlerin sorumluluğunu HMaster üstlenir.
HMaster arayüzü tarafından sunulan yöntemlerden bazıları öncelikle meta veri odaklı yöntemlerdir:
- Tablo (createTable, RemoveTable, etkinleştirme, devre dışı bırakma)
- ColumnFamily (Sütun ekleyin, Sütunu değiştirin)
- Bölge (taşıma, atama)
İstemci, hem HMaster hem de ZooKeeper ile çift yönlü iletişim kurar. Okuma ve yazma işlemleri için doğrudan HRegion sunucularıyla bağlantı kurar. HMaster, bölgeleri bölge sunucularına atar ve sırayla bölge sunucularının sağlık durumunu kontrol eder.
Tüm mimaride birden fazla bölge sunucumuz bulunmaktadır. Bölge sunucularında, tüm günlük dosyalarını depolayan bir HLog mevcuttur.
HBase Bölge Sunucuları
Bir HBase Bölge Sunucusu, istemciden yazma ve okuma istekleri aldığında, isteği, gerçek sütun ailesinin bulunduğu belirli bir bölgeye atar. İstemci, HRegion sunucularıyla doğrudan iletişim kurabilir; istemcinin HRegion sunucularıyla iletişim kurması için zorunlu HMaster iznine gerek yoktur. İstemci, yalnızca meta veri ve şema değişiklikleriyle ilgili işlemler gerektiğinde HMaster yardımına ihtiyaç duyar.
HRegionServer, Bölge Sunucusu uygulamasıdır. Dağıtılmış bir kümede bulunan verileri veya bölgeleri sunmaktan ve yönetmekten sorumludur. Bölge sunucuları, Hadoop kümesinde bulunan Veri Düğümlerinde çalışır.
HMaster, birden fazla HRegion sunucusuyla iletişim kurabilir ve aşağıdaki işlevleri yerine getirir:
- Bölgeleri barındırma ve yönetme
- Bölgeleri otomatik olarak bölme
- Okuma ve yazma isteklerinin işlenmesi
- Müşteriyle doğrudan iletişim kurmak
HBase Bölgeleri
HRegion'lar, bir HBase kümesinin temel yapı taşlarıdır. Tabloların dağılımından oluşurlar ve sütun ailelerini içerirler. Bir bölge, her sütun ailesi için bir tane olmak üzere birden fazla depolama alanı içerir. Esas olarak iki bileşenden oluşur: MemStore ve HFile.
hayvan bakıcısı
HBaz hayvan bakıcısı Merkezi bir izleme sunucusudur ve yapılandırma bilgilerini korur ve dağıtılmış senkronizasyon sağlar. Dağıtılmış senkronizasyon, küme genelinde çalışan dağıtılmış uygulamaları koordine eder ve düğümler arasında koordinasyon hizmetleri sağlar. İstemci bölgelerle iletişim kurmak istiyorsa, öncelikle ZooKeeper'a başvurmalıdır.
Bu açık kaynaklı bir projedir ve birçok önemli hizmet sunmaktadır.
ZooKeeper tarafından sağlanan hizmetler:
- Yapılandırma bilgilerini korur.
- Dağıtılmış senkronizasyon sağlar
- Bölge sunucularıyla istemci iletişimini kurar.
- Farklı bölge sunucularını temsil eden geçici düğümler sağlar.
- Ana sunucunun kümedeki kullanılabilir sunucuları keşfetmek için bu geçici düğümleri kullanmasına izin verir.
- Tracks sunucu arızası ve ağ bölümlendirmeleri
Ana ve HBase bağımlı düğümleri (bölge sunucuları) kendilerini ZooKeeper'a kaydederler. İstemcinin, ana ve bölge sunucularına bağlanabilmesi için ZooKeeper (ZK) quorum yapılandırmasına erişmesi gerekir.
HBase kümesinde bulunan düğümlerden birinde arıza meydana geldiğinde, ZooKeeper quorum'u hata mesajları tetikler ve arızalı düğümleri onarmaya başlar.
HDFS
HDFS, Hadoop Dağıtılmış Veritabanı'dır. dosya SistemiAdından da anlaşılacağı gibi, depolama için dağıtılmış bir ortam sağlar ve standart donanımlar üzerinde çalışmak üzere tasarlanmış bir dosya sistemidir. Her dosyayı birden fazla blokta depolar ve hata toleransını korumak için bloklar bir Hadoop kümesi genelinde çoğaltılır.
HDFS, yüksek düzeyde hata toleransı sağlar ve ucuz, standart donanımlar üzerinde çalışır. Küme yapısına düğümler ekleyerek ve işlemeyi ve depolamayı ucuz, standart donanımlar kullanarak gerçekleştirerek, mevcut kuruluma kıyasla müşteriye daha iyi sonuçlar sunar.
Burada, her blokta depolanan veriler 3 düğüm arasında çoğaltılır, bu nedenle herhangi bir düğüm devre dışı kalırsa veri kaybı olmaz; düzgün bir yedekleme ve kurtarma mekanizmasına sahiptir.
HDFS, HBase bileşenleriyle bağlantı kurar ve büyük miktarda veriyi dağıtılmış bir şekilde depolar.
HBase Veri Modeli
HBase Veri Modeli, Tablolar, Satırlar, Sütun aileleri, Hücreler, Sütunlar ve Sürümlerden oluşan bir bileşen kümesidir. HBase tabloları, birincil anahtar olarak tanımlanan öğelerle birlikte sütun aileleri ve satırlar içerir. HBase veri modeli tablosundaki bir sütun, nesnelerin bir özelliğini temsil eder.
HBase Veri Modeli aşağıdaki unsurlardan oluşmaktadır:
- Tablo seti
- Sütun aileleri ve satırları içeren her tablo
- Her tabloda birincil anahtar olarak tanımlanmış bir öğe bulunmalıdır.
- HBase'de satır anahtarı birincil anahtar görevi görür.
- HBase tablolarına yapılan tüm erişimler bu birincil anahtarı kullanır.
- HBase'de bulunan her sütun, bir nesneye karşılık gelen bir özelliği belirtir.
HBase Kullanım Durumları
Aşağıda, HBase'in çeşitli teknik sorunlara sunduğu çözümlerin ayrıntılı açıklamalarıyla birlikte HBase kullanım örnekleri yer almaktadır.
| Sorun bildirimi | Çözüm |
| Telekomünikasyon sektörü şu teknik zorluklarla karşı karşıyadır: telekomünikasyon alanında üretilen milyarlarca Çağrı Detay Kaydı (CDR) kaydını depolamak; müşterilerin CDR kayıtlarına ve faturalama bilgilerine gerçek zamanlı erişim sağlamak; ve geleneksel veritabanı sistemlerine kıyasla maliyet etkin bir çözüm sunmak. | HBase, milyarlarca satır ayrıntılı çağrı kaydı depolamak için kullanılır. Mevcut RDBMS veritabanına ayda 20 TB veri eklenirse, performans düşecektir. Bu kullanım durumunda büyük miktarda veriyi işlemek için HBase en iyi çözümdür. HBase hızlı sorgulama gerçekleştirir ve kayıtları görüntüler. |
| Bankacılık sektörü günlük olarak milyonlarca kayıt üretmektedir. Buna ek olarak, bankacılık sektörünün para işlemlerindeki dolandırıcılığı tespit edebilecek bir analiz çözümüne de ihtiyacı vardır. | Büyük veri hacimlerini depolamak, işlemek, güncellemek ve analiz yapmak için ideal çözüm, Hadoop ekosisteminin çeşitli bileşenleriyle entegre edilmiş HBase'dir. |
Bunun dışında, HBase şu amaçlarla da kullanılabilir:
- Yoğun yazma işlemleri gerektiren uygulamalara ihtiyaç duyulduğu her durumda.
- Çevrimiçi günlük analizleri yapmak ve uyumluluk raporları oluşturmak için.
HBase'de Depolama Mekanizması
HBase, sütun odaklı bir veritabanıdır ve veriler tablolarda saklanır. Tablolar RowId'ye göre sıralanır. Aşağıda gösterildiği gibi, HBase'in bir RowId'si vardır; bu, tabloda bulunan çeşitli sütun ailelerinin bir koleksiyonudur.
Şemada bulunan sütun aileleri anahtar-değer çiftleridir. Detaylı incelendiğinde, her sütun ailesinin birden fazla sütunu olduğu görülmektedir. Sütun değerleri disk belleğinde saklanır. Tablonun her hücresinin, zaman damgası ve diğer bilgiler gibi kendi meta verileri vardır.
Aşağıda, satır anahtarları, sütun aileleri ve hücrelerden oluşan sütun odaklı depolama düzeni gösterilmektedir.
Aşağıda, bir HBase tablo şemasını temsil eden temel terimler yer almaktadır:
- Tablo: Mevcut satırların koleksiyonu.
- Satır: Sütun ailelerinin koleksiyonu.
- Sütun Ailesi: Sütunlar topluluğu.
- Sütun: Anahtar-değer çiftlerinin koleksiyonu.
- Ad alanı: Mantıksal grupping tabloların.
- Hücre: HBase'de bir hücre tanımını tam olarak belirten {satır, sütun, sürüm} demeti.
Sütun odaklı ve Satır odaklı depolamalar
Sütun odaklı ve satır odaklı veritabanları, depolama mekanizmaları bakımından farklılık gösterir. Hepimizin bildiği gibi, geleneksel ilişkisel modeller verileri satır tabanlı bir biçimde, veri satırları şeklinde depolar. Sütun odaklı veritabanları ise veri tablolarını sütunlar ve sütun aileleri şeklinde depolar.
Aşağıdaki tabloda bu iki depolama türü arasındaki bazı temel farklılıklar verilmiştir.
| Sütun Odaklı Veritabanı | Satır Odaklı Veritabanı |
| Çevrimiçi Analitik İşleme ve uygulamaları gibi işleme ve analiz gerektiren durumlarda kullanılır. | Bankacılık ve finans alanları gibi çevrimiçi işlem süreçleri bu yaklaşımı kullanmaktadır. |
| Bu modelde depolanabilen veri miktarı petabayt cinsinden çok büyüktür. | Az sayıda satır ve sütun için tasarlanmıştır. |
HBase Okuma ve Yazma Verilerinin Açıklaması
İstemci tarafından HFile'a yapılan okuma ve yazma işlemleri aşağıdaki şemada gösterilmiştir.
Adım 1) İstemci veri yazmak istiyor ve bunun için önce Bölge Sunucusu ile, ardından da bölgelerle iletişim kuruyor.
Adım 2) Bölge, sütun ailesiyle ilişkili verileri depolamak için MemStore ile iletişime geçer.
3. Adım) İlk olarak, veriler MemStore'da depolanır, burada sıralanır ve daha sonra HFile'a yazılır. MemStore'un kullanılmasının temel nedeni, verileri satır anahtarına dayalı olarak dağıtılmış bir dosya sisteminde depolamaktır. MemStore, Bölge Sunucusu ana belleğinde yer alırken, HFiles HDFS'ye yazılır.
Adım 4) Müşteri, bölgelerden veri okumak istiyor.
Adım 5) Bunun sonucunda, istemci doğrudan MemStore'a erişebilir ve veri talep edebilir.
Adım 6) İstemci, verileri almak için HFiles'a başvurur. Veriler istemci tarafından alınır ve işlenir.
MemStore, bellekteki değişiklikleri depoda tutar. HBase bölgelerindeki nesnelerin hiyerarşisi, yukarıdan aşağıya doğru, aşağıdaki tabloda gösterilmiştir.
| tablo | HBase kümesinde bulunan HBase tablosu |
| Bölge | Sunulan tablolar için HBölgeler |
| mağaza | Tablodaki her bölge için her sütun ailesine bir tane depolar. |
| MemMağazası | Tablonun her bölgesi için her bir depolama alanı için bir MemStore kullanılır. Bu, verileri HFiles'a yazmadan önce sıralar. Sıralama sayesinde yazma ve okuma performansı artar. |
| MağazaDosyası | Tablonun her bölgesi için her mağazaya ait StoreFiles |
| Engellemek | StoreFiles'ın içinde bulunan bloklar |
HBase ve HDFS karşılaştırması
HBase, HDFS ve Hadoop üzerinde çalışır. HDFS ve HBase arasındaki bazı önemli farklar, veri işlemleri ve işleme açısından ortaya çıkar.
| HBaz | HDFS |
| Düşük gecikmeli işlemler | Yüksek gecikmeli işlemler |
| Rastgele okuma ve yazma | Bir kere yaz, birçok kez oku |
| Şununla erişildi: kabuk komutları, bir istemci API'si JavaREST, Avro veya Thrift | Öncelikle MapReduce aracılığıyla erişilir (MR) işler |
| Hem depolama hem de işleme gerçekleştirilebilir. | Bu sadece depolama alanları içindir. |
Bazı tipik BT endüstriyel uygulamaları, Hadoop ile birlikte HBase işlemlerini kullanır. Uygulamalar arasında borsa verileri ve çevrimiçi bankacılık verileri işlemleri yer alır ve bu tür işlemler için HBase en uygun çözümdür. Kümeniz hazır olduğunda, şunları yapabilirsiniz: HBase'de veri okuma ve yazma or HBase'i yükleyin yeni bir düğüm üzerinde.



