HBase Mimarisi, Bileşenler, Veri Modeli ve Kullanım Örnekleri

İçindekiler:

Anonim

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 bulunan birkaç sütun ailesinin koleksiyonu olan RowId'ye sahiptir.

Şemada bulunan sütun aileleri, anahtar-değer çiftleridir. Her bir sütun ailesinin birden çok sütuna sahip olduğunu ayrıntılı olarak gözlemlersek. Disk belleğinde saklanan sütun değerleri. Tablonun her hücresinin zaman damgası ve diğer bilgiler gibi kendi Meta Verileri vardır.

HBase'de Depolama Mekanizması

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

  • Tablo : Mevcut satırların toplanması.
  • Satır : Sütun ailelerinin koleksiyonu.
  • Sütun Ailesi : Sütun koleksiyonu.
  • Sütun : Anahtar / değer çiftlerinin toplanması.
  • Ad alanı : Tabloların mantıksal gruplaması.
  • Hücre : Bir {satır, sütun, sürüm} demeti, HBase'de bir hücre tanımını tam olarak belirtir.

Bu eğitimde - öğreneceksiniz,

  • HBase'de Depolama Mekanizması
  • HBase Veri Modeli
  • HBase Mimarisi ve Önemli Bileşenleri
  • HBase Okuma ve Yazma Verilerinin Açıklanması
  • HBase Kullanım Durumları
  • HBASE ve HDFS

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

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

Aşağıdaki Tablo, bu iki depolama arasındaki bazı temel farklılıkları vermektedir.

Sütun odaklı Veritabanı Satır odaklı Veritabanı
  • Süreç ve analitik söz konusu olduğunda, bu yaklaşımı kullanırız. Mesela Çevrimiçi Analitik İşleme ve uygulamalarının.
  • Bankacılık ve finans alanları gibi Online İşlem süreçleri bu yaklaşımı kullanır.
  • Bu modelde saklanabilecek veri miktarı petabayt cinsinden olduğu gibi çok büyüktür.
  • Az sayıda satır ve sütun için tasarlanmıştır.

HBase Veri Modeli

HBase Veri Modeli , Tablolar, Satırlar, Sütun aileleri, Hücreler, Sütunlar ve Sürümlerden oluşan bir dizi bileşendir. HBase tabloları, sütun aileleri ve Birincil anahtarlar olarak tanımlanan öğelere sahip 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ı olan her tablo
  • Her tablonun Birincil Anahtar olarak tanımlanan bir öğesi olmalı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 Mimarisi ve Önemli Bileşenleri

Aşağıda, bileşenlerle birlikte ayrıntılı bir HBase mimarisi bulunmaktadır:

HBase Mimari Şeması

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

  • HMaster
  • HRegionserver
  • HRegions
  • Hayvan bakıcısı
  • HDFS

HMaster:

HBase'deki HMaster, HBase mimarisinde bir Ana sunucu 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 arabirim 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ığı çalıştırır.

Aşağıdakiler, HMaster tarafından HBase'de gerçekleştirilen önemli rollerdir.

  • Performans ve kümedeki düğümlerin korunması 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ölge sunucularına bölgeler atar.
  • HMaster, kümede bulunan düğümler üzerindeki yükü işlemek için yük dengelemeyi kontrol etme ve yük devretme gibi özelliklere sahiptir.
  • Bir müşteri herhangi bir şemayı değiştirmek 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 verilere yönelik yöntemlerdir.

  • Tablo (createTable, removeTable, etkinleştir, devre dışı bırak)
  • ColumnFamily (Sütun ekle, Sütunu değiştir)
  • Bölge (taşı, ata)

İstemci, hem HMaster hem de ZooKeeper ile iki 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. Tüm günlük dosyalarını depolayacak olan bölge sunucularında bulunan hlog.

HBase Bölgeleri Sunucuları:

HBase Bölge Sunucusu istemciden yazma ve okuma isteklerini aldığında, isteği gerçek sütun ailesinin bulunduğu belirli bir bölgeye atar. Bununla birlikte, müşteri doğrudan HRegion sunucuları ile iletişime geçebilir, HRegion sunucuları ile iletişim konusunda müşteriye HMaster zorunlu iznine gerek 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ölgelere veya verilere hizmet etmekten ve bunları yönetmekten sorumludur. Bölge sunucuları, Hadoop kümesinde bulunan Veri Düğümleri üzerinde çalışır.

HMaster, birden fazla HRegion sunucusu ile iletişime geçebilir ve aşağıdaki işlevleri yerine getirebilir.

  • Bölgeleri barındırma ve yönetme
  • Bölgeleri otomatik olarak bölme
  • Okuma ve yazma isteklerini işleme
  • Müşteri ile 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 çok depo içerir. Memstore ve Hfile olmak üzere başlıca iki bileşenden oluşur.

