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'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ı |
|
|
|
|
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 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 |
|
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
| 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 |
|
|
|
|
|
|
|
|
|
|
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.