HBase - Genel Bakış
1970'den beri RDBMS, veri depolama ve bakımla ilgili sorunlar için bir çözümdür. Büyük verinin ortaya çıkmasından sonra, şirketler büyük veriyi işlemenin faydasını fark etti ve Hadoop gibi çözümleri tercih etmeye başladı.
Hadoop, büyük verileri depolamak için dağıtılmış dosya sistemi ve işlemek için MapReduce kullanır. Hadoop, rastgele, yarı ve hatta yapılandırılmamış gibi çeşitli biçimlerdeki büyük verilerin depolanması ve işlenmesinde üstündür.
Hadoop'un Sınırlamaları
Hadoop yalnızca toplu işlem gerçekleştirebilir ve verilere yalnızca sıralı bir şekilde erişilir. Bu, en basit işler için bile veri setinin tamamının araştırılması gerektiği anlamına gelir.
İşlendiğinde büyük bir veri kümesi, sıralı olarak da işlenmesi gereken başka bir büyük veri kümesiyle sonuçlanır. Bu noktada, tek bir zaman biriminde herhangi bir veri noktasına erişmek için yeni bir çözüme ihtiyaç vardır (rastgele erişim).
Hadoop Rasgele Erişim Veritabanları
HBase, Cassandra, couchDB, Dynamo ve MongoDB gibi uygulamalar, büyük miktarda veri depolayan ve verilere rastgele bir şekilde erişen veri tabanlarından bazılarıdır.
HBase nedir?
HBase, Hadoop dosya sisteminin üzerine inşa edilmiş, dağıtılmış bir sütun yönelimli veritabanıdır. Açık kaynaklı bir projedir ve yatay olarak ölçeklenebilir.
HBase, Google'ın büyük miktarda yapılandırılmış veriye hızlı rastgele erişim sağlamak için tasarlanmış büyük tablosuna benzer bir veri modelidir. Hadoop Dosya Sistemi (HDFS) tarafından sağlanan hata toleransından yararlanır.
Hadoop Dosya Sistemindeki verilere rastgele gerçek zamanlı okuma / yazma erişimi sağlayan Hadoop ekosisteminin bir parçasıdır.
Veriler HDFS'de doğrudan veya HBase aracılığıyla saklanabilir. Veri tüketicisi HBase kullanarak HDFS'deki verileri rastgele okur / bunlara erişir. HBase, Hadoop Dosya Sisteminin üzerine oturur ve okuma ve yazma erişimi sağlar.
HBase ve HDFS
HDFS | HBase |
---|---|
HDFS, büyük dosyaları depolamak için uygun dağıtılmış bir dosya sistemidir. | HBase, HDFS'nin üzerine kurulmuş bir veritabanıdır. |
HDFS hızlı bireysel kayıt aramalarını desteklemez. | HBase, daha büyük tablolar için hızlı arama sağlar. |
Yüksek gecikmeli toplu işlem sağlar; toplu işleme kavramı yok. | Milyarlarca kayıttan tek satırlara düşük gecikmeli erişim sağlar (Rastgele erişim). |
Verilere yalnızca sıralı erişim sağlar. | HBase dahili olarak Hash tablolarını kullanır ve rastgele erişim sağlar ve verileri daha hızlı aramalar için dizine alınmış HDFS dosyalarında depolar. |
HBase'de Depolama Mekanizması
HBase bir column-oriented databaseve içindeki tablolar satırlara göre sıralanır. Tablo şeması, yalnızca anahtar değer çiftleri olan sütun ailelerini tanımlar. Bir tablonun birden çok sütun ailesi vardır ve her sütun ailesinin herhangi bir sayıda sütunu olabilir. Sonraki sütun değerleri diskte bitişik olarak depolanır. Tablonun her hücre değerinin bir zaman damgası vardır. Kısacası, bir HBase'de:
- Tablo, satırların bir koleksiyonudur.
- Satır, sütun ailelerinin bir koleksiyonudur.
- Sütun ailesi bir sütun koleksiyonudur.
- Sütun, anahtar değer çiftlerinden oluşan bir koleksiyondur.
Aşağıda HBase'deki örnek bir tablo şeması verilmiştir.
Rowid | Sütun Ailesi | Sütun Ailesi | Sütun Ailesi | Sütun Ailesi | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
col1 | col2 | col3 | col1 | col2 | col3 | col1 | col2 | col3 | col1 | col2 | col3 | |
1 | ||||||||||||
2 | ||||||||||||
3 |
Sütun Odaklı ve Satır Odaklı
Sütun odaklı veritabanları, veri tablolarını veri satırları yerine veri sütunlarının bölümleri olarak depolayanlardır. Kısaca, sütun aileleri olacak.
Satır Odaklı Veritabanı | Sütun Odaklı Veritabanı |
---|---|
Online İşlem Süreci (OLTP) için uygundur. | Çevrimiçi Analitik İşleme (OLAP) için uygundur. |
Bu tür veritabanları, az sayıda satır ve sütun için tasarlanmıştır. | Sütun odaklı veritabanları büyük tablolar için tasarlanmıştır. |
Aşağıdaki görüntü, sütun odaklı bir veritabanındaki sütun ailelerini gösterir:
HBase ve RDBMS
HBase | RDBMS |
---|---|
HBase şemasızdır, sabit sütun şeması konseptine sahip değildir; yalnızca sütun ailelerini tanımlar. | Bir RDBMS, tabloların tüm yapısını açıklayan şeması tarafından yönetilir. |
Geniş masalar için yapılmıştır. HBase, yatay olarak ölçeklenebilir. | İnce ve küçük masalar için yapılmıştır. Ölçeklemesi zor. |
HBase'de işlem yok. | RDBMS işlemseldir. |
Normalleştirilmiş verilere sahip. | Veriler normalleştirilmiş olacaktır. |
Yarı yapılandırılmış ve yapılandırılmış veriler için iyidir. | Yapılandırılmış veriler için iyidir. |
HBase'nin Özellikleri
- HBase doğrusal olarak ölçeklenebilir.
- Otomatik arıza desteğine sahiptir.
- Tutarlı okuma ve yazma sağlar.
- Hem kaynak hem de hedef olarak Hadoop ile entegre olur.
- İstemci için kolay java API'sine sahiptir.
- Kümeler arasında veri replikasyonu sağlar.
HBase Nerede Kullanılır
Apache HBase, Büyük Verilere rastgele, gerçek zamanlı okuma / yazma erişimine sahip olmak için kullanılır.
Emtia donanım kümelerinin üstünde çok büyük tablolar barındırır.
Apache HBase, Google'ın Bigtable'ına göre modellenmiş ilişkisel olmayan bir veritabanıdır. Bigtable, Google Dosya Sisteminde çalışır, aynı şekilde Apache HBase, Hadoop ve HDFS üzerinde çalışır.
HBase Uygulamaları
- Ağır uygulamalar yazmaya ihtiyaç duyulduğunda kullanılır.
- HBase, mevcut verilere hızlı rastgele erişim sağlamamız gerektiğinde kullanılır.
- Facebook, Twitter, Yahoo ve Adobe gibi şirketler dahili olarak HBase kullanır.
HBase Geçmişi
Yıl | Etkinlik |
---|---|
Kasım 2006 | Google makaleyi BigTable'da yayınladı. |
Şubat 2007 | İlk HBase prototipi bir Hadoop katkısı olarak oluşturuldu. |
Ekim 2007 | Hadoop 0.15.0 ile birlikte ilk kullanılabilir HBase piyasaya sürüldü. |
Ocak 2008 | HBase, Hadoop'un alt projesi oldu. |
Ekim 2008 | HBase 0.18.1 yayınlandı. |
Ocak 2009 | HBase 0.19.0 yayınlandı. |
Eylül 2009 | HBase 0.20.0 yayınlandı. |
Mayıs 2010 | HBase, Apache'nin üst düzey projesi oldu. |