ZooKeeper:

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

Açık kaynak kodlu bir projedir ve pek çok önemli hizmet vermektedir.

ZooKeeper tarafından sağlanan hizmetler

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

Ana ve HBase köle 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 gerekir.

HBase kümesinde bulunan düğümlerin arızalanması sırasında, ZKquoram hata mesajlarını tetikleyecek ve başarısız olan düğümleri onarmaya başlayacaktır.

HDFS:

HDFS, adından da anlaşılacağı gibi depolama için dağıtılmış bir ortam sağlayan Hadoop dağıtılmış bir dosya sistemidir ve ticari donanım üzerinde çalışacak şekilde tasarlanmış bir dosya sistemidir. Her dosyayı birden çok blokta depolar ve hata toleransını korumak için bloklar bir Hadoop kümesinde kopyalanır.

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

Burada, her blokta depolanan veriler 3 düğüme kopyalanır ve herhangi bir durumda herhangi bir düğüm düştüğünde 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 Okuma ve Yazma Verilerinin Açıklanması

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

Adım 1) Müşteri veri yazmak istiyor ve ardından önce Bölgeler sunucusu ve ardından bölgelerle iletişim kuruyor

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

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

Adım 4) Müşteri, Bölgelerden gelen verileri okumak istiyor

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

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

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

Tablo HBase kümesinde bulunan HBase tablosu
Bölge Sunulan tablolar için HRegions
Mağaza Tablonun her bölgesi için ColumnFamily başına depolar
Memstore
  • Tablonun her bölgesi için her mağaza için Memstore
  • HFiles içine boşaltmadan önce verileri sıralar
  • Sıralama nedeniyle yazma ve okuma performansı artacaktır
Mağaza Dosyası Tablo için her bölge için her mağaza için StoreFiles
Blok StoreFiles içinde bulunan bloklar

HBase Kullanım Durumları

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

Sorun bildirimi Çözüm
Telekom Endüstrisi aşağıdaki Teknik zorluklarla karşı karşıya
  • Telekom etki alanı tarafından oluşturulan milyarlarca CDR (Ayrıntılı arama kaydı) günlük kaydını saklama
  • Müşterilerin CDR günlüklerine ve fatura bilgilerine gerçek zamanlı erişim sağlanması
  • Geleneksel veritabanı sistemlerine kıyasla uygun maliyetli bir çözüm sağlayın
HBase, milyarlarca satırlık ayrıntılı arama kaydını saklamak için kullanılır. Mevcut RDBMS veritabanına her ay 20 TB veri eklenirse, performans düşer. Bu kullanım durumunda büyük miktarda veriyi işlemek için HBase en iyi çözümdür. HBase, hızlı sorgulama yapar ve kayıtları görüntüler.
Bankacılık sektörü günlük olarak kayıtları milyonlarca ü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 hacimli verileri depolamak, işlemek ve güncellemek ve analitik gerçekleştirmek için ideal bir çözüm - HBase'nin birkaç Hadoop ekosistem bileşeniyle entegre olmasıdır.

Bunun dışında HBase kullanılabilir

  • Ne zaman ağır uygulamalar yazmaya ihtiyaç duyulursa.
  • Çevrimiçi günlük analizi yapmak ve uyum raporları oluşturmak.

HBase ve HDFS

HBase, HDFS ve Hadoop üzerinde çalışır. HDFS ve HBase arasındaki bazı temel farklar, veri işlemleri ve işleme açısından vardır.

HBASE

HDFS

  • Düşük gecikmeli işlemler
  • Yüksek gecikmeli işlemler
  • Rastgele okuma ve yazma
  • Bir kez yazın Birçok kez okuyun
  • Java, REST, Avro veya Thrift'te kabuk komutları, istemci API'si aracılığıyla erişilir
  • Öncelikle MR (Harita Azaltma) işleri aracılığıyla erişilir
  • Depolama ve işlem her ikisi de gerçekleştirilebilir
  • Sadece depolama alanları için

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 işleme en uygun çözüm yöntemidir.

Özet

Hbase, apache kuruluşunda bulunan NoSql sütun odaklı dağıtılmış veritabanlarından biridir. HBase, Hadoop veya Hive yerine daha az kayıt almak için daha fazla performans sağlar. Herhangi bir girdi değerini aramak çok kolaydır çünkü indekslemeyi, işlemleri ve güncellemeyi destekler.

Hadoop ekosistemi ile entegre Hbase kullanarak çevrimiçi gerçek zamanlı analiz gerçekleştirebiliriz. Veri kümeleri veya tablolar için otomatik ve yapılandırılabilir bir parçalama özelliğine sahiptir ve MapReduce işlerini gerçekleştirmek için dinlendirici API'ler sağlar.