buğra Çakır - bmo.org.tr · kullanım modeli -nosql 15 23 mart 13 cumartesi. kullanım modeli...

108
NoSQL Buğra Çakır 23 Mart 13 Cumartesi

Upload: others

Post on 13-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

NoSQL Buğra Çakır

23 Mart 13 Cumartesi

Page 2: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

1. Veritabanı sistemleri, tarihsel gelişim2. NoSQL Dünyası3. Hadoop Ekosistemi

Sunum Planı

23 Mart 13 Cumartesi

Page 3: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

1. System R, IBM SEQUEL2. Ingres QUEL3. Objeler ve bunların ilişkileri ->

Edgar Frank "Ted" Codd “A Relational Model of Data for Large Shared Data Banks”, Larry Ellison “Oracle”

4. Objeler ve ilişkiler üzerinde işlem yapmayı sağlayan operatörler -> SQL

5. Veri bütünlüğünü sağlayan yöntemler

3

RDBMS Sistemleri

23 Mart 13 Cumartesi

Page 4: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

4

Büyük Balıklar

23 Mart 13 Cumartesi

Page 5: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

IBMOracleMicrosoftOther

5

RDBMS Pastası

23 Mart 13 Cumartesi

Page 6: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

6

Açık Kaynak Alternatifler

23 Mart 13 Cumartesi

Page 7: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Neden başka bir veritabanı ? Yeni başlayan her projede ilişkisel veritabanı

tercih ediliyor ???

7

23 Mart 13 Cumartesi

Page 8: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

EES - Eşzamanlılık Veri üstünde aynı anda yapılan işlemler Koordinasyon gerekiyor. Veri kaybı riski var.

8

23 Mart 13 Cumartesi

Page 9: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

EES - Entegrasyon Farklı uygulamalar birbirleriyle iletişime

geçmek istiyor. Aynı veritabanı üzerinde birden fazla

uygulama işlem yapabilir. Enterprise Integration Patterns : [Hohpe ve

Woolf]

9

23 Mart 13 Cumartesi

Page 10: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

EES - Standartlaşma SQL sürümleri birbirine benziyor. Öğrenmek çok kolay. Birinden diğerine geçmek kolay.

10

23 Mart 13 Cumartesi

Page 11: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Veri Modeli-Nesne Tasarımı Nesne modeli ile veri tabanındaki veri

modelini birleştirmek gerekiyor. Birindeki değişiklik diğerini etkiliyor. Eşleme yöntemleri devreye giriyor.◦ iBatis◦ Hibernate

11

23 Mart 13 Cumartesi

Page 12: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Kullanım Modeli -RDBMS

12

23 Mart 13 Cumartesi

Page 13: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Big Data Sosyal ağlar Internete bağlanan cihazlardaki artış Bu veriler nereye depolanacak ?◦ Büyük diskler◦ Büyük birincil hafıza◦ Çoklu işlem birimleri (CPU)◦ Maliyet yükseliyor.

13

23 Mart 13 Cumartesi

Page 14: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Bir uygulama - Bir veritabanı Her uygulamaya bir veritabanı. Web servisleriyle bağlıyoruz. JSON veya XML ile veriyi tanımlıyoruz.

14

23 Mart 13 Cumartesi

Page 15: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Kullanım Modeli -NoSQL

15

23 Mart 13 Cumartesi

Page 16: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Kullanım Modeli -NoSQL-SOA

16

23 Mart 13 Cumartesi

Page 17: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Kümeleme Aksaklıklar◦ Donanımdaki arızalar◦ Donanıma kolayca ulaşamama problemi

Kolay donanım (commodity)◦ Ucuz◦ Bozulduğunda yenisini takabilme imkanı

17

23 Mart 13 Cumartesi

Page 18: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Kümeleme İlişkisel veribanları doğası gereği kümeler

üzerinde çalışmaya elverişli değiller. Paylaşımlı Disk Mimarileri◦ Oracle RAC◦ Microsoft SQL Server

Tek noktadan arıza◦ Paylaşımlı disk mimarisi çöktüğü zaman

