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.

  • 🧭 HMaster: Bölgeleri Bölge Sunucularına atar, yük dengeleme ve arıza durumunda yedekleme işlemlerini yönetir ve şema ve meta veri değişikliklerini denetler.
  • 🗄️ Bölge Sunucuları: Veri miktarı arttıkça istemci okuma ve yazma isteklerine, barındırma bölgelerine ve bölme bölgelerine otomatik olarak yanıt verin.
  • 🧱 Bölgeler ve mağazalar: Her bölge, bellekteki bir MemStore ve diskteki HFiles'tan oluşturulmuş, sütun ailesi başına bir depolama alanı tutar.
  • 🔗 Hayvan bakıcısı: Kümenin koordinatlarını belirler, tracks sunucu arızalarını önler ve istemcilerin bağlanmak için kullandığı çoğunluk yapılandırmasını saklar.
  • 🧮 Veri modeli: Tablolar sütun ailelerini ve satırları gruplandırır ve satır anahtarı her erişim için birincil anahtar görevi görür.
  • HBase ve HDFS karşılaştırması: HBase, HDFS toplu depolama alanına düşük gecikmeli rastgele okuma ve yazma işlemleri ekler.

HBase mimarisi, bileşenleri, veri modeli ve veri okuma ve yazma akışı.

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.

HBase mimari diyagramı, HMaster, Bölge Sunucuları, ZooKeeper ve HDFS'yi göstermektedir.

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.

HBase depolama mekanizması, satır anahtarını, sütun ailelerini, sütunları ve hücreleri göstermektedir.

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.

HBase okuma ve yazma veri akışı istemci, bölge sunucusu, MemStore ve HFile arasında gerçekleşir.

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.

SSS

Evet. HBase, dağıtık, sütun odaklı bir NoSQL veritabanıdır ve şu modele dayanmaktadır: Google Bigtable, HDFS üzerine kuruludur. Seyrek verileri sütun ailelerinden oluşan tablolarda saklar ve ilişkisel veritabanları gibi sabit şemalar veya SQL birleştirmeleri kullanmaz.

WAL (veya HLog), MemStore'a girmeden önce Bölge Sunucusundaki her yazma işlemini kaydeder. HDFS'de saklanır, bu nedenle bir Bölge Sunucusu yazma işleminden önce çökerse, HBase kaydedilmemiş düzenlemeleri kurtarmak için WAL'ı yeniden oynatır.

Sıkıştırma, okuma hızını korumak için HFile dosyalarını birleştirir. Küçük sıkıştırma, birkaç küçük bitişik HFile dosyasını tek bir dosyada birleştirir. Büyük sıkıştırma, bir sütun ailesine ait tüm HFile dosyalarını tek bir dosyaya yeniden yazar ve silinmiş ve süresi dolmuş hücreleri fiziksel olarak kaldırır.

İkisi de Bigtable'dan esinlenilmiş NoSQL veritabanlarıdır, ancak HBase tek bir aktif HMaster ve güçlü tutarlılık ile HDFS üzerinde çalışırken, Cassandra HBase, ayarlanabilir ve nihayetinde tutarlı replikasyon ile ana sunucu gerektirmez. HBase, Hadoop analitiği için uygundur; Cassandra Sürekli yazan kıyafetler.

Okuma ve yazma işlemlerinin bölgeler arasında eşit şekilde dağılmasını sağlayacak şekilde satır anahtarları tasarlayın. Tek bir Bölge Sunucusunda yoğunluk noktaları oluşturan, monoton olarak artan anahtarlardan kaçının. Tuzlama, karma veya alan ters çevirme yöntemlerini kullanın ve anahtarları kısa tutun çünkü her hücrede tekrarlanırlar.

Bir bölgenin depolama alanı yapılandırılmış bir boyut eşiğini aştığında, bölge otomatik olarak bölünür. Bölge Sunucusu, orta satır anahtarında bölgeyi iki alt bölgeye ayırır ve HMaster, yükü dengelemek için bunlardan birini başka bir sunucuya yeniden atayabilir.

Yapay zeka ve makine öğrenimi araçları, sorgu ve erişim kalıplarını analiz ederek, darboğazlardan kaçınan satır-anahtar ve sütun-aile tasarımları önerir. Ayrıca, çarpık bölgeler veya arızalı düğümler gibi anormallikleri erken tespit etmek için Bölge Sunucusu metriklerini ve günlüklerini tararlar.

Evet. GitHub Yardımcı Pilotu HBase taslakları Java Kısa bir yorumdan istemci kodu, kabuk komutları ve tarama filtreleri oluşturun. RevGerçek bir kümede çalıştırmadan önce, doğru tablo adları, sütun aileleri ve Connection ve Table gibi API sınıfları için çıktısını inceleyin.

Bu yazıyı şu şekilde özetleyin: