SlideShare a Scribd company logo
1 of 43
Download to read offline
Hbase Kullanım Senaryoları
Talat UYARER
Email: talat@uyarer.com
Twitter: @talatuyarer
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
Hbase Hakkında
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
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
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
Ağustos 2013:
Flurry 1k-1k nodelı
cluster replicationı
Hbase Tarihçesi
20142008 2009 2010 2011 20132012
2012 Mayıs:
HBaseCon 2012
2012 Mayıs:
HBaseCon 2012
2013 Haziran:
HBaseCon 2013
2013 Haziran:
HBaseCon 20132011: FB
Mesajlar
Hbase'de
2011: FB
Mesajlar
Hbase'de2009 Yazında
StumbleUpon
HBase ~0.20
Production da
2009 Yazında
StumbleUpon
HBase ~0.20
Production da
2011 Kasım:
Cassini
2011 Kasım:
Cassini
2013
Phoenix
Projesi Başladı
2013
Phoenix
Projesi Başladı2011: Web
Crawl Cache
2011: Web
Crawl Cache
2011 Eylül:
HBase TDG
Yayınlandı
2011 Eylül:
HBase TDG
Yayınlandı
Kasım 12:
HBase in
Action
yayınlandı
Kasım 12:
HBase in
Action
yayınlandı
2015
2014 Mayıs:
HBaseCon 2014
2014 Mayıs:
HBaseCon 2014
Ocak 2015
Hbase v1.0.0
Ocak 2015
Hbase v1.0.0
Hbase Nasıl Çalışır / Daemonlar
•HBase Master
•RegionServer
•ZooKeeper
•HDFS
•NameNode/Standby NameNode
•DataNode
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
Hbase Nasıl Çalışır / Okuma - Yazma
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
Kimler Hbase Kullanıyor
Tanımlamalar
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
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.
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.
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
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
Gets
Short scan
Full Scan,
MapReduce
HBase Scanner
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
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
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 aktivitileri
Her gün için bir
column'a yazılıyor
Yaklaşık 200 col.
Simple Entities
HBase Client
Put, Incr,
Append
HBase Client
Get, Scan
Bulk Import
HBase Client
HBase
Replication
low latency
high throughput
Gets
Short scan
Full Scan,
MapReduce
HBase Scanner
HBase
Replication
Solr
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.
Mesaj Store
● Kullanım Örnekler:
● Facebook Mesajlar, Xiaomi Mesajlar
● Telekom SMS/MMS servisleri
● Tumblr, Pinterest gibi Feedler
Mesaj Store
HBase Client
Put, Incr,
Append
HBase Client
Get, Scan
Bulk Import
HBase Client
HBase
Replication
HBase
Replication
low latency
high throughput
Gets
Short scan
Full Scan,
MapReduce
HBase Scanner
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)
Graph Store
Row Key Column Family 1 Column Family 2
com.example.www:
http/about/
Sayfadan çıkan
linkler
Sayfaya Gelen
Linkler
Sayfadan çıkan her
link bir column name
olarak tutulur
Sayfa gelen her link
column olarak tutulur
Graph Store
HBase Client
Put, Incr,
Append
HBase Client
Get, Scan
Bulk Import
HBase Client
HBase
Replication
HBase
Replication
low latency
high throughput
Gets
Short scan
Full Scan,
MapReduce
HBase Scanner
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)
Metrik Store
Row Key Column Family 1 Column Family 2
<adviserid:timesta
mp:adsid>
Statik bir veri taşır
Row key birden
fazla veri taşır
Metrik Store
HBase Client
Put, Incr,
Append
HBase Client
Get, Scan
Bulk Import
HBase Client
HBase
Replication
HBase
Replication
low latency
high throughput
Gets
Short scan
Full Scan,
MapReduce
HBase Scanner
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.
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.
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
Gets
Short scan
Full Scan,
MapReduce
HBase Scanner
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
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
Gets
Short scan
Full Scan,
MapReduce
HBase
Scanner
Flume
Custom
App
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
Analitik Arşiv
HBase Client
Put, Incr,
Append
HBase Client
Get, Scan
Bulk Import
HBase Client
HBase
Replication
HBase
Replication
low latency
high throughput
Gets
Short scan
Full Scan,
MapReduce
HBase Scanner
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
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
Gets
Short scan
Full Scan,
MapReduce
HBase
Scanner
Flume
Custom
App
http://www.slideshare.net/cloudera/case-studies-session-3b
http://www.slideshare.net/HBaseCon/case-studies-session-4a-35937605?next_slideshow=1
http://www.slideshare.net/cloudera/5-h-base-con-2012-final
http://www.slideshare.net/cloudera/case-studies-session-3a
http://www.slideshare.net/cloudera/8-h-base-the-use-case-in-e-bay-cassini?related=1
http://www.slideshare.net/cloudera/case-studies-session-3b
http://www.slideshare.net/cloudera/5-h-base-schemahbasecon2012
http://blog.adroll.com/june-sf-hadoop-meetup
http://www.cloudera.com/content/cloudera/en/resources/library/hbasecon/video-hbasecon-
2012-real-performance-gains-with-real-time-data.html
http://www.cloudera.com/content/cloudera/en/our-customers/Omneo.html
http://www.slideshare.net/HBaseCon/case-studies-session-2-35937576
http://www.youtube.com/watch?v=N5JY2E52fg4
http://www.slideshare.net/HBaseCon/case-studies-session-6
http://www.slideshare.net/cloudera/3-storing-and-manipulating-graphs-in-h-base-updated-last-
minute
http://www.slideshare.net/HBaseCon/case-studies-session-7
http://www.slideshare.net/HBaseCon/hbase-just-the-basics
Kaynakça