18

23 Mart 13 Cumartesi

Page 19: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Sharding Birden çok ilişkisel veritabanı sunucusu veri

kümesinin alt kümelerini tutar.◦ Uygulama alt kümelerin hangisinde işlem

yapılacağını tayin ederek veriye ulaşır.

19

23 Mart 13 Cumartesi

Page 20: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Google ve Amazon Maliyetlerin artması Arızalardaki geçişlerin uzun sürmesi Kümelemedeki fonksiyonel yetersizliklerden

dolayı

Veri depolama için yeni arayışlar başladı...

BigTable - Google Dynamo - Amazon

20

23 Mart 13 Cumartesi

Page 21: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

NoSQL’in Farkları SQL kullanmıyor. Teknolojik anlam ifade etmiyor, bir hareket !

21

23 Mart 13 Cumartesi

Page 22: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Hareketin Sonucu İlişkisel veritabanları dışındaki alternatifler

günyüzüne çıktı. Entegrasyon veritabanlarından -> Uygulama

veritabanlarına geçiş başladı. Kümeleme üzerinde çalışabilen veritabanlarına

sahibiz. Açık kaynak

22

23 Mart 13 Cumartesi

Page 23: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

İlişkisel Veri Katmanları Uygulama Veri Modeli - ER diyagram Veritabanı Saklama Modeli - RDBMS

Satırlar ve Sütunlar...

23

23 Mart 13 Cumartesi

Page 24: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

NoSQL Veri Katmanları Key-Value Document Column Family Graph

Toplam Modeli (Aggregates) - KeyValue, Document, Column Family

24

23 Mart 13 Cumartesi

Page 25: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Toplamlar “Birbirine bağlı nesnelerin bir arada tek bir

nesne gibi değerlendirilmesi”

25

23 Mart 13 Cumartesi

Page 26: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Kümeleme Modelleri Scale Up - Sunucu gücünü yükseltme Scale Out - Yeni sunuculara dağıtma Toplam (Aggregate) bu modele uygun.

26

23 Mart 13 Cumartesi

Page 27: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Veri Dağıtımı Yöntemler;◦ Replikasyon ve sharding Master-slave Peer to peer

27

23 Mart 13 Cumartesi

Page 28: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Tek sunucu Hiçbir dağıtım stratejisi yok. Bütün işlemler tek makina üzerinde

gerçekleşiyor.

28

23 Mart 13 Cumartesi

Page 29: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Sharding Veriyi alt kümelere ayırıyoruz. Her alt küme ayrı bir sunucuda çalışıyor. Sharding önceden tasarlanmalı !

29

23 Mart 13 Cumartesi

Page 30: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Master-Slave Replikasyon Master’dakiler Slave’e yazılır. Okuma çok yapılıyorsa bu işe yarar. Yazması çok olan uygulamalarda ağır bir yük

oluşturur, tavsiye edilmez. Master çökerse, Slave’lerden okuma devam

eder. Slave’ler master olabilir. Read-write uyumsuzluğu olabilir !!!

30

23 Mart 13 Cumartesi

Page 31: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Peer2Peer Replikasyon Her node read-write yapabilir. Node’lar write operasyonlarını birbirleriyle

paylaşırlar. Master-slave’de olduğu gibi read-write ve en

önemlisi write-write uyumsuzluğu başgösterebilir.

31

23 Mart 13 Cumartesi

Page 32: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Geçiş için Programcının üretkenliğini artırıyor. Veriye erişim performansını artırıyor. Servis odaklı mimariye geçişi hızlandırır.

32

23 Mart 13 Cumartesi

Page 33: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Key-Value ne zaman ? Kullanım Durumları:◦ Oturum Bilgilerinin Tutulması◦ Kullanıcı profil bilgilerinin tutulması◦ Alışveriş kartı bilgilerinin tutulması

Önerilmeyen Durumlar:◦ İlişkiler fazlaysa◦ Transaction durumları◦ Key dışında Value ile aramalarda◦ Çoklu anahtarlarla aramalarda

33

