Professional Documents
Culture Documents
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
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
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
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