HBase sunucu mimarisi

HBase'in sunucu mimarisi, bir grup HRegion sunucusu (HRegion Sunucusu) ve HBase Ana Sunucusu (HBase Ana Sunucusu) içeren basit bir ana-bağımlı sunucu mimarisini takip eder. HBase Master sunucusu, tüm HRegion sunucularını yönetmekten sorumludur ve HBase'deki tüm sunucular, ZooKeeper aracılığıyla koordine edilir ve HBase sunucusunun çalışması sırasında karşılaşılabilecek hatalarla ilgilenir. HBase Master Sunucusunun kendisi HBase'de herhangi bir veri depolamaz HBase'deki mantıksal tablolar birden fazla HRegion'a bölünebilir ve ardından HRegion Server grubunda saklanabilir HBase Master Server, verilerden HRegion Sunucusuna eşlemeyi depolar.

Müşteri

HBase Client, HMaster ve HRegionServer ile iletişim kurmak için HBase'in RPC mekanizmasını kullanır.Yönetim işlemleri için Müşteri, HMaster ile RPC gerçekleştirir; veri okuma ve yazma işlemleri için Müşteri, HRegionServer ile RPC gerçekleştirir

Hayvan bakıcısı

HRegionServer, -ROOT- tablosunun adresini ve HMaster'ın adresini Zookeeper Quorum'da saklamaya ek olarak, kendisini Zookeeper'da Geçici modda da kaydedecek, böylece HMaster her HRegionServer'ın sağlık durumunu her an algılayabilir. Ek olarak, Zookeeper, aşağıda açıklandığı gibi, HMaster'ın tek nokta probleminden de kaçınır.

HBase Master sunucusu

Her HRegion sunucusu, HMaster sunucusuyla iletişim kurar.HMaster'ın ana görevi, her bir HRegion sunucusuna hangi HRegion'un bakımını yapmak istediğini söylemektir.

Yeni bir HRegion sunucusu HMaster sunucusunda oturum açtığında, HMaster ona verinin tahsis edilmesini beklemesini söyleyecektir. Bir HRegion çöktüğünde, HMaster sorumlu olduğu HRegion'u ayrılmamış olarak işaretleyecek ve ardından bunları diğer HRegion sunucularına tahsis edecektir.

HRegion sunucusu

HRegionServer, temel olarak kullanıcı G / Ç isteklerine yanıt vermekten, verileri HDFS dosya sistemine okumaktan ve yazmaktan sorumludur ve HBase'deki temel modüldür.

Tüm veritabanı verileri genellikle Hadoop dağıtılmış dosya sisteminde saklanır.Kullanıcılar bu verileri bir dizi HRegion sunucusu aracılığıyla alır.Genel olarak, bir makinede yalnızca bir HRegion sunucusu çalışır ve her bölümden yalnızca bir HRegion HRegion sunucu bakımı.

Kullanıcının verileri güncellemesi gerektiğinde, değişiklikleri göndermek için ilgili HRegion sunucusuna atanacaktır.Bu değişiklikler Hmemcache (bellekteki önbellek, en son güncellenmiş verileri kaydetme) önbelleğine ve sunucunun Hlog'una (diskteki kayıt) görüntülenir. Dosya, tüm güncelleme işlemlerini dosyaya kaydeder. İşlem Hlog'a yazıldıktan sonra commit () çağrısı onu istemciye geri döndürecektir.

Verileri okurken, HRegion sunucusu önce Hmemcache önbelleğine erişecektir.Önbellekte veri yoksa, arama yapmak için Hstores diskine geri dönecektir.Her sütun ailesinin bir HStore koleksiyonu olacak ve her HStore koleksiyonu birçok HstoreFile dosyası içerecektir. Aşağıda gösterildiği gibi:

