HBaz Archidoku: Kullanım Durumları, Bileşenler ve Veri Modeli

HBaz ArchiYapı ve Önemli Bileşenleri

HBase mimarisi esas olarak dört bileşenden oluşur

  • Usta
  • HBölge sunucusu
  • HBölgeler
  • Zookeeper
  • HDFS

Aşağıda HBase'in bileşenleriyle birlikte detaylı bir mimarisi bulunmaktadır:

HBaz Archidoku
HBaz Archidoku şeması

Usta

Usta HBase'de, HBase mimarisinde bir Master sunucusunun uygulanmasıdır. Kümede bulunan tüm Bölge Sunucusu örneklerini izlemek için bir izleme aracısı olarak işlev 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, birkaç arka plan iş parçacığını çalıştırır.

Aşağıda HMaster'ın HBase'de üstlendiği önemli roller listelenmiştir.

  • 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ümede mevcut düğümler üzerindeki yükü yönetmek için yük dengelemeyi ve yük devretmeyi kontrol etme gibi özelliklere sahiptir.
  • Bir müşteri herhangi bir şemayı ve herhangi bir Meta Veri işlemini değiştirmek istediğinde, HMaster bu işlemlerin sorumluluğunu ü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ü bir şekilde iletişim kurar. Okuma ve yazma işlemleri için doğrudan HRegion sunucuları ile iletişim kurar. HMaster, bölgeleri bölge sunucularına atar ve ardından bölge sunucularının sağlık durumunu kontrol eder.

Tüm mimaride birden fazla bölge sunucumuz var. Bölge sunucularında tüm günlük dosyalarını depolayacak olan Hlog mevcut.

HBase Bölge Sunucuları

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. Ancak istemci HRegion sunucularıyla doğrudan iletişim kurabilir, HRegion sunucularıyla iletişim konusunda istemcinin HMaster'ın zorunlu iznine ihtiyacı yoktur. İstemci, meta veriler 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 bölgelerin veya verilerin sunulmasından ve yönetilmesinden sorumludur. Bölge sunucuları Hadoop kümesinde bulunan Veri Düğümleri üzerinde çalışır.

HMaster birden fazla HRegion sunucusuyla bağlantı kurabilir ve aşağıdaki işlevleri gerçekleştirir.

  • Bölgeleri barındırma ve yönetme
  • Bölgeleri otomatik olarak bölme
  • Okuma ve yazma isteklerini işleme
  • Müşteriyle doğrudan iletişim kurmak

HBase Bölgeleri

HRegions, tabloların dağılımından oluşan ve Sütun ailelerinden oluşan HBase kümesinin temel yapı elemanlarıdır. Her sütun ailesi için bir tane olmak üzere birden fazla mağaza içerir. Temel olarak Memstore ve Hfile olmak üzere iki bileşenden oluşur.

hayvan bakıcısı

HBase Zookeeper, yapılandırma bilgilerini koruyan ve dağıtılmış senkronizasyon sağlayan merkezi bir izleme sunucusudur. Dağıtılmış senkronizasyon, düğümler arasında koordinasyon hizmetleri sağlama sorumluluğuyla küme genelinde çalışan dağıtılmış uygulamalara erişmektir. İstemci bölgelerle iletişim kurmak istiyorsa, sunucunun istemcisinin önce ZooKeeper'a yaklaşması gerekir.

Açık kaynaklı bir projedir ve pek çok önemli hizmet sunmaktadır.

Tarafından sağlanan hizmetler hayvan bakıcısı

  • Yapılandırma bilgilerini korur
  • Dağıtılmış senkronizasyon sağlar
  • Bölge sunucuları ile Client Communication kurulması
  • Farklı bölge sunucularını temsil eden geçici düğümler sağlar
  • Kümedeki kullanılabilir sunucuları keşfetmek için ana sunucuların geçici düğümlerin kullanılabilirliği
  • Sunucu arızasını ve ağ bölümlerini izlemek için

Ana ve HBase yardımcı düğümleri (bölge sunucuları) kendilerini ZooKeeper'a kaydettirdi. İstemcinin, ana ve bölge sunucularına bağlanmak için ZK(zookeeper) çekirdek yapılandırmasına erişmesi gerekiyor.

HBase kümesinde bulunan düğümlerin arızalanması sırasında ZKquoram, hata mesajlarını tetikler ve arızalı düğümleri onarmaya başlar.