More Related Content

What's hot

データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~Yugo Shimizu
 
Core i3,i5,i7 and i9 processors
Core i3,i5,i7 and i9 processorsCore i3,i5,i7 and i9 processors
Core i3,i5,i7 and i9 processorshajra azam
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)日本マイクロソフト株式会社
 
EMSを使用したクラウド時代のデバイス・ID管理
EMSを使用したクラウド時代のデバイス・ID管理EMSを使用したクラウド時代のデバイス・ID管理
EMSを使用したクラウド時代のデバイス・ID管理Hideyuki Sekiya
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용Seoro Kim
 
Fluentd and PHP
Fluentd and PHPFluentd and PHP
Fluentd and PHPchobi e
 
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~Yugo Shimizu
 
Documentação da infraestrutura de rede
Documentação da infraestrutura de redeDocumentação da infraestrutura de rede
Documentação da infraestrutura de redeMarcos Monteiro
 
情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)
情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)
情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)Yugo Shimizu
 
アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~
アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~
アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~Yugo Shimizu
 
なぜ、CData Softwareが Power BI 専用 コネクターを 開発したのか?
なぜ、CData Softwareが Power BI 専用 コネクターを 開発したのか?なぜ、CData Softwareが Power BI 専用 コネクターを 開発したのか?
なぜ、CData Softwareが Power BI 専用 コネクターを 開発したのか?CData Software Japan
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosValdir Junior
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
Power BI チュートリアル 導入・初級編
Power BI チュートリアル 導入・初級編Power BI チュートリアル 導入・初級編
Power BI チュートリアル 導入・初級編Osamu Masutani
 

What's hot (20)

Grids computacionais
Grids computacionaisGrids computacionais
Grids computacionais
 
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
データがない?あるある!!そこら中にあるんだぞ!~Web から取得できるデータの可能性~
 
Core i3,i5,i7 and i9 processors
Core i3,i5,i7 and i9 processorsCore i3,i5,i7 and i9 processors
Core i3,i5,i7 and i9 processors
 
130613-debug
130613-debug130613-debug
130613-debug
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
 
EMSを使用したクラウド時代のデバイス・ID管理
EMSを使用したクラウド時代のデバイス・ID管理EMSを使用したクラウド時代のデバイス・ID管理
EMSを使用したクラウド時代のデバイス・ID管理
 
NVMe Conformance Tool for SSD Testing
NVMe Conformance Tool for SSD TestingNVMe Conformance Tool for SSD Testing
NVMe Conformance Tool for SSD Testing
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용
 
Fluentd and PHP
Fluentd and PHPFluentd and PHP
Fluentd and PHP
 
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
 
Documentação da infraestrutura de rede
Documentação da infraestrutura de redeDocumentação da infraestrutura de rede
Documentação da infraestrutura de rede
 
ppt on database management
ppt on database management ppt on database management
ppt on database management
 
情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)
情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)
情報の伝え方が変わる!Power BIでレポートを作ってみよう(前半戦)
 
アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~
アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~
アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~
 
1 - Introdução ao linux
1 - Introdução ao linux1 - Introdução ao linux
1 - Introdução ao linux
 
なぜ、CData Softwareが Power BI 専用 コネクターを 開発したのか?
なぜ、CData Softwareが Power BI 専用 コネクターを 開発したのか?なぜ、CData Softwareが Power BI 専用 コネクターを 開発したのか?
なぜ、CData Softwareが Power BI 専用 コネクターを 開発したのか?
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Power BI チュートリアル 導入・初級編
Power BI チュートリアル 導入・初級編Power BI チュートリアル 導入・初級編
Power BI チュートリアル 導入・初級編
 

Similar to Hbase Kullanım Senaryoları

Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziHakan Ilter
 
Pig ve Hive ile Hadoop Üzerinde Veri Analizi v2
Pig ve Hive ile Hadoop Üzerinde Veri Analizi v2Pig ve Hive ile Hadoop Üzerinde Veri Analizi v2
Pig ve Hive ile Hadoop Üzerinde Veri Analizi v2Hakan Ilter
 
Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.comHakan Ilter
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008mtcakmak
 
Enterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH AnalyticsEnterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH AnalyticsGokhan Atil
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL OverviewCihan Özhan
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosqlOrçun Çolak
 
C# 5 Yeni özellikler
C# 5 Yeni özelliklerC# 5 Yeni özellikler
C# 5 Yeni özelliklerErkan BALABAN
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkHakan Sarıbıyık
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesiTalha Kabakus
 
Büyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lBüyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lHakan Ilter
 
PHP'ye Giriş
PHP'ye GirişPHP'ye Giriş
PHP'ye Girişefedincer
 
Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data PresentationSerkan Özal
 
Node js part 1 shared
Node js part 1 sharedNode js part 1 shared
Node js part 1 sharedEngin Yelgen
 

Similar to Hbase Kullanım Senaryoları (20)

Nosql veritabanlari
Nosql veritabanlariNosql veritabanlari
Nosql veritabanlari
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri Analizi
 
Pig ve Hive ile Hadoop Üzerinde Veri Analizi v2
Pig ve Hive ile Hadoop Üzerinde Veri Analizi v2Pig ve Hive ile Hadoop Üzerinde Veri Analizi v2
Pig ve Hive ile Hadoop Üzerinde Veri Analizi v2
 
Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.com
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
 
Enterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH AnalyticsEnterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH Analytics
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
 
Big Data Sunum
Big Data SunumBig Data Sunum
Big Data Sunum
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosql
 
C# 5 Yeni özellikler
C# 5 Yeni özelliklerC# 5 Yeni özellikler
C# 5 Yeni özellikler
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan Sarıbıyık
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi
 
Büyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lBüyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1l
 
PHP'ye Giriş
PHP'ye GirişPHP'ye Giriş
PHP'ye Giriş
 
Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)
 
Linkle mimari
Linkle mimariLinkle mimari
Linkle mimari
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
 
Node js part 1 shared
Node js part 1 sharedNode js part 1 shared
Node js part 1 shared
 
Sukru_TRSUG2016
Sukru_TRSUG2016Sukru_TRSUG2016
Sukru_TRSUG2016
 

Hbase Kullanım Senaryoları

  • 1. Hbase Kullanım Senaryoları Talat UYARER Email: talat@uyarer.com Twitter: @talatuyarer
  • 2. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. Ağustos 2013: Flurry 1k-1k nodelı cluster replicationı Hbase Tarihçesi 20142008 2009 2010 2011 20132012 2012 Mayıs: HBaseCon 2012 2012 Mayıs: HBaseCon 2012 2013 Haziran: HBaseCon 2013 2013 Haziran: HBaseCon 20132011: FB Mesajlar Hbase'de 2011: FB Mesajlar Hbase'de2009 Yazında StumbleUpon HBase ~0.20 Production da 2009 Yazında StumbleUpon HBase ~0.20 Production da 2011 Kasım: Cassini 2011 Kasım: Cassini 2013 Phoenix Projesi Başladı 2013 Phoenix Projesi Başladı2011: Web Crawl Cache 2011: Web Crawl Cache 2011 Eylül: HBase TDG Yayınlandı 2011 Eylül: HBase TDG Yayınlandı Kasım 12: HBase in Action yayınlandı Kasım 12: HBase in Action yayınlandı 2015 2014 Mayıs: HBaseCon 2014 2014 Mayıs: HBaseCon 2014 Ocak 2015 Hbase v1.0.0 Ocak 2015 Hbase v1.0.0
  • 8. Hbase Nasıl Çalışır / Daemonlar •HBase Master •RegionServer •ZooKeeper •HDFS •NameNode/Standby NameNode •DataNode
  • 9. 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
  • 10. Hbase Nasıl Çalışır / Okuma - Yazma
  • 11. 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
  • 14. 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
  • 15. 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.
  • 16. 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.
  • 17. 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
  • 18. 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 Gets Short scan Full Scan, MapReduce HBase Scanner
  • 20. 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
  • 21. 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
  • 22. 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 aktivitileri Her gün için bir column'a yazılıyor Yaklaşık 200 col.
  • 23. Simple Entities HBase Client Put, Incr, Append HBase Client Get, Scan Bulk Import HBase Client HBase Replication low latency high throughput Gets Short scan Full Scan, MapReduce HBase Scanner HBase Replication Solr
  • 24. 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.
  • 25. Mesaj Store ● Kullanım Örnekler: ● Facebook Mesajlar, Xiaomi Mesajlar ● Telekom SMS/MMS servisleri ● Tumblr, Pinterest gibi Feedler
  • 26. Mesaj Store HBase Client Put, Incr, Append HBase Client Get, Scan Bulk Import HBase Client HBase Replication HBase Replication low latency high throughput Gets Short scan Full Scan, MapReduce HBase Scanner
  • 27. 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)
  • 28. Graph Store Row Key Column Family 1 Column Family 2 com.example.www: http/about/ Sayfadan çıkan linkler Sayfaya Gelen Linkler Sayfadan çıkan her link bir column name olarak tutulur Sayfa gelen her link column olarak tutulur
  • 29. Graph Store HBase Client Put, Incr, Append HBase Client Get, Scan Bulk Import HBase Client HBase Replication HBase Replication low latency high throughput Gets Short scan Full Scan, MapReduce HBase Scanner
  • 30. 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)
  • 31. Metrik Store Row Key Column Family 1 Column Family 2 <adviserid:timesta mp:adsid> Statik bir veri taşır Row key birden fazla veri taşır
  • 32. Metrik Store HBase Client Put, Incr, Append HBase Client Get, Scan Bulk Import HBase Client HBase Replication HBase Replication low latency high throughput Gets Short scan Full Scan, MapReduce HBase Scanner
  • 33. 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.
  • 34. 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.
  • 35. 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 Gets Short scan Full Scan, MapReduce HBase Scanner
  • 36. 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
  • 37. 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 Gets Short scan Full Scan, MapReduce HBase Scanner Flume Custom App
  • 38. 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
  • 39. Analitik Arşiv HBase Client Put, Incr, Append HBase Client Get, Scan Bulk Import HBase Client HBase Replication HBase Replication low latency high throughput Gets Short scan Full Scan, MapReduce HBase Scanner
  • 40. 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
  • 41. 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 Gets Short scan Full Scan, MapReduce HBase Scanner Flume Custom App
  • 42.
  • 43. http://www.slideshare.net/cloudera/case-studies-session-3b http://www.slideshare.net/HBaseCon/case-studies-session-4a-35937605?next_slideshow=1 http://www.slideshare.net/cloudera/5-h-base-con-2012-final http://www.slideshare.net/cloudera/case-studies-session-3a http://www.slideshare.net/cloudera/8-h-base-the-use-case-in-e-bay-cassini?related=1 http://www.slideshare.net/cloudera/case-studies-session-3b http://www.slideshare.net/cloudera/5-h-base-schemahbasecon2012 http://blog.adroll.com/june-sf-hadoop-meetup http://www.cloudera.com/content/cloudera/en/resources/library/hbasecon/video-hbasecon- 2012-real-performance-gains-with-real-time-data.html http://www.cloudera.com/content/cloudera/en/our-customers/Omneo.html http://www.slideshare.net/HBaseCon/case-studies-session-2-35937576 http://www.youtube.com/watch?v=N5JY2E52fg4 http://www.slideshare.net/HBaseCon/case-studies-session-6 http://www.slideshare.net/cloudera/3-storing-and-manipulating-graphs-in-h-base-updated-last- minute http://www.slideshare.net/HBaseCon/case-studies-session-7 http://www.slideshare.net/HBaseCon/hbase-just-the-basics Kaynakça