HStore depolaması, biri MemStore, diğeri StoreFiles olmak üzere iki bölümden oluşan HBase depolamanın çekirdeğidir. MemStore, Sıralanmış Bellek Arabelleğidir.Kullanıcı tarafından yazılan veriler ilk olarak MemStore'a konur.MemStore dolduğunda, bir StoreFile'a boşaltılacaktır (temel uygulama HFile'dir). StoreFile dosyalarının sayısı belirli bir eşiğe yükseldiğinde, Kompakt birleştirme işlemi tetiklenecektir. Birden çok StoreFile, tek bir StoreFile'da birleştirilir. Sürüm birleştirme ve veri silme işlemi, birleştirme işlemi sırasında gerçekleştirilecektir. Bu nedenle, HBase'in aslında yalnızca veri eklediği görülebilir. Tüm güncellemeler ve silme işlemleri, sonraki kompakt işlemde gerçekleştirilir, bu da kullanıcıların Yazma işlemleri, belleğe girdikleri sürece hemen geri dönerek HBase I / O'nun yüksek performansını garantiler. StoreFiles sıkıştırıldığında, giderek daha büyük ve daha büyük StoreFiles oluşacaktır. Tek bir StoreFile dosyasının boyutu belirli bir eşiği aştığında, Bölme işlemi tetiklenecek ve mevcut Bölge 2 Bölgeye bölünecektir. Üst Bölge çevrimdışı olacak ve yeni Bölünme 2 oluşturacaktır Her bir alt Bölge, HMaster tarafından karşılık gelen HRegionServer'a atanacaktır, böylece orijinal 1 Bölgenin baskısı 2 Bölgeye yönlendirilebilir.

HRegion

Tablonun boyutu ayarlanan değeri aştığında, HBase tabloyu otomatik olarak farklı alanlara böler, her alan tüm satırların bir alt kümesini içerir. Kullanıcı için her tablo, birincil anahtarla ayırt edilen bir veri koleksiyonudur. Fiziksel olarak konuşursak, bir masa birden fazla parçaya bölünür ve her parça bir HRegion'dur. Her bir HRegion'u ayırt etmek için tablo adı + başlangıç / bitiş birincil anahtarını kullanıyoruz.Bir HRegion, bir tabloda belirli bir sürekli veri parçasını depolayacaktır.Başlangıç birincil anahtarından bitiş birincil anahtara kadar, eksiksiz bir tablo birden çok HRegion'da saklanır.

HBase depolama biçimi

HBase'deki tüm veri dosyaları, Hadoop HDFS dosya sisteminde depolanır, esas olarak yukarıda belirtilen iki dosya türü dahil:

1. HFile, KeyValue verilerinin HBase'deki depolama formatı. HFile, Hadoop'un ikili format dosyasıdır. Aslında, StoreFile HFile için hafif bir pakettir, yani StoreFile'ın alt katmanı HFile'dır.

2. HLog Dosyası, fiziksel olarak Hadoop'un Sıra Dosyası olan HBase'deki WAL (Write Ahead Log) saklama formatı

HFile tanıtıldı, bir sonraki adım HLog Dosyasını tanıtmaktır.

Dağıtılmış bir sistem ortamında, sistem hataları veya kesinti süreleri önlenemez.Bu nedenle, HRegionServer beklenmedik bir şekilde çıktığında, MemStore'daki bellek verileri kaybolacak ve bu da HLog'un kullanılmasını gerektirecektir. Her HRegionServer'da bir HLog nesnesi vardır.HLog, Write Ahead Log uygulayan bir sınıftır.Her bir kullanıcı işlemi MemStore'a yazdığında, verilerin bir kopyasını HLog dosyasına da yazar (HLog dosya formatı için aşağıya bakın), HLog Dosyalar periyodik olarak yenilerini çıkarır ve eski dosyaları (StoreFile'da saklanan veriler) siler. HRegionServer beklenmedik bir şekilde sona erdiğinde, HMaster bunu Zookeeper aracılığıyla algılayacaktır.HMaster önce kalan HLog dosyalarını işleyecek, farklı bölgelerin Günlük verilerini bölecek, ilgili bölge dizinlerine yerleştirecek ve ardından geçersiz bölgeleri yeniden dağıtacaktır. Yükleme Bölgesi sürecinde, bu bölgeleri alan HRegionServer, işlenmesi gereken geçmiş HLog'ların olduğunu bulacaktır, bu nedenle HLog'daki veriler MemStore'da yeniden oynatılacak ve ardından veri kurtarmayı tamamlamak için StoreFiles'a akıtılacaktır.

HFile

Aşağıdaki şekil HFile'ın depolama formatını göstermektedir:

İlk olarak, HFile dosyaları değişken uzunluktadır ve bunlardan yalnızca ikisinin uzunluğu sabittir: Trailer ve FileInfo. Şekilde gösterildiği gibi, Trailer'da diğer veri bloklarının başlangıç noktalarına işaret eden işaretçiler vardır. Dosyanın bazı Meta bilgileri Dosya Bilgileri'ne kaydedilir, örneğin: AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEY, vb. Veri İndeksi ve Meta İndeks blokları, her bir Veri bloğunun ve Meta bloğunun başlangıç noktasını kaydeder.

Veri Bloğu, HBase I / O'nun temel birimidir. Verimliliği artırmak için, HRegionServer, LRU tabanlı bir Blok Önbellek mekanizmasına sahiptir. Her bir Veri bloğunun boyutu, bir Tablo oluşturulurken parametrelerle belirtilebilir Büyük bloklar sıralı tarama için ve küçük bloklar rastgele sorgular için iyidir. Her Veri bloğu, başlangıçtaki Magic dışında KeyValue çiftlerinden oluşur Magic içeriği, verilerin zarar görmesini önlemek için bazı rastgele sayılardır. Her KeyValue çiftinin dahili yapısı daha sonra ayrıntılı olarak açıklanacaktır.

HFile'daki her KeyValue çifti basit bir bayt dizisidir. Ancak bu bayt dizisi birçok öğe içerir ve sabit bir yapıya sahiptir. İçerideki belirli yapıya bir göz atalım:

Başlangıçta, Anahtarın uzunluğunu ve Değerin uzunluğunu temsil eden iki sabit uzunluklu değer vardır. Ardından, RowKey'in uzunluğunu belirten sabit uzunluklu bir değerle başlayan ve ardından RowKey'i izleyen sabit uzunluklu bir değerle başlayan ve Aile uzunluğunu, ardından Aile, ardından Niteleyici ve ardından iki sabit uzunluklu değeri gösteren Anahtar vardır. Bu, Zaman Damgası ve Anahtar Türü (Koy / Sil) anlamına gelir. Değer bölümü o kadar karmaşık bir yapıya sahip değil, tamamen ikili veridir.

HLogFile

Yukarıdaki şekil, HLog dosyasının yapısını göstermektedir. Aslında, HLog dosyası sıradan bir Hadoop Sekans Dosyasıdır.Sıra Dosyasının Anahtarı HLogKey nesnesidir. HLogKey, yazılı verilerin nitelik bilgilerini kaydeder. Tablo ve bölge adlarına ek olarak, ayrıca Sıra numarası ve zaman damgası, zaman damgası "yazma zamanı", sıra numarasının başlangıç değeri 0 veya dosya sisteminde depolanan son sıra numarasıdır.

Yorumları okumak, iletmek ve takip etmek için tıklayın ve takipte birçok bilgi noktası olacak, sizinle paylaşacak ve ayrıca bana özel bir mesaj gönderebilirsiniz!

Düşünemeyeceğin hiçbir şey yok, sadece yapamazsın.

Tren istasyonunda iki elektrik bankası satın aldım
önceki
Tencent, Baidu, Xiaomi ve Cheetah'ın kamuoyu kargaşasının ardındaki derin önem nedir?
Sonraki
Android kullanıcıları neden iPhone 7'ye geçmiyor? Gerçek Apple'ı çökertiyor
Hive SQL ayrıştırma işleminin ayrıntılı açıklaması
Akış bilgi işlem fırtınası temel bileşenleri, özellikleri ve vakaları
Apple HomePod, BAT'a meydan okumak için Çin'e girdi. Akıllı hoparlörler savaşında kazanma şansı nedir?
Yazın en kapsamlı DIY satın alma rehberi olan Xiaobai, okuduktan sonra yardım istemeyecek
Yasak Şehir için 80.000 bilet satıldı Kar yağıyor Yasak Şehir'i nasıl çekebilirim? "Saraya giremeyen" insanlar, arkadaş çevrelerini en üst düzeye çıkaran fotoğraflar da çekebilirler!
Apple HomePod, BAT'a meydan okumak için Çin'e girdi. Akıllı hoparlörler savaşında kazanma şansı nedir?
Programcılar, mükemmel yüksek maaşlı mimarlara nasıl yükseltilebilir?
Çin Yeni Yılı'nda eve giderken birçok insan güldü ve ağladı ...
Hangzhou Körfezi Köprüsü: Nehirden okyanusa sıçramayı gerçekleştirmek için kılıcı bileme on yıl
OnePlus 5T, Android 9.0 güncellemesini başlattı, resmi itme hidrojen OS 9.0.1
Yaygın web sunucusu mimarileri nelerdir?
To Top