23 Mart 13 Cumartesi

Page 34: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Document Stores ne zaman ? Kullanım Durumları:◦ Loglama◦ İçerik yönetim sistemleri, blog platformları◦ Analitik platformları◦ E-ticaret siteleri

Önerilmeyen Durumlar:◦ Kompleks transactionlar◦ Tasarım çok değişiyorsa

34

23 Mart 13 Cumartesi

Page 35: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Column-Family ne zaman ? Kullanım Durumları:◦ Loglama◦ İçerik yönetim sistemleri, blog platformları◦ Web sitesi analitik uygulamaları◦ E-ticaret siteleri

Önerilmeyen Durumlar:◦ Hesaplamalar (SUM, AVG)◦ Tasarım çok değişiyorsa

35

23 Mart 13 Cumartesi

Page 36: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Graph ne zaman ? Kullanım Durumları:◦ Sosyal ağ siteleri ve buna benzer platformlar◦ Lokasyon tabanlı servisler◦ Öneri sistemleri

Önerilmeyen Durumlar:◦ Bulk operasyonların fazla olduğu durumlar.

36

23 Mart 13 Cumartesi

Page 37: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Veri Nasıl Saklanıyor ? Hızlı, Boyutu küçük - Birincil Hafıza◦ RAM

Yavaş, Boyutu büyük - İkincil Hafıza◦ Hard disk

37

23 Mart 13 Cumartesi

Page 38: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

1990’da 1.5GB kapasiteye sahip bir sabit disk ile saniyede 4.4MB bilgi okunabiliyordu. 5.5 dk’da tüm disk okunabiliyor.

2012’de 1.5TB kapasiteye sahip bir sabit disk ile saniyede 100MB bilgi okunabiliyor. 250 dk’da tüm disk okunabiliyor. 1.5 GB => 0.25 dk’da okunabiliyor !

38

Veri Depolama

23 Mart 13 Cumartesi

Page 39: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Diske Yazmak Diskten Okumaktan daha yavaş!

Peki bunu hızlandırmak için ne yapmalıyız. ?◦ Verileri paralel şekilde okuyabiliriz. Örneğin elimizde

100 disk olsun. Her diske verinin 100’de birini yazarız. 100 diski paralel olarak birlikte okuruz. Böylece tüm veriyi yaklaşık 2.5dk ‘dan az bir zamanda okumuş oluruz.

39

Veri Depolama

23 Mart 13 Cumartesi

Page 40: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Hacim – Veri hacmi (Örn: 1 MB’lık bloklar) Hız – Verinin akış hızı birim zamanda bize

işlememiz gereken veri. (Örn : Saniyede 100 mesaj)

Çeşitlilik – Log, XML, Yapısal olmayan veri tipleri...

40

Bunları Bilmek Lazım!

23 Mart 13 Cumartesi

Page 41: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Farklı senaryolar için yenilikçi özelliklere sahip veritabanları kullanılabilir...

41

Sonuç ?

23 Mart 13 Cumartesi

Page 42: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

◦Sakla◦İşle◦Analiz

42

NoSQL

23 Mart 13 Cumartesi

Page 43: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Her türlü veri tipi için sadece SQL veya NoSQL kullanmak !!!

SQL veya NoSQL birlikte kullanılmalı !◦ Elimizdeki verinin karakteristiğini bilmeliyiz, hangi

DB tipinde tutulacağına karar verilmeli.◦ SQL ve NoSQL’in kullanıldığı ekosistemler

oluşturulmalı.

43

Yapılan Hata !

23 Mart 13 Cumartesi

Page 44: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

SQL’in tüm özellikleri kullanılmalı !◦ Eğer performans arttırmak için “denormalizasyon” ve

bunun gibi RDBMS özellikleri kullanılmasına rağmen performans artmıyorsa NoSQL düşünülmeli.

44

Veya

23 Mart 13 Cumartesi

Page 45: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Karar vermeden önce -> Verini incele !!!1. Veri tipini incele, karakteristiğini öğren ! (Log,

gerçek zamanlı veriler, lokasyon bilgileri, web sayfaları)

