You are on page 1of 27

Dağıtık Veri Tabanı Sistemleri

Hbase ve Cassandra Karşılaştırması


Doğukan Çağatay
Ağustos 2010

1
Amaç
• Dağıtık veri işleme sistemlerini tanıma
– Dağıtık dosya sistemleri
– Dağıtık veri tabanı sistemleri
• Veri tabanı veri yazma-okuma işlemlerini test
etme.
• Okunan verileri işlemede MapReduce
Framework kullanma.
• Veri tabanı performans karşılaştırması
2
Sistemler
• Hadoop Framework
• HDFS
• MapReduce
• Hbase
• Cassandra

3
• Dağıtık Sistemler veri yoğun sistemler için açık
kaynaklı Software Framework
• Yaratıcısı Doug Cuttling
• GFS(Google File System) ve MapReduce
• Java
• Nutch (Apache Software Foundation)

4
• Başta Yahoo olmak üzere bir çok büyük kuruluş
Hadoop ve ya dağıtımlarını kullanmaktadır.
o A9.com o LinkedIn
o AOL o Meebo
o Booz Allen Hamilton o Metaweb
o EHarmony o The New York Times
o Facebook o Ning
o Fox Interactive Media o Powerset
o Freebase o Rackspace
o IBM o StumbleUpon
o ImageShack o Twitter
o ISI o Veoh
o Joost
o Last.fm

5
• Büyük dosyalarla çalışmak üzere dizayn edilmiş, dağıtık
dosya sistemi
• Kendi replikasyon sistemi vardır.
• Makineler arasında şef-işçi ilişkisi vardır
• Veri tutma için gerekli olan Namenode (şef) ve Datanode
(işçi) makineler gereklidir.
• Namenode tek olmak zorundadır, verilerin nerede
olduklarını tutar.
• Namenode makinesi ölürse sistem kullanılamaz.(single
node failure)
• Makineler kendi aralarında haberleşip, veri taşıma,
kopyalama, silme işlemini gerçekleştirebilir.
• Rack-aware bir dosya sistemidir.
6
7
8
• Google patentli, çok bilgisayarlı dağıtık sistemlerde, cok
buyuk boyutta verileri işlemeyi sağlayan bir software
framework.
• Özelleşmiş dosya sistemlerinde çalışabilir (GFS, HDFS)
• Çalışma sistemi 2 basamaktan oluşur;
– Map: Ana bilgisayar büyük bir problemi bölerek,
çözülmeleri için diğer bilgisayarlara dağıtır.
– Reduce: Çözülen küçük problemlerin sonuçları ana
bilgisayara gider, ve bu çözümler birleştirilerek büyük
problemin çözümü elde edilir.
• MapReduce’un avantajı, işlemleri dağıtık olarak
yapması ve paralel operasyonlara olanak tanıması

9
• Hbase non-relational, çok boyutlu, dağıtık veri
tabanı yönetim sistemidir.
• Hadoop altyapısında HDFS’in üzerinde çalışır.
• Google’ın Big-table veri tabanı sisteminden
esinlenerek geliştirilmiştir.
• Java ile yazılmıştır

10
Tablo Yapısı

11
• Cassandra başta Facebook tarafından geliştirilen
non-relational, çok boyutlu, açık kaynaklı dağıtık
veri tabanı yönetim sistemidir.
• Facebook’un inbox araması için geliştirilmiştir.
• Dağıtık Cassandra sisteminde şef-işçi ilişkisi
yoktur.
• Tablo yapısı Google’ın Big-table tablo yapısına
benzer yapıdadır fakat veri saklama yapısı
Amazon’un Dynamo sistemine benzemektedir.
• Apache Software Foundation

12
Tablo Yapısı

13
Test Hazırlıkları
• Her iki veri tabanı sistemine de aynı veri
yüklendi.
• Hadoop ve MapReduce Framework’unu
kullanarak kelime sayma programı çalıştırıldı.
• Her iki veri tabanı sisteminde 4 adet Map
işlemi çalıştırılarak zaman ölçmesi yapıldı.

14
Kelime Sayma Programı
• Kelime sayma programı veri tabanındaki
verileri okuyarak, her kelimeden kaç adet yer
aldığını buluyor.
• MapReduce Framework’te Programın Akışı
– Veri tabanından veriyi okuma
– Map fonksiyonu ile her kelimeyi ayırma işlemi
– Reduce fonksiyonu ile ayrılan kelimeleri sayıp
birleştirme
– Çıktı

15
Testin Amacı
• Cassandra ve Hbase veri tabanlarından veri
alıp, MapReduce calıştırarak her bir map
işlemindeki veri okuma yükünün belirlenmesi.
• Kelime Programı Akış Şeması
– Veri tabanından veriyi okuma
– Map fonksiyonu ile her kelimeyi ayırma işlemi
– Reduce fonksiyonu ile ayrılan kelimeleri sayıp
birleştirme
– Çıktı

16
Sonuçlar
• Her iki veri tabanına da 4 map işlemi yapıldı.
• Her iki veri tabanından da 6007 satır veri
okundu.
• 17.108.480 kelimede sayma işlemi gerçekleşti.
• Toplam işlenen veri boyutu 104.399 MB

17
Cassandra Sonuclar – 1
80000

70000

60000
Geçen Süre (ms)

50000
Veri Okuma
40000 Map

30000

20000

10000

0
1112 1122 1153 2275 3019 3611 4679
Okunan Satır Sayısı 18
Cassandra Sonuclar – 2
60,00%
55,00%
50,00%
45,00%
40,00%
Süre

Veri Okuma %
35,00%
30,00%
25,00%
20,00%
15,00%
1112 1122 1153 2275 3019 3611 4679

Okunan Satır Sayısı


19
Hbase Sonuclar - 1

120000

100000
Geçen Süre (ms)

80000
Veri Okuma (ms)
60000
Map (ms)
40000

20000

0
972 1012 1978 2045
Okunan Satır Sayısı
20
Hbase Sonuclar – 2

90,00%

85,00%

80,00%
Süre

75,00% Veri Okuma %

70,00%

65,00%

60,00%
972 1012 1978 2045
Okunan Satır Sayısı
21
Sayısal Sonuclar
Cassandra
Satır Sayısı Map (ms) Veri Okuma (ms) Toplam Süre Map % Veri Okuma %
1112 13813 7187 21000 65,78% 34,22%
1122 12294 8706 21000 58,54% 41,46%
1153 12965 8035 21000 61,74% 38,26%
2275 28875 13125 42000 68,75% 31,25%
3019 38390 15610 54000 71,09% 28,91%
3611 46723 19277 66000 70,79% 29,21%
4679 57647 14353 72000 80,07% 19,93%

Hbase
Satır Sayısı Map (ms) Veri Okuma (ms) Toplam Süre Map % Veri Okuma %
972 11876 45124 57000 20,84% 79,16%
1012 11225 45775 57000 19,69% 80,31%
1978 22229 91771 114000 19,50% 80,50%
2045 23624 93376 117000 20,19% 79,81%

22
Doğrulama
• Test sonuçları veri tabanı sistemleri arasında
çok fark gösterdiği için doğrulama yapma
ihtiyacı duyduk.
• Doğrulama testinde de aynı şekilde veri
tabanından sadece veri okuma işlemi
gerçekleştirdik.
• Asıl testimizin sonuçlarını doğruladık.

23
Doğrulama Testi Sonucu

250000
Veri Okuma Süresi (ms)

200000

150000
Cassandra
100000 Hbase

50000

0
1 2 3 4 5 6 7 8 9 10
Test
24
Doğrulama Testi Sayısal Sonucu

Denemeler
(ms) 1 2 3 4 5 6 7 8 9 10 Ortalama
Cassandra 22195 15898 16559 16106 15513 14961 14771 14990 15102 15052 16114,7
Hbase 234200 233392 233545 233771 233293 233653 233881 233561 233673 233395 233636,4

Okunan Satır Sayısı : 6007

25
Karşılaştığımız Sorunlar
• Cassandra’nın Java API’si yok. Thrift API kullandık.
• Cassandra’nın kullanışlı bir shell’i yok.
• Internet sitelerindeki bazı dökümantasyon güncel değil.
• Class yapıları, sürümler arasında çok farklılık gösteriyor.
• Cassandra’da Map işleminin sayısını tek makine
içerisinde arttıramadık, makine sayısını arttırarak
sorunu çözdüğümüzde ise verinin eşit dağılmadığını
gördük ve veriyi eşit dağıtamadık.
• Cassandra’nın konfigürasyon ve kullanımında zorluklar
yaşadık.
• Hbase çok fazla ram ihtiyacı duydu.

26
Dinlediğiniz için teşekkürler.

27

You might also like