hbase kullanım senaryoları

43
Hbase Kullanım Senaryoları Talat UYARER Email: [email protected] Twitter: @talatuyarer

Upload: talat-uyarer

Post on 06-Aug-2015

471 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Hbase Kullanım Senaryoları

Hbase Kullanım SenaryolarıTalat UYARER

Email: [email protected]: @talatuyarer

Page 2: Hbase Kullanım Senaryoları

Hızlı Bir Bakış

● Hbase Hakkında ● Hbase Nedir ● Hbase Nasıl Çalışır● HDFS vs HBase● Kimler Hbase Kullanıyor

● Tanımlar● Kullanım Senaryoları

● İyi Uygulamalar● Kötü Uygumalar● Spesifik Çözümler

● Sorular

Page 3: Hbase Kullanım Senaryoları

Hbase Hakkında

Page 4: Hbase Kullanım Senaryoları

Hbase Nedir ?

● 2007 senesinde Powerset Firması tarafından geliştirilmeye başlandı.

● Google'ın Big Table makalesi temeli● HDFS üzerinde çalışabilen NoSQL datastore● Java ile yazılmış, Non-relational, Distributed sistem

Page 5: Hbase Kullanım Senaryoları

Hbase Nedir ?

●Yüksek boyutta veri saklayabilir (TB/PB)

●Yüksek “throughput” sağlar●Unstructured yada variable column data saklayabilir.

●Devveri de rastgele okuma ve yazma yapmanıza olanak sağlar

Page 6: Hbase Kullanım Senaryoları

Hbase Nedir ? / CAP Teorisi

Consistency (tutarlılık) : Dağıtık sisteme bağlı tüm node'larda aynı verilerin olması, Availability (kullanılabilirlik) : tüm isteklere her zaman cevap verilebilmesi Partition Tolerance (parça toleransı) : sistem parçalarından birinin çalışmaması durumunda sistemin düzgün devam etmesi

Page 7: Hbase Kullanım Senaryoları

Ağustos 2013: Flurry 1k-1k nodelı cluster replicationı

Hbase Tarihçesi

20142008 2009 2010 2011 20132012

2012 Mayıs: HBaseCon 20122012 Mayıs: HBaseCon 2012

2013 Haziran: HBaseCon 20132013 Haziran: HBaseCon 20132011: FB

Mesajlar Hbase'de

2011: FB Mesajlar Hbase'de 2009 Yazında

StumbleUpon HBase ~0.20Production da

2009 Yazında StumbleUpon HBase ~0.20Production da

2011 Kasım: Cassini2011 Kasım: Cassini

2013PhoenixProjesi Başladı

2013PhoenixProjesi Başladı2011: Web

Crawl Cache2011: Web Crawl Cache

2011 Eylül: HBase TDG Yayınlandı

2011 Eylül: HBase TDG Yayınlandı

Kasım 12: HBase in Actionyayınlandı

Kasım 12: HBase in Actionyayınlandı

2015

2014 Mayıs: HBaseCon 20142014 Mayıs: HBaseCon 2014

Ocak 2015 Hbase v1.0.0Ocak 2015 Hbase v1.0.0

Page 8: Hbase Kullanım Senaryoları

Hbase Nasıl Çalışır / Daemonlar

•HBase Master•RegionServer•ZooKeeper•HDFS•NameNode/Standby NameNode•DataNode

Page 9: Hbase Kullanım Senaryoları

Hbase Nasıl Çalışır / Daemon Konumları

Hbase Master

Zookeeper

Hadoop Namenode

Standby Namenode

Hbase Region Server

Hadoop Datanode

Hbase Region Server

Hadoop Datanode

Hbase Region Server

Hadoop Datanode

Hbase Region Server

Hadoop Datanode

Hbase Master

Zookeeper

Hbase Master

Zookeeper

Master Serverlar

Slave Serverlar

Page 10: Hbase Kullanım Senaryoları

Hbase Nasıl Çalışır / Okuma - Yazma

Page 11: Hbase Kullanım Senaryoları

Hbase Nasıl Çalışır

Row Key

Column Family 1 Column Family 2

Column Name

Column Value

Column Name

Column Value

Tablolar Column Familyler den kırılıp store ediliyor

Page 12: Hbase Kullanım Senaryoları

Kimler Hbase Kullanıyor

Page 13: Hbase Kullanım Senaryoları

Tanımlamalar

Page 14: Hbase Kullanım Senaryoları

Kullanım Tipi Tanımlama

●Veri olarak ne saklanacak ?● Entity data ● Event data

●Verinin kullanım şekli nasıl ?● Operasyonel kullanım● Analitik kullanım

●Veriye erişim nasıl ?● Real time vs. Batch ● Random vs. Sequential

Page 15: Hbase Kullanım Senaryoları

Veri olarak ne saklanacak ?

Entity data nedir ?Verinin şuan ki durumunun tutulmasıGenelde gerçek zamanlı (real time) okuma ve yazma yapılır.

● Hesaplar● Kullanıcılar● Geolocation noktaları● Tıklama Sayısı ve Metrikleri

İnsanların yada makinelerin sayısının artmasıyla milyarlarca farklı entity data oluşturulabilir.

Page 16: Hbase Kullanım Senaryoları

Veri olarak ne saklanacak ?

Event data nedir ?Zamana bağlı birbirini takip eden data tipidir. Genelde real time yazma işlemi yapılır.

● Zamana bağlı Sensor datası● Borsa (Hisse senedi) bilgisi● Arşiv Metrikler● Tıklama time-seriesleri

Zamana bağlı olduğu için zaman ilerledikçe veri büyüyecektir.

Eğer elinizdeki veri [Entityler] * [Eventler] = Dev veri ile uğraşıyorsunuz demektir.

Page 17: Hbase Kullanım Senaryoları

Verinin kullanım şekli nasıl ?

● Entity odaklı sorular● E entitysi hakkında herşeyi bana getir● E entitysinin en son V eventini getir ● E entitysinin en son n adet V eventini getir● E nin [t1,t2] zaman aralığındaki V eventlerini getir.

● Zaman ya da Event odaklı sorular● [t1,t2] arasındaki her bir entityi getir.● Bir takım kriterlere uyan event V leri bul

Page 18: Hbase Kullanım Senaryoları

Veriye erişim şekli nasıl ?

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

Page 19: Hbase Kullanım Senaryoları

Kullanım Senaryoları

Page 20: Hbase Kullanım Senaryoları

Kullanım Senaryoları

Doğru Kullanım● Simple Entities● Mesaj DB● Graph Store● Metrik Store

Kötü Kullanım● Value olarak Büyük veri saklama● RDBMS port● Analitik Arşivi

Page 21: Hbase Kullanım Senaryoları

Simple Entities

● Saf Entity saklanır. Saklanan entityler arasında ilişki yoktur● Batch yada real time random writes● Real-time random read● RDMS'in denormalize hali olabilirler● Birden fazla kaynaktan farklı yapıda veri

barındırabilir● Şemaları:

● Her bir entity için bir satır(row)● Rowkey, entitynin ID si yada hash'i● Col qualifer'ı Property/Field olabilir

Page 22: Hbase Kullanım Senaryoları

Simple Entities

Teklif Kişiselleştirme Sistemi

Row Key Column Family 1 Column Family 2

UserID Kullanıcı Geçmişi ve Profil Bilgisi

Kullanıcı Email Geçmişi

Kullanıcı geçmişi ve bilgileri üstüne

yazılıyor

Email aktivitileriHer gün için bir

column'a yazılıyorYaklaşık 200 col.

Page 23: Hbase Kullanım Senaryoları

Simple Entities

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

HBase Replication

Solr

Page 24: Hbase Kullanım Senaryoları

Mesaj Store

● Mesaj Verisi:● Realtime Random writes: Emails, SMS, MMS, IM ● Realtime random updates: Msg okuma, taşıma, silme vb.● Zamana göre sıralı top-N gönderinin okunması● Farklı boyutlar kayıt büyüklükleri● Time series veri, ama büyük oranda random read/write

● Şeması:● Row da kullanıcının feed/inbox'ı tutulur● Row key'i UID or UID + zaman dır● Column Qualifier'ı zaman yada konuşma id+zaman.● Column Familyler Index için kullanılır.

Page 25: Hbase Kullanım Senaryoları

Mesaj Store

● Kullanım Örnekler:● Facebook Mesajlar, Xiaomi Mesajlar● Telekom SMS/MMS servisleri● Tumblr, Pinterest gibi Feedler

Page 26: Hbase Kullanım Senaryoları

Mesaj Store

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

Page 27: Hbase Kullanım Senaryoları

Graph Store

● Graph Verisi: Tüm entityler ve ilişkileri● Batch ya da realtime, random writes● Batch ya da realtime, random reads

● Şema: ● Row da Node bilgisi tutulur● Row key Node Idsinden oluşur● Column Qualifier Edge ID ya da

properties:values bilgisinden oluşur● Kullanım Örnekleri:

● Web Cache – Yahoo!, Trend Micro● Titan Graph DB ● Sessionization (finansal transactionlar,

click stream, network trafik)● Devlet (Suçlu tespiti işlemlerinde)

Page 28: Hbase Kullanım Senaryoları

Graph Store

Row Key Column Family 1 Column Family 2

com.example.www:http/about/

Sayfadan çıkan linkler

Sayfaya Gelen Linkler

Sayfadan çıkan herlink bir column name

olarak tutulurSayfa gelen her link column olarak tutulur

Page 29: Hbase Kullanım Senaryoları

Graph Store

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

Page 30: Hbase Kullanım Senaryoları

Metrik Store

● Metrik Verisi:● Çok sık güncellenen bir veridir.● Artırımsaldır● Bilgiler MR kodları ile yada Bulk load ile Hbase yüklenir

● Şeması:● Row da metrik bilgisi tutulur● Row key'i zaman içerir ve birden fazla bilgiden oluşabilir.● Column Qualifier'ı Property/Field olabilir

● Kullanım Alanları● Kampanya gösterim/ Tıklanma Sayıları (Reklam)● Sensor verisi (Enerji, Üretim, Otomotive)