2. Ne sıklıkla veriye ulaşıyorsun ?3. Veri tipi hangi sıklıklı değişiyor ?

45

Yöntem

23 Mart 13 Cumartesi

Page 46: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Verinin Karakteristiği NoSQL SQLDinamik, şema değişiyor

X

Statik, şema değişmiyor

X

Veri miktarı çok fazla, şema değişmiyor

X

Gerçek zamanlı veriler geliyor

X

Veri miktarı çok fazla, statik, şema değişmiyor, gerçek zamanlı değil

X

Güncellenme ve okuma fazlaysa

X

46

Nasıl bir seçim ?

23 Mart 13 Cumartesi

Page 47: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

1. Document Stores Derinin kütüğü => İsim:“Derin",

Adres:“Kavaklıdere", Hobi:“oyuncak".2. Key-Value Store cocuk[‘Derin’] = {‘ilkisim’:’Derin’,

‘Adres’:’Kavaklıdere’, ‘Hobi’:’oyuncak’}3. Column Stores – Tabular Data4. Graph

47

NoSQL Tipleri

23 Mart 13 Cumartesi

Page 48: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

“Document Store” C++’da geliştiriliyor SQL sorgularına benzer bir sorgulama altyapısı var. Lisansı AGPL Master/slave replikasyonu destekliyor (otomatik failover geçişi sağlıyor) Otomatik Sharding desteği var. Sorguları JavaScript’te yazılıyor. Özellikler yerine performans’ı ön plana çıkarmışlar. 32bit sistemlerde, 3gb hafıza kullanımı sınırı var. Boş veritabanı dosyası 192 MB tutuyor. Coğrafi bilgi sistemleri için desteği mevcut. Ne zaman kullanılmalı ?: Dinamik sorguların olduğu, SQL’e benzer

indeksleme mekanizmalarını kullanmak istediğinizde veya büyük bir DB’de iyi bir performans beklediğinizde.

Örnek olarak: MySQL veya PostgreSQL kullanıyorsanız, şemanız dinamikse.

48

MongoDB

23 Mart 13 Cumartesi

Page 49: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Table eşittir Collection post = {“yazar”:”Bugra”, “text”:”Blog post”,

“date” : datetime.datetime.utcnow() } posts = db.posts posts.insert(post) posts.find_one({“yazar”:”Bugra”})

MongoDB Veri Tipleri

23 Mart 13 Cumartesi

Page 50: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

+ Arşivleme, durum loglama + Doküman yönetim sistemleri + Uygulamada JSON kullanıyorsanız uygun

olabilir. + Online oyunlarda küçük read/write’ların sık

olduğu durumlarda. - Karmaşık transaction yapılarında.

MongoDB Kullanım Durumları

23 Mart 13 Cumartesi

Page 52: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

“Document Store” Erlang programlama dili ile geliştiriliyor. Kolay kullanım ve veri bütünlüğü önemliyse. Apache lisansına sahip HTTP ve REST arayüzleriyle DB operasyonları

gerçekleştirilebiliyor. master-master replikasyon yapabiliyor. Yazma operasyonları sırasında Okuma yapabiliyor Veriyi sürüm sistemlerinde olduğu gibi sürümlendirebiliyor.

Geçmiş verilere ulaşmak mümkün ! jQuery ile DB sorgulamak mümkün. Ne zaman kullanılmalı ? : Bir verinin geçmiş sürümleri de

sizin için önemliyse, master/master replikasyon yapabilmek istiyorsanız

52

CouchDB

23 Mart 13 Cumartesi

Page 53: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

HTTP/Rest arayüzü üzerinden bilgileri sunmak, veriler üstünde işlem yapmak için

Veri bütünlüğüne önem verdiğiniz durumlarda.

CouchDB Kullanım Durumları

23 Mart 13 Cumartesi

Page 54: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Couchdb-python http://code.google.com/p/couchdb-python/

CouchDB Python Sürücüleri

23 Mart 13 Cumartesi

Page 55: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