HDFS

HDFS, dağıtılmış bir Hadoop'tur dosya SistemiAdından da anlaşılacağı gibi depolama için dağıtılmış bir ortam sağlayan ve emtia donanımları üzerinde çalışacak şekilde tasarlanmış bir dosya sistemidir. Her dosyayı birden fazla blokta saklar ve hata toleransını korumak için bloklar bir Hadoop kümesinde çoğaltılır.

HDFS, yüksek derecede hata toleransı sağlar ve ucuz donanımla çalışır. Kümeye düğümlerin eklenmesi ve ucuz emtia donanımını kullanarak işleme ve depolamanın gerçekleştirilmesi, müşteriye mevcut olana göre daha iyi sonuçlar verecektir.

Burada her blokta saklanan veriler 3 düğüme kopyalanır, herhangi bir düğümün arızalanması durumunda veri kaybı olmaz, uygun bir yedekleme kurtarma mekanizmasına sahip olur.

HDFS HBase bileşenleriyle iletişim 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şenler kümesidir. HBase tabloları, Birincil anahtarlar olarak tanımlanan öğelere sahip sütun ailelerini ve satırları içerir. HBase veri modeli tablosundaki bir sütun, nesnelerin niteliklerini temsil eder.

HBase Veri Modeli aşağıdaki unsurlardan oluşur:

  • Tablo seti
  • Sütun aileleri ve satırları içeren her tablo
  • Her tabloda Birincil Anahtar olarak tanımlanan bir öğe bulunmalıdır.
  • Satır anahtarı HBase'de Birincil anahtar görevi görür.
  • HBase tablolarına herhangi bir erişim bu Birincil Anahtarı kullanır
  • HBase'de bulunan her sütun, nesneye karşılık gelen özniteliği belirtir

HBase Kullanım Durumları

Aşağıda, çeşitli teknik sorunlara sağladığı çözümün ayrıntılı açıklamasıyla birlikte HBase kullanım örnekleri yer almaktadır

Sorun bildirimi Çözüm
Telekom Endüstrisi Teknik zorluklarla karşı karşıya

  • Telekom alanı tarafından oluşturulan milyarlarca CDR (Arama ayrıntılı kaydı) günlük kaydının depolanması
  • Müşterilerin CDR kayıtlarına ve faturalama bilgilerine gerçek zamanlı erişim sağlanması
  • Geleneksel veritabanı sistemlerine kıyasla uygun maliyetli çözüm sağlayın
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.
The Bankacılık sektörü Her gün milyonlarca kayıt üretir. Buna ek olarak bankacılık sektörünün para işlemlerinde dolandırıcılığı tespit edebilecek bir analitik çözümüne de ihtiyacı var. Büyük miktarda veriyi depolamak, işlemek, güncellemek ve analitik gerçekleştirmek için ideal çözüm, Hadoop ekosisteminin çeşitli bileşenleriyle entegre edilmiş HBase'dir.

Bunun dışında HBase kullanılabilir

  • Ağır uygulamalar yazmaya ihtiyaç duyulduğunda.
  • Çevrimiçi günlük analizi gerçekleştirmek ve uyumluluk raporları oluşturmak.

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, tabloda mevcut olan çeşitli sütun ailelerinin koleksiyonu olan RowId'ye sahiptir.

Şemada bulunan sütun aileleri anahtar/değer çiftleridir. Ayrıntılı olarak incelersek her sütun ailesinde birden fazla sayıda sütun bulunur. 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.

HBase'de Depolama Mekanizması
HBase'de Depolama Mekanizması

HBase'e gelince, tablo şemasını temsil eden temel terimler şunlardır:

  • tablo: Mevcut satırların toplanması.
  • Sıra: Sütun ailelerinin toplanması.
  • Sütun Ailesi: Sütunların toplanması.
  • Sütun: Anahtar/değer çiftlerinin toplanması.
  • Ad alanı: Tabloların mantıksal gruplandırılması.
  • Hücre: Bir {satır, sütun, sürüm} tanımlama grubu, HBase'deki bir hücre tanımını tam olarak belirtir.

Sütun odaklı ve Satır odaklı depolamalar

Sütun ve Satır odaklı depolamalar, depolama mekanizmaları bakımından farklılık gösterir. Hepimizin bildiği gibi geleneksel ilişkisel modeller, verileri veri satırları gibi satır tabanlı formatta saklar. Sütun odaklı depolar, veri tablolarını sütunlar ve sütun aileleri açısından saklar.

Aşağıdaki Tablo bu iki depolama arasındaki bazı temel farkları göstermektedir

Sütun Odaklı Veritabanı Satır odaklı Veritabanı
Süreç ve analitik söz konusu olduğunda bu yaklaşımı kullanıyoruz. Örneğin Çevrimiçi analitik işleme ve uygulamalar. Çevrimiçi İşlem süreci Bankacılık ve finans gibi alanlar bu yaklaşımı kullanıyor.
Bu modelde depolanabilecek veri miktarı petabayt gibi çok büyük. Az sayıda satır ve sütun için tasarlanmıştır.

HBase Okuma ve Yazma Verilerinin Açıklaması

İstemciden Hfile'a Okuma ve Yazma işlemleri aşağıdaki şemada gösterilebilir.

HBase Verilerini Okuma ve Yazma

) 1 Adım İstemci veri yazmak ister ve önce Bölge sunucusuyla, ardından bölgelerle iletişim kurar

) 2 Adım Sütun ailesiyle ilişkili depolama için memstore ile iletişim kuran bölgeler

) 3 Adım İlk olarak veriler, verilerin sıralandığı Memstore'da depolanır ve ardından HFile'a aktarılır. Memstore'u kullanmanın ana nedeni, verileri Satır Anahtarına dayalı Dağıtılmış dosya sisteminde depolamaktır. HFiles HDFS'ye yazılırken Memstore Bölge sunucusu ana belleğine yerleştirilecektir.

) 4 Adım Müşteri Bölgelerden veri okumak istiyor

) 5 Adım Buna karşılık Müşteri, Mem deposuna doğrudan erişime sahip olabilir ve veri talebinde bulunabilir.

Adım 6) İstemci verileri almak için HFiles'a yaklaşır. Veriler Müşteri tarafından alınır ve alınır.

Memstore, mağazada yapılan bellek içi değişiklikleri tutar. HBase Bölgelerindeki nesnelerin hiyerarşisi aşağıdaki tabloda yukarıdan aşağıya doğru gösterilmiştir.

tablo HBase kümesinde bulunan HBase tablosu
Bölge Sunulan tablolar için HBölgeler
mağaza Tablonun her bölgesi için ColumnFamily başına depolar
hafıza deposu
  • Tablo için her bölge için her mağaza için Memstore
  • Verileri HFiles'a aktarmadan önce sıralar
  • Sıralama sayesinde yazma ve okuma performansı artacaktır
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'nin üzerinde çalışır ve Hadoop'un. HDFS ve HBase arasındaki bazı önemli farklar veri işlemleri ve işleme açısındandır.

HBASE HDFS
Düşük gecikmeli işlemler Yüksek gecikmeli işlemler
Rastgele okuma ve yazma Bir kez yaz Birçok kez oku
Şununla erişildi: kabuk komutları, istemci API'si Java, REST, Avro veya Tasarruflu Öncelikle MR (Harita Azaltma) işleri yoluyla erişilir
Hem depolama hem de işlem gerçekleştirilebilir Sadece depolama alanları içindir

Bazı tipik BT endüstriyel uygulamaları, Hadoop ile birlikte HBase işlemlerini kullanır. Uygulamalar arasında borsa verileri, çevrimiçi bankacılık veri işlemleri ve Hbase'in işlenmesi en uygun çözüm yöntemidir.

ÖZET

  • HBase mimarisi bileşenleri: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
  • HBase'deki HMaster, HBase mimarisindeki Master sunucunun uygulanmasıdır.
  • 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.
  • HRegions, tabloların dağılımından oluşan ve Sütun ailelerinden oluşan HBase kümesinin temel yapı elemanlarıdır.
  • HBase Zookeeper, yapılandırma bilgilerini koruyan ve dağıtılmış senkronizasyon sağlayan merkezi bir izleme sunucusudur.
  • HDFS, yüksek derecede hata toleransı sağlar ve ucuz donanımla çalışır.
  • HBase Veri Modeli, Tablolar, Satırlar, Sütun aileleri, Hücreler, Sütunlar ve Sürümlerden oluşan bir bileşenler kümesidir.
  • Sütun ve Satır odaklı depolamalar, depolama mekanizmaları bakımından farklılık gösterir.