Page 31: Hbase Kullanım Senaryoları

Metrik Store

Row Key Column Family 1 Column Family 2

<adviserid:timestamp:adsid>

Statik bir veri taşır

Row key birden fazla veri taşır

Page 32: Hbase Kullanım Senaryoları

Metrik Store

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

Page 33: Hbase Kullanım Senaryoları

Value olarak büyük veri saklama (Kötü)

● Columnlar da 3MB'dan büyük veri saklamak● Şeması:

● Normal entity pattern, bazı hücrelerinin boyutu büyük● Örneğin

● Fotograf yada videoyu Hbase'de saklamak● Bir hücrenin çok yüksek sayıda update alması

● Problem● Okuma için optimize ederken hata alır. (Compaction)● Hücreler atomiktir. Tüm hücreyi tekrar yazmak zorunda,

yazma işlemi çok sık olması durumunda hata verecektir.

Page 34: Hbase Kullanım Senaryoları

Direk RDBMS portu olarak kullanma

● RDBMS şemasının biri bir aynısını kullanma● Şeması:

● RDBMS de olduğu gibi çok fazla tabloya sahip● Rowkey olarak primary key yada auto incr. ● Column qualifierlar field isimleri● Manuel olarak join işlemi yapılır.

● Çözüm● Hbase SQL database değil● Mutli-region yada Multi-table da transaction desteklenmiyor● Şemayı denormalize etmelisiniz.

Page 35: Hbase Kullanım Senaryoları

Direkt RDBMS portu olarak kullanma

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

Page 36: Hbase Kullanım Senaryoları

Analitik Arşiv

● Zamana göre parçalanmış kronolojik data tutulması● Real time write, Kronolojik zaman primary index

olarak kullanılıyorsa● Tüm rowlar üzerinden Column odaklı veri toplama● Bulk read, genellikle dönemsel raporlama için

● Şeması:● Row key date+xxx yada salt+date+xxx.● Column Qualifier'ı Property/Field olabilir

● Örneğin● Tarih bazlı makine logları● Tam clickstream

Page 37: Hbase Kullanım Senaryoları

Entity Time Series (Kısmen)

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

Flume

Custom App

Page 38: Hbase Kullanım Senaryoları

Analitik Arşiv

● Hbase'in öncelikli kullanım alanı için uygun değildir● Tüm tabloyı scan ederken hata verebilir● Compaction'da hata verebilir● Zamana bağlı regionlarda şişme olacağından

yazım esnasında hata verebilir● Hbase kullanmak yerine

● Veriyi HDFS üzerinde tutabilirsiniz.● Belirli zaman aralıklarında HDFS+MR ile veriyi toparlayıp Hbase'e yazılabilir

Page 39: Hbase Kullanım Senaryoları

Analitik Arşiv

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

Page 40: Hbase Kullanım Senaryoları

Entity Time Series (Kısmen)

● Hbase uygun bir time series pattern.● Event verisi için Random write, Belirli bir event verisi için

random read yada data toplama (aggregation)● Veriler sayaçlar yardımı ile toplanıyor. Full aggregation yok.

● Şema● Rowkey: entity+timestamp yada entity+salt+timestamp● Column qualifer olarak property● TTL ile verilerin ömrü takip ediliyor. Geri dönük veri

yazımı yok● Örnek olarak

● OpenTSDB● Facebook Insights

Page 41: Hbase Kullanım Senaryoları

Entity Time Series (Kısmen)

HBase Client

Put, Incr, Append

HBase Client

Get, Scan

Bulk Import

HBase Client

HBase Replication

HBase Replication

low latency

high throughput

GetsShort scan

Full Scan, MapReduce

HBase Scanner

Flume

Custom App

Page 42: Hbase Kullanım Senaryoları
Page 43: Hbase Kullanım Senaryoları

http://www.slideshare.net/cloudera/case-studies-session-3bhttp://www.slideshare.net/HBaseCon/case-studies-session-4a-35937605?next_slideshow=1http://www.slideshare.net/cloudera/5-h-base-con-2012-finalhttp://www.slideshare.net/cloudera/case-studies-session-3ahttp://www.slideshare.net/cloudera/8-h-base-the-use-case-in-e-bay-cassini?related=1http://www.slideshare.net/cloudera/case-studies-session-3bhttp://www.slideshare.net/cloudera/5-h-base-schemahbasecon2012http://blog.adroll.com/june-sf-hadoop-meetuphttp://www.cloudera.com/content/cloudera/en/resources/library/hbasecon/video-hbasecon-2012-real-performance-gains-with-real-time-data.htmlhttp://www.cloudera.com/content/cloudera/en/our-customers/Omneo.htmlhttp://www.slideshare.net/HBaseCon/case-studies-session-2-35937576http://www.youtube.com/watch?v=N5JY2E52fg4http://www.slideshare.net/HBaseCon/case-studies-session-6http://www.slideshare.net/cloudera/3-storing-and-manipulating-graphs-in-h-base-updated-last-minutehttp://www.slideshare.net/HBaseCon/case-studies-session-7http://www.slideshare.net/HBaseCon/hbase-just-the-basics

Kaynakça