“Key-value” Erlang programlama dilinde geliştiriliyor. Fault tolerance’a açık bir sistem. Apache lisansına sahip HTTP ve REST ile DB işlemleri gerçekleştirilebiliyor. Verinin dağıtımı ve kümelendirme seçeneklerini belirlemek çok

basit. Map/reduce algoritmasını veri kümenizde çalıştırabiliyorsunuz. Full-text arama, indeksleme, sorgulama mevcut. (Riak Search

Sunucusu )

55

Riak

23 Mart 13 Cumartesi

Page 56: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Yüksek bulunabilirlik Hatayı kaldırır Genişleyebilir Operasyon dostu Düşük gecikme

Riak Kullanım Durumları

23 Mart 13 Cumartesi

Page 57: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Riak-python-client https://github.com/basho/riak-python-client

Riak Python Sürücüleri

23 Mart 13 Cumartesi

Page 58: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Key-value store Tüm veritabanı RAM’de tutuluyor. Bu yüzden

verilere erişim çok hızlı. Basit bir datastore fakat basitliği, kullanım

kolaylığı, performansı küçük uygulamalar için vazgeçilmez.

58

Redis

23 Mart 13 Cumartesi

Page 59: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Kullanıcı bilgilerini tutmak Hızlı bir şekilde saklamak ve sorgulamak

istediğiniz her veritipi için kullanılabilir. Arama motoru oluşturmak için◦ Riak-Search http://wiki.basho.com/Riak-Search.html

Redis Kullanım Durumları

23 Mart 13 Cumartesi

Page 60: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

redis-py https://github.com/andymccurdy/redis-py

Redis Python Sürücüleri

23 Mart 13 Cumartesi

Page 61: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Dağıtık key-value store, semi column-oriented Java’da yazılıyor BigTable ve Dynamo teknolojilerini içinde

barındırıyor. Apache lisansına sahip Thrift mesajlaşma altyapısını kullanıyor. Verinin replikasyonu ve dağıtımı için “trade-off”

ayarlarına sahip. Kolona göre arama yapıyor. Yazmak okumaktan daha hızlı ! Apache Hadoop ile birleştirilebiliyor (MapReduce )

Cassandra

23 Mart 13 Cumartesi

Page 62: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Bankalar Finans kurumları Gerçek zamanlı veri analizi yapmak için. Yazmak / Okumaktan daha hızlı !

Cassandra Kullanım

23 Mart 13 Cumartesi

Page 63: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Pycassa - http://pycassa.github.com/pycassa/

Cassandra Python Sürücüleri

23 Mart 13 Cumartesi

Page 64: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Graph Database GPLv3 veya AGPL lisansıyla dağıtılıyor. Java’da yazılıyor. Nesneler arasındaki ilişkiler yoluyla veriyi ifade

edebiliyor.

Neo4J

23 Mart 13 Cumartesi

Page 65: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Nesneler arasındaki ilişkilerin yoğun olduğu durumlarda.

İnsan takip uygulamalarında◦ “Buğra Çakır’ın 03/04/2012 tarihinde Kızılay

Metrosuna girdiği anda Buğra Çakır’ın arkadaş listesindeki kişilerden hangileri onun 100m yarıçapında bulunuyordu”

Neo4J Kullanım Durumları

23 Mart 13 Cumartesi

Page 66: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

python-embedded https://github.com/neo4j/python-embedded

Neo4J Python Sürücüleri

23 Mart 13 Cumartesi

Page 67: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Bigtable tipi veritabanı Apache Lisansıyla dağıtılıyor. Java’da yazılıyor. Güvenilir read/write desteği var. Tabloların sharding işlemi otomatik olarak

yapılabiliyor. Thrift ve HTTP arayüzleriyle veriye ulaşmak,

üzerinde işlem yapmak mümkün

HBase

23 Mart 13 Cumartesi

Page 68: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Gerçekten çok veriniz varsa Bir kaç değil 10’larca sunucu kullanıyorsanız. Rastgele, gerçek zamanlı read/write

durumlarında

HBase Kullanım Durumları

23 Mart 13 Cumartesi

Page 69: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Thrift üzerinden erişilebiliyor.◦ http://wiki.apache.org/hadoop/Hbase/ThriftApi

HBase Python Sürücüleri

23 Mart 13 Cumartesi

Page 70: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

20.000 Wikipedia sayfasının indekslendiği bir performans testbed’inde

Riak-MongoDB-Cassandra-HBase performanslarını karşılaştıralım.

Performans

23 Mart 13 Cumartesi

Page 71: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Performans

23 Mart 13 Cumartesi

Page 72: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Performans

23 Mart 13 Cumartesi

Page 73: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Performans

DB read/update Performansı

MapReduce Performansı

Cassandra İyi Çok İyi

Hbase Kötü Ortalama

MongoDB İyi Zayıf

Riak Zayıf Ortalama

23 Mart 13 Cumartesi

Page 74: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Verilerin hangi makinaya yazılacağını ve nereden okunacağını kendimizin belirlediği yönteme Sharding adı verilir.

En popüler algoritmalardan birisi Consistent Hashing’dir.

74

Sharding

23 Mart 13 Cumartesi

Page 75: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

A 0,1,2,3B 4,5,6,7C 8,9,a,bD c,d,e,f

75

Sharding

Hash 71db329b58378c8fa8876f0ec04c72e5 -> node B’ye eşleniyor.

Okuma/Yazma/Silme/Değiştirme B nodunda gerçekleşecek.

23 Mart 13 Cumartesi

Page 76: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Redis Anahtar Sayısı : 6633751 Kullanılan Hafıza : 1GB Kullanılan Backend Dosya : 230 MB ‘0’ dan Ayağa Kalkma Zamanı : 10sn Anahtar Arama Zamanı(Key/Value Perf): 0 ms

76

Redis Performans

23 Mart 13 Cumartesi

Page 77: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

MPI üzerinden hesaplama yapılıyor. “Shared filesystem” mimarisi “Network Bandwidth” Grid mimarisindeki

performansı doğrudan etkileyen bir elemandır.

77

Grid Hesaplama

23 Mart 13 Cumartesi

Page 78: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

İhtiyacımız olan;◦ 1. Verinin güvenilir bir şekilde depolanması.◦ 2. Depolanan verinin üzerinde analiz işlemlerinin

gerçekleştirilmesi.

78

İhtiyaç ?

23 Mart 13 Cumartesi

Page 79: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Doug Cutting – Apache Lucene – Metin arama kütüphanesi

Apache Nutch – Açık kaynak web crawling, “arama” kütüphanesi

79

Apache Nutch - Lucene

23 Mart 13 Cumartesi

Page 80: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Doug Cutting’in tahmini : ◦ 1 milyar sayfa – index’e sahip bir arama motorunun

donanım için 0.5 milyon dolara ihtiyacı var.◦ Aylık işletme maliyeti tahminen 30.000 dolar.

80

Arama Motoru Yapmak ?

23 Mart 13 Cumartesi

Page 81: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

2002 yılında – web crawling yapmak için oluşturulan bir proje.

Milyonlarca web sitesi indekslenebiliyor. Fakat “Milyarlar” çalışmıyor ! Bunun için◦ NDFS ( Nutch Distributed File System )

81

Apache Nutch

23 Mart 13 Cumartesi

Page 82: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Sayfa veritabanı – CrawlDB◦ En son güncellenme zamanı◦ Güncellenme aralığı◦ Sayfa içeriği◦ İçerik doğrulaması

Arama Motoru Yapmak ?

23 Mart 13 Cumartesi

Page 83: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Çekilecek Sayfa Listesi – FetchList Gazete sayfaları◦ http://www.hurriyet.com.tr◦ http://www.milliyet.com.tr◦ http://www.sabah.com.tr◦ http://www.sozcu.com.tr

Arama Motoru Yapmak ?

23 Mart 13 Cumartesi

Page 84: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Ham sayfa verileri – PageContent◦ FetchList’deki sayfalardan çekilmiş bilgilerin

bulunduğu veritabanıdır.◦ Bu bilgiler ham olarak durmaktadır. Üzerinde bir

işlem yapılmaz.

Arama Motoru Yapmak ?

23 Mart 13 Cumartesi

Page 85: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

İşlenmiş sayfa verileri - ParsedPageContent◦ Ham verilerin belli kodeklerle işlenmiş hallerinin

bulunduğu veritabanıdır. Bu kodeklerle örneğin HTML, PDF, Open Office, Microsoft Office, RSS ve diğer formatlardaki bilgileri çözümlemek mümkündür.

Arama Motoru Yapmak ?

23 Mart 13 Cumartesi

Page 86: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Bağlantı veritabanı – LinkGraph◦ PageRank ile bir web sitesine kaç tane link olduğunu

gösteren veritabanıdır.

Arama Motoru Yapmak ?

23 Mart 13 Cumartesi

Page 87: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Arama Fihristi – FullTextSearchIndex◦ Çekilen web sitesi içeriklerinden oluşturulan klasik

aramanın gerçekleştirilmesini sağlayan veritabanıdır.◦ Apache Lucene ile oluşturulur.

Arama Motoru Yapmak ?

23 Mart 13 Cumartesi

Page 88: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Google GFS (Google File System) Google MapReduce 2006’da Nutch’daki NDFS algoritmaları Lucene

alt projesinden ayrılıp yeni bir kök projesi olan Hadoop’u oluşturdu.

Doug Cutting Yahoo’ya katıldı. 2008’de 10.000 Hadoop core cluster ile Yahoo’nun production search index altyapısı tanıtıldı.

88

Apache Nutch

23 Mart 13 Cumartesi

Page 89: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

NDFS -> HDFS ( Hadoop File System ) 2008’de Hadoop’un kullanıldığı alanlar

çeşitlendi.◦ Last.fm◦ Facebook◦ New York Times

89

Apache Hadoop

23 Mart 13 Cumartesi

Page 90: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

90

Soy ağacı

23 Mart 13 Cumartesi

Page 91: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

1. Herşey nasıl başladı ? Veri miktarı arttı.2. Apache Nutch ile web crawling yaptık.3. Büyük verileri kaydettik. HDFS doğdu !4. Bu verileri nasıl kullanacağız ? 5. MapReduce algoritması ile analitik uygulamalar geliştirip, çalıştırdık – java, python

gibi dillerle.6. Yapısal olmayan verileri ne yapacağız ? – Web logs, Click streams, Apache logs,

Server logs  – fuse,webdav, chukwa, flume, Scribe7. Hiho ve sqoop’u bu verileri HDFS’e aktarmak için kullacağız – RDBMS’den bilgileri

alabiliyoruz !8. MapReduce programlayabilmek için yüksek seviyede diller tanımlandı– Pig, Hive,

Jaql9. BI araçları türedi, raporlama, Intellicus 10 . Yüksek seviye diller için akış kontrol araçları tanımlandı. - oozie11. Hadoop işlerinin kontrolü için Hive, HDFS’i görüntülemek için Hue, karmasphere,

eclipse plugin, cacti, ganglia12. Yardımcı çatılar geliştirildi. Avro (Serialization), Zookeeper (Koordinasyon)13. Daha yüksek seviyede işlemler için Yapay Öğrenme Mahout, Yeni bir mapreduce

tekniği Elastic map Reduce14. OLTP – HBase

91

Ekosistem

23 Mart 13 Cumartesi

Page 92: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

92

BigData Ekosistemi

23 Mart 13 Cumartesi

Page 93: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Ambari Deployment, konfigürasyon ve izleme Flume Log ve event verilerinin toplanması HBase Column-oriented DB HDFS Hadoop’un kullandığı dağıtık dosya sistemi Hive SQL-benzeri sorgulanabilen bir datawarehouse MapReduce Kümeler üstünde paralel hesaplamayı sağlayan

algoritma Pig Hadoop MapReduce hesaplamaları için üst

düzey bir dil Oozie Orkestrasyon ve workflow aracı Sqoop RDBMS’lerden verileri almaya yarayan araç Whirr Cloud deployment’larını sağlayan araç Zookeeper Küme üyelerinin koordinasyonu ve

konfigürasyonu için kullanılan araç

93

Hadoop Ekosistem

23 Mart 13 Cumartesi

Page 94: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Gelen Veriler: Sqoop, Flume Koordinasyon ve Akış: Zookeeper, Oozie Yönetim ve Dağıtım: Ambari, Whirr

94

Hadoop Ekosistem

23 Mart 13 Cumartesi

Page 95: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

SQL’den bilgileri alıp Hadoop ekosistemine aktarmayı kolaylaştırır.

Hadoop ekosisteminden SQL’e bilgileri aktarmayı kolaylaştırır.

Apache Sqoop

23 Mart 13 Cumartesi

Page 96: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Apache Sqoop

23 Mart 13 Cumartesi

Page 97: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Hadoop dışındaki veri kümelerini ekosisteme aktarmayı sağlar.

Akış bazlı bir mimariye sahiptir.

Apache Flume

23 Mart 13 Cumartesi

Page 98: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Apache Flume

23 Mart 13 Cumartesi

Page 99: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Hadoop işlerinin (jobs) yönetimini sağlar. İşlerin akış şemalarında işlemesini sağlar.

Apache Oozie

23 Mart 13 Cumartesi

Page 100: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Apache Oozie

23 Mart 13 Cumartesi

Page 101: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Hadoop ekosistem elemanlarının dağıtık konfigürasyonunu, işlevsel kontrolünü, birlikte çalışabilirliğini sağlar.

Apache Zookeper

23 Mart 13 Cumartesi

Page 102: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Hadoop MapReduce hesaplamaları için yüksek seviyede bir dil arayüzü tanımlar.

raw = LOAD 'excite.log' USING PigStorage('\t') AS (user, time, query);

clean1 = FILTER raw BY org.apache.pig.tutorial.NonURLDetector(query);

uniq_frequency3 = FOREACH uniq_frequency2 GENERATE $1 as hour, $0 as ngram, $2 as score, $3 as count, $4 as mean;

Apache Pig

23 Mart 13 Cumartesi

Page 103: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Hadoop için veri ambarı uygulamasıdır. Büyük veriler üzerinde analiz işlemleri yapmayı sağlar.

hive> CREATE TABLE pokes (foo INT, bar STRING);

hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);

ALTER TABLE pokes ADD COLUMNS (new_col INT);

Apache Hive

23 Mart 13 Cumartesi

Page 104: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;

hive> SELECT a.foo FROM invites a WHERE a.ds='2008-08-15';

Apache Hive

23 Mart 13 Cumartesi

Page 105: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Cloudera – CDH Dağıtımı◦ Hadoop, Hive, Pig, Hbase, Zookeeper, Flume ,Sqoop,

Mahout, Whirr, Oozie, Fuse-DFS, Hue Hortonworks◦ Hadoop, Hive, Pig, Hbase, Zookeeper, Ambari,

Hcatalog IBM◦ Hive, Oozie, Pig, Zookeeper, Avro, Flume, HBase,

Lucene Microsoft◦ Hive, Pig

105

Hadoop Dağıtımları

23 Mart 13 Cumartesi

Page 106: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Veri işlemek için kullanılan bir yöntem algoritmadır.

Büyük veri setlerinin paralel olarak işlenmesinde kullanılır.

Verileri liste şeklinde düşündüğümüz zaman bunlar üzerinde fonsiyonel dillerdeki gibi işlem yapmamızı sağlar.

106

MapReduce

23 Mart 13 Cumartesi

Page 107: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

MapReduce / Hadoop

23 Mart 13 Cumartesi

Page 108: Buğra Çakır - bmo.org.tr · Kullanım Modeli -NoSQL 15 23 Mart 13 Cumartesi. Kullanım Modeli -NoSQL-SOA 16 23 Mart 13 Cumartesi. Kümeleme

Teşekkürler !

23 Mart 13 Cumartesi