Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CENK DERİNÖZLÜ
cenkder@gmail.com
Gündem
 Big Data Kavramı
 Hadoop Nedir?
 Neden Hadoop?

 Hadoop Bileşenleri
 Hadoop Kurulumu
 Hadoop Örnek Uygulama
Büyük Veri Nedir?
Büyük veri; toplumsal medya paylaşımları, ağ günlükleri
bloglar, fotoğraf, video, log dosyaları v.b. gib...
Büyük Veri (Big Data)?
Günümüzde;
 İnternet (Bilgiye Ulaşma, Alışveriş),
 Teknolojik Gelişmeler,
 Mobil Gelişmeler,
 S...
Büyük Veri (Big Data)?
Büyük Verinin
 Büyük verinin içerisinden anlamlı olanları ayıklamak
firmalar için son derece öneml...
Büyük Veri (Big Data)?
 Örnek olarak Bir gsm şirketi, günlük 5-10TB lık

kullanım loglarını inceleyerek müşteri hizmetler...
Veri Tipleri?
Veri yapılandırılmış ve yapılandırılmamış veri olarak
2 kısımda incelenebilir.
 Yapılandırılmış veriler :
F...
Veri Tipleri?
Günümüzde Veri Dağılımı
10%

Yapılandırılmış Veri
Yapılandırılmamış Veri

90%
Geleneksel Sistemlerdeki Problem?
Geleneksel Sistemler(ilişkisel veri tabanı kullanan sistemler)
 Yapılandırılmamış veriy...
Geleneksel Sistemlerdeki Problem?
Geleneksel Yöntemlerle

100 terabyte
büyüklüğündeki verinin

1 bilgisayar
tarafından oku...
Yeni Yaklaşım:Dağıtık Veri İşleme Sistemleri
100 terabyte
büyüklüğündeki veri

1000 bilgisayar
tarafından

15 dakikada
oku...
 Hadoop sıradan sunuculardan oluşturulan kümeler

üzerinde büyük hacimli verilerin dağıtık dosya sistemi ile
incelenmesin...
Neden Hadoop?
 Ölçeklenebilir

İhtiyaç duyulduğunda, verinin kendisini, formatını, yerini
değiştirmeden, çalışan işlerin ...
Kimler Kullanıyor?
Hadoop
öğrenmek için
bir neden
daha!

Hadoop bilen
personel
ihtiyacı
artmaktadır.
Hadoop Bileşenler
 Hadoop HDFS ve Map-Reduce olmak üzere iki temel

kısımdan oluşmaktadır.
HDFS
 Hadoop içindeki dağıtık yapıyı sağlayan dosyalama

sistemi HDFS (Hadoop Distributed File System) olarak
adlandırılm...
HDFS Süreçler

 HDFS, NameNode ve DataNode süreçlerinden (process)

oluşmaktadır.
NameNode
 NameNode ana (master) süreç olarak blokların sunucular

üzerindeki
dağılımınından, yaratılmasından, silinmesind...
NameNode – İstemci İlişkisi
 Client uygulaması bir veri bloğu ile ilgili işlem yapmak istediği

zaman (erişme,silme,taşım...
NameNode- Editlog ve fsimage
Editlog ve fsimage olmak üzere iki tip dosya vardır.
 fsimage: Namenode başlatıldığında dosy...
NameNode- Editlog ve fsimage

Namenode yeniden başlatıldığında;
1. Editlog içerisindeki değişiklikler son alınan fsimage d...
Karşılaşılabilecek Problemler
 Namenode ‘un uzun süre çalıştığı büyük veri kümelerinde

editslog dosyasının boyutu çok bü...
Çözüm:Secondary Namenode
 Secondary NameNode fsimage dosyasını editlog dosya

içeriğine göre periodic olarak güncellemekt...
Secondary Namenode
Secondary Namenode
 Secondary name node name nod ‘un yedeği değildir.Dosya

sisteminde checkpoint noktalar oluşturarak na...
DataNode
 DataNode ise işlevi blokları saklamak olan işçi

(slave) süreçtir.
 Her DataNode kendi yerel diskindeki veride...
DataNode
Map Reduce Tarihçesi
 Teknolojinin çıkış noktası: Google
 Yüksek miktarda veri üzerinde hızlı bir şekilde işlem

yapmanı...
Map Reduce Nedir?
 HDFS üzerindeki büyük dosyaları verileri işleyebilmek

amacıyla kullanılan bir yöntemdir. İstediğiniz ...
Map Reduce Örnek?
 Elimizde bir dosya var, bu dosyada her satırda bir ürün

ismi, ve o ürün satın alındığında ne kadar pa...
Map İşlemi
 Her node, kendi içinde “map” yaparken, benzer anahtar

degerlerini aynı toplama yazacak.

Ürün Adı
Ürün1
Ürün...
Reduce İşlemi
 Her bölümdeki anahtarlar bir de kendi aralarında

toplanıyorlar.
Ürün Adı

Toplam
Fiyat

9

Ürün Adı

Topl...
Sonuç :
 MapReduce işlemleri küçük parçalara bölüyor ve farklı

bilgisayarlara dağıtıyor, sonra işlenenleri toplayıp sonu...
Map Reduce Süreçler :
 MapReduce, JobTracker ve TaskTracker süreçlerinden

oluşur.
Job Tracker:
 Job Tracker: Map Reduce işlerinin küme üzerinde dağıtılıp

çalıştırılmasından sorumludur.İstemciler tarafın...
TaskTracker :
 TaskTracker data nodelarının bulunduğu sunucularda






çalışmaktadır.
Task tracker job trackerdan iş...
TaskTracker :
 İş Parçacıklarının durumu JobTracker tarafından takip

edilir.İş parçacığında bir sorun oluşması durumunda...
Job Tracker -TaskTracker Süreç:
Hadoop Kurulum :
 Ubuntu Linux 10.04 LTS üzerine
 Apache Hadoop 1.04 versiyonu kurulum adımları

anlatılmıştır.
Kurulum Öncesi Adım 1:
 Kurulumun öncesin de sistemimiz de javanın yüklü olması

gerekmektedir
 Java yüklemek için termi...
Java Kurulumum Başarılı mı?:
 Kurulumun dogru gerceklestiginden emin olmak icin

aşağıdaki komutu yazarak kurulan java ve...
Kurulum Öncesi Adım 2:
Hadoop kurulumunu gerçekleştirebilmemiz için openssh-server ve
rsync paketlerinin kurulması gerekme...
Kurulum Öncesi Adım 3:
 Hadoop node ların yönetilmesi için SSH erişimine ihtiyaç

duymaktadır.Hadoop sistemi içerinde olu...
Hadoop Kurulum Başlangıç:
 Apache Sayfası üzerinden seçmiş olduğunuz Hadoop

versiyonunu indiriyoruz.
 İndirilen Hadoop ...
Hadoop Konfigurasyonu:
 conf/hadoop-env.sh dosyasının güncellenmesi:

gedit editörü ile dosyamızı açtıktan sonra;
export ...
core-site.xml dosyası:
Küme ile ilgili genel ayarlar core-site.xml dosyasında bulunmaktadır.

conf/core-site.xml dosyasınd...
hdfs-site.xml dosyası:
HDFS ile ilgili ayarların yapıldığı hdfs-site.xml dosyasına varsayılan
replikasyon ayarını 1 olacak...
mapred-site.xml dosyası:
 MapReduce ayarlarının yapıldığı mapred-site.xml dosyasına aşağıdaki

tanımı yapıyoruz:
<configu...
Hadoop NameNode Format:
Hadoop NameNode’un formatlanması için yazılacak komut:
 -$ bin/hadoop namenode -format
Hadoop ‘un Başlatılması
 Hadoop Başlatma komutu:

hduser@ubuntu:~$ /usr/local/hadoop/bin/start-all.sh
Namenode,
Datanode,...
Kontrol
 Sistemin başarılı bir şekilde başladığını görmek için jps

komutunu kullanabiliriz.
hduser@ubuntu:/usr/local/had...
Arayüz Erişim Linkleri
 Aşağıdaki linklerden NameNode,JobTracker ve Task

Tracker arayüzlerine ulaşılabilir.
 http://loc...
Name Node Arayüzühttp://localhost:50070/
Job Tracker Arayüzühttp://localhost:50030/
Task Tracker Arayüzühttp://localhost:50060/
Örnek Uygulama:
Twitter Verisinin Apache Hadoop
ile Analiz Edilmesi.
Belirli bir konuda en çok takip edilen veya tweet’i e...
Twitter Veri Formatı
 Twitter Streaming API tweetleri JSON formatında

yayınladığı için geleneksel sistemler tarafından
s...
Twitter-Hadoop Veri Aktarımı
Apache Flume + Hive+Oozie
Apache Flume sayesinde twitter api çıktıları hadoop hdfs
Üzerindeki dosyalara yazılır.
Twitter v...
Hive
Hive ile Hadoop üzerinde belirli bir formata uygun şekilde
bulunan dosyaları, örneğin .csv dosyalarını metadataları
g...
Hive -Örnek
hive> CREATE EXTERNAL TABLE products
(ID INT, NAME STRING)
ROW FORMAT DELIMITED FIELDS
TERMINATED BY 't'
LINES...
Hive –SerDe (Serialize-Deserialize)
Hive –SerDe arayüzü ile twitter json tipindeki çıktı
sorgulanabilir yeni bir tablo olu...
Hive
SELECT t.retweeted_screen_name, sum(retweets) AS
total_retweets, count(*) AS tweet_count FROM
(SELECT retweeted_statu...
Sonuç
TEŞEKKÜRLER

Cenk DERİNÖZLÜ
cenkder@gmail.com
Büyük Veri İşlemleri ve Hadoop
Büyük Veri İşlemleri ve Hadoop
Upcoming SlideShare
Loading in …5
×

Büyük Veri İşlemleri ve Hadoop

8,223 views

Published on

Büyük Veri İşlemleri ,Hadoop Nedir?,Hadoop Bileşenleri Map Reduce,HDFS,Map Reduce Sürecleri Job Tracker,Task Tracker,HDFS Bileşenleri Name Node, Secondary Node,fsimage,editlog kavramları,Hadoop Kurulum ,Apache Flume ve Hive.

Published in: Technology

Büyük Veri İşlemleri ve Hadoop

  1. 1. CENK DERİNÖZLÜ cenkder@gmail.com
  2. 2. Gündem  Big Data Kavramı  Hadoop Nedir?  Neden Hadoop?  Hadoop Bileşenleri  Hadoop Kurulumu  Hadoop Örnek Uygulama
  3. 3. Büyük Veri Nedir? Büyük veri; toplumsal medya paylaşımları, ağ günlükleri bloglar, fotoğraf, video, log dosyaları v.b. gibi değişik kaynaklardan toparlanan yapısal olmayan veri yığınıdır.
  4. 4. Büyük Veri (Big Data)? Günümüzde;  İnternet (Bilgiye Ulaşma, Alışveriş),  Teknolojik Gelişmeler,  Mobil Gelişmeler,  Sosyal Medya (Facebook ,Twitter,You Tube vb ) alanlarındaki gelişmeler sonucunda üretilen veri miktarı hızlı bir şekilde artmaktadır.
  5. 5. Büyük Veri (Big Data)? Büyük Verinin  Büyük verinin içerisinden anlamlı olanları ayıklamak firmalar için son derece önemli bir hale gelmiştir.  Büyük Veri işlemlerinin en çok kullanıldığı sektörler telekom,sağlık,sosyal medya sektörü olarak sayılabilir.
  6. 6. Büyük Veri (Big Data)?  Örnek olarak Bir gsm şirketi, günlük 5-10TB lık kullanım loglarını inceleyerek müşteri hizmetlerini daha da güçlendirebilir.  Sosyal medya açısında bakarsak,sosyal aglardan elde edilen veriler ile kurumların rekabet güçlerini ölçebilmeleri ve kampanyalarını daha iyi yönetebilmelerine olanak sağlayabilir.
  7. 7. Veri Tipleri? Veri yapılandırılmış ve yapılandırılmamış veri olarak 2 kısımda incelenebilir.  Yapılandırılmış veriler : Fatura ,ödeme,sınav sonuçları,e-devlet verileri vs  Yapılandırılmamış veriler: twitter –tweet ,facebook-like, reklam tıklama verileri vs
  8. 8. Veri Tipleri? Günümüzde Veri Dağılımı 10% Yapılandırılmış Veri Yapılandırılmamış Veri 90%
  9. 9. Geleneksel Sistemlerdeki Problem? Geleneksel Sistemler(ilişkisel veri tabanı kullanan sistemler)  Yapılandırılmamış veriye uygun değil  Terabyte seviyesindeki büyük veriler üzerindeki analiz kabiliyetlerinin bilgisayar üzerindeki ram ,cpu, harddisk performansları ile sınırlı olması  Cpu ve memory artışına bağlı olarak artan yüksek maliyetler
  10. 10. Geleneksel Sistemlerdeki Problem? Geleneksel Yöntemlerle 100 terabyte büyüklüğündeki verinin 1 bilgisayar tarafından okunabilmesi için yaklaşık 11 günlük bir süreye ihtiyaç var
  11. 11. Yeni Yaklaşım:Dağıtık Veri İşleme Sistemleri 100 terabyte büyüklüğündeki veri 1000 bilgisayar tarafından 15 dakikada okunabilir. Hız tek başına yeterli değil Ölçeklenebilir, Esnek,Ekonomik ve Güvenilir bir sisteme ihtiyaç var
  12. 12.  Hadoop sıradan sunuculardan oluşturulan kümeler üzerinde büyük hacimli verilerin dağıtık dosya sistemi ile incelenmesine olanak sağlayan açık kaynaklı bir yapıdır.  Hem tekil sunucuda hem de kendi işlemci ve hafıza birimi olan binlerce sunucuyu barındıran küme üzerinde de çalışabilecek şekilde tasarlanmıştır.
  13. 13. Neden Hadoop?  Ölçeklenebilir İhtiyaç duyulduğunda, verinin kendisini, formatını, yerini değiştirmeden, çalışan işlerin ve uygulamaların nasıl yazıldığını dikkate almadan yeni düğüm noktası eklenebilir.  Hesaplı Yüksek hacimli verinin, fazla CPU gücü ile işlenmesini gerektiren paralel çözüm ihtiyaçlarını, daha ucuz veya hesaplı bilgisayar altyapısı ile gerçekleştirilmesini sağlar.  Esnek Farklı kaynaklardan gelen, farklı veri tipleri birbirleriyle birleştirilip, özetlenebilir ve işlenebilir.  Güvenilir: Veri noktalarından biri ulaşılamaz olduğunda, sistem, gelen yükü diğer veri noktalarına paylaştırarak kesintisiz hizmete devam eder.
  14. 14. Kimler Kullanıyor?
  15. 15. Hadoop öğrenmek için bir neden daha! Hadoop bilen personel ihtiyacı artmaktadır.
  16. 16. Hadoop Bileşenler  Hadoop HDFS ve Map-Reduce olmak üzere iki temel kısımdan oluşmaktadır.
  17. 17. HDFS  Hadoop içindeki dağıtık yapıyı sağlayan dosyalama sistemi HDFS (Hadoop Distributed File System) olarak adlandırılmaktadır.  HDFS sayesinde sistemdeki her bir sunucunun diskleri birleşerek tek bir sanal disk gibi davrandığı için büyük boyuttaki bir çok dosya ,dağıtık dosya sistemi içerisinde saklanabilir.  HDFS içerisindeki dosyalar 64/128 Mb lık bloklar halinde farklı birden çok sunucu üzerine dağıtılarak yedeklenir. RAID yapısına benzer bu yapı sayesinde veri kaybı önlenmiş olur.  HDFS üzerinde her bloğun varsayılan 3 kopyası tutulmaktadır. Her veri bloğu küme içerisinde farklı node lara dağıtılır.Aynı dosyaya ait olan veri blokları farklı nodelar da olabilir.
  18. 18. HDFS Süreçler  HDFS, NameNode ve DataNode süreçlerinden (process) oluşmaktadır.
  19. 19. NameNode  NameNode ana (master) süreç olarak blokların sunucular üzerindeki dağılımınından, yaratılmasından, silinmesinden, bir blokta sorun meydana geldiğinde yeniden oluşturulmasından ve her türlü dosya erişiminden sorumludur.  NameNode üzerinde dosya sistemi üzerindeki veriler değil verilerin bulunduğu yer ile ilgili bilgiler (metadata)tutulur.
  20. 20. NameNode – İstemci İlişkisi  Client uygulaması bir veri bloğu ile ilgili işlem yapmak istediği zaman (erişme,silme,taşıma,ekleme gibi) Name Node’dan ilgilendiği verinin bulunduğu lokasyon bilgisini ister.  NameNode da client uygulamasına istenen verinin bulunduğu datanode lokasyonlarının listesini client uygulamasına bildirir.  HDFS Kümelerinde namenode verilerin bulunduğu lokasyon bilgisini içerdiğinden sistemin çalışması için gereklidir. Eğer sistemde namenode çalışmaz ise tüm küme çalışmaz hale gelecektir.
  21. 21. NameNode- Editlog ve fsimage Editlog ve fsimage olmak üzere iki tip dosya vardır.  fsimage: Namenode başlatıldığında dosya sisteminin o anki durumunun içeriğidir.  editlog: Namenode başladıktan sonra dosya sisteminde oluşan değişikliklerdir.
  22. 22. NameNode- Editlog ve fsimage Namenode yeniden başlatıldığında; 1. Editlog içerisindeki değişiklikler son alınan fsimage dosyasına uygulanır. 2. Son değişiklikler fsimage dosyasına aktarıldıktan sonra editlog dosyası boşaltılarak sistem aktif hale geçer.
  23. 23. Karşılaşılabilecek Problemler  Namenode ‘un uzun süre çalıştığı büyük veri kümelerinde editslog dosyasının boyutu çok büyük seviyelere ulaşabilir. Bu durumda aşağıdaki problemlerle karşılaşılabilir. 1. Namenode yeniden başlatılması gerektiğinde namenode’un yeniden başlaması fsimage üzerine uygulanacak değişiklerin çok fazla olmasından dolayı uzun süre alabilir. 2. Çökme durumunda fsimage çok eski kalmış olacağından büyük oranda veri kaybedilebilir.
  24. 24. Çözüm:Secondary Namenode  Secondary NameNode fsimage dosyasını editlog dosya içeriğine göre periodic olarak güncellemektedir. Bu sayede editlog dosyasının boyutu yönetilebilir boyut limitlerini geçmemektedir.  Fsimage güncellenmesi tamamlandıktan sonra yeni namenode’un çalıştığı bilgisayardaki fsimage dosyasına kopyalanmaktadır.  Namenode bir sonraki yeniden başlatmada güncel fsimage dosyasını kullanacağı için başlama süresi kısalmaktadır.
  25. 25. Secondary Namenode
  26. 26. Secondary Namenode  Secondary name node name nod ‘un yedeği değildir.Dosya sisteminde checkpoint noktalar oluşturarak name node ‘un çalışmasını kolaylaştırır.
  27. 27. DataNode  DataNode ise işlevi blokları saklamak olan işçi (slave) süreçtir.  Her DataNode kendi yerel diskindeki veriden sorumludur. Ayrıca diğer DataNode’lardaki verilerin yedeklerini de barındırır.  DataNode’lar küme içerisinde birden fazla olabilir.  DataNode lar client lardan gelen okuma ve yazma isteklerini gerçekleştirmekten sorumlu olmakla birlikte namenode dan gelen komutlara göre veri bloklarının yaratılmasından,silinmesi,replike edilmesindende sorumludur.
  28. 28. DataNode
  29. 29. Map Reduce Tarihçesi  Teknolojinin çıkış noktası: Google  Yüksek miktarda veri üzerinde hızlı bir şekilde işlem yapmanın yolu işleri birden çok bilgisayara dağıtmaktan geçmektedir.  Google bilgisayar üzerindeki iş dağılımını kendi geliştirdiği map-reduce teknolojisi ile yapmaktadır.  Hadoop geliştirilirken de google map –reduce teknolojisinden esinlenilmiştir.
  30. 30. Map Reduce Nedir?  HDFS üzerindeki büyük dosyaları verileri işleyebilmek amacıyla kullanılan bir yöntemdir. İstediğiniz verileri filtrelemek için kullanılan Map fonksiyonu ve bu verilerden sonuç elde etmenizi sağlayan Reduce fonksiyonlarından oluşan program yazıldıktan sonra Hadoop üzerinde çalıştırılır.  Hadoop Map ve Reduce’lerden oluşan iş parçacıklarını küme üzerinde dağıtarak aynı anda işlenmesini ve bu işler sonucunda oluşan verilerin tekrar bir araya getirilmesinden sorumludur
  31. 31. Map Reduce Örnek?  Elimizde bir dosya var, bu dosyada her satırda bir ürün ismi, ve o ürün satın alındığında ne kadar para ödenmiş olduğu yazılı olsun. Her ürün için ne kadar para harcandığını bulmak istiyoruz. Örnek Dosya İçeriği
  32. 32. Map İşlemi  Her node, kendi içinde “map” yaparken, benzer anahtar degerlerini aynı toplama yazacak. Ürün Adı Ürün1 Ürün2 Ürün3 Ürün1 Fiyat 10 3 9 9 Map Ürün Adı Ürün1 Ürün2 Ürün3 Ürün Adı Ürün Adı Fiyat Ürün1 Ürün3 Ürün4 Ürün2 10 32 2 20 Map Ürün1 Ürün2 Ürün3 Ürün4 Toplam Fiyat 19 3 9 Toplam Fiyat 10 20 32 2
  33. 33. Reduce İşlemi  Her bölümdeki anahtarlar bir de kendi aralarında toplanıyorlar. Ürün Adı Toplam Fiyat 9 Ürün Adı Toplam Fiyat 29 22 Ürün3 41 Ürün4 2 3 Ürün3 Ürün1 19 Ürün2 Toplam Fiyat Ürün2 Ürün1 Ürün Adı Ürün1 10 Ürün2 20 Ürün3 32 Ürün4 2
  34. 34. Sonuç :  MapReduce işlemleri küçük parçalara bölüyor ve farklı bilgisayarlara dağıtıyor, sonra işlenenleri toplayıp sonucu veriyor.  Hadoop’un gücü işlenen dosyaların her zaman ilgili düğümün (node) yerel diskinden okunması ile ağ trafiğini meşkul etmemesinden ve birden fazla işi aynı anda işleyerek doğrusal olarak ölçeklenmesinden geliyor  Hadoop kümesindeki düğüm sayısı arttıkça performansı da doğrusal olarak artmaktadır.
  35. 35. Map Reduce Süreçler :  MapReduce, JobTracker ve TaskTracker süreçlerinden oluşur.
  36. 36. Job Tracker:  Job Tracker: Map Reduce işlerinin küme üzerinde dağıtılıp çalıştırılmasından sorumludur.İstemciler tarafından mapreduce işleri job tracker’a gönderilir.
  37. 37. TaskTracker :  TaskTracker data nodelarının bulunduğu sunucularda     çalışmaktadır. Task tracker job trackerdan iş parçacığı talep eder. Job tracker namenode ile iletişim kurarak verinin lokasyonunu öğrenir. Datanode’un lokal diskindeki veriye göre uygun map işini tasktracker a verir. Task tracker iş parçacıklarını tamamladıktan sonra sonucu job tracker a iletir. Bu şekilde iş parçacıkları tamamlanır ve sonuç çıktısı HDFS üzerinde bir dosyaya yazılarak işlem sonlanır.
  38. 38. TaskTracker :  İş Parçacıklarının durumu JobTracker tarafından takip edilir.İş parçacığında bir sorun oluşması durumunda iş parçacığı Job tracker tarafından sonladırılıp yeniden başlatılır.
  39. 39. Job Tracker -TaskTracker Süreç:
  40. 40. Hadoop Kurulum :  Ubuntu Linux 10.04 LTS üzerine  Apache Hadoop 1.04 versiyonu kurulum adımları anlatılmıştır.
  41. 41. Kurulum Öncesi Adım 1:  Kurulumun öncesin de sistemimiz de javanın yüklü olması gerekmektedir  Java yüklemek için terminal ekranına aşağıdaki adımları yazıyoruz.     -$ sudo add-apt-repository ppa:webupd8team/java -$ sudo apt-get update -$ echo "check_certificate = off" | sudo tee -a /etc/wgetrc -$ sudo apt-get install oracle-java7-installer
  42. 42. Java Kurulumum Başarılı mı?:  Kurulumun dogru gerceklestiginden emin olmak icin aşağıdaki komutu yazarak kurulan java versiyonunu öğrenebiliriz.  -$ java –version eğer çıkan sonuç aşağıdaki gibi ise -java version "1.7.0_21" -Java(TM) SE Runtime Environment (build 1.7.0_21-b11) -Java HotSpot(TM) Client VM (build 23.21-b01, mixed mode)
  43. 43. Kurulum Öncesi Adım 2: Hadoop kurulumunu gerçekleştirebilmemiz için openssh-server ve rsync paketlerinin kurulması gerekmektedir.  $ sudo apt-get install ssh  $ sudo apt-get install rsync Hadoop sistemi için kullanıcı ve grup oluşturuyoruz.  $ sudo addgroup hadoop  $ sudo adduser --ingroup hadoop hduser Yukarıdaki komutların çalıştırılmasıyla lokal makine üzerinde hadoop grubu ve hduser isimli kullanıcı oluşturulur.
  44. 44. Kurulum Öncesi Adım 3:  Hadoop node ların yönetilmesi için SSH erişimine ihtiyaç duymaktadır.Hadoop sistemi içerinde oluşturulan hduser kullanıcısı için SSH anahtar üretilmesi için aşağıdaki adımlar izlenir. user@ubuntu:~$ su - hduser 2. hduser@ubuntu:~$ ssh-keygen -t rsa -P "" 1. 3. cat $HOME/.ssh/id_rsa.pub >> HOME/.ssh/authorized_keys Yukarıdaki komutlarla  şifresiz giriş için anahtar çifti üretilmektedir. (2)  anahtarla ssh erişimi aktive edilir.(3)
  45. 45. Hadoop Kurulum Başlangıç:  Apache Sayfası üzerinden seçmiş olduğunuz Hadoop versiyonunu indiriyoruz.  İndirilen Hadoop versiyonunu lokal bilgisayar üzerinde belirlemiş olduğunuz klasor içerine açıyoruz.  Örnekte Kurulum yolu olarak /usr/local/hadoop yolunu seçilmiştir. 1. $ cd /usr/local 2. $ sudo tar xzf hadoop-1.0.3.tar.gz 3. $ sudo mv hadoop-1.0.3 hadoop 4. $ sudo chown -R hduser:hadoop hadoop
  46. 46. Hadoop Konfigurasyonu:  conf/hadoop-env.sh dosyasının güncellenmesi: gedit editörü ile dosyamızı açtıktan sonra; export JAVA_HOME=/usr/lib/jvm/j2sdk1.5-sun satırını silerek altaki satırla değiştirin export JAVA_HOME=/usr/lib/jvm/jdk1.7.0
  47. 47. core-site.xml dosyası: Küme ile ilgili genel ayarlar core-site.xml dosyasında bulunmaktadır. conf/core-site.xml dosyasında aşagıdaki düzenlemeyi yapıyoruz <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/java/hadoop-data</value> </property> </configuration>
  48. 48. hdfs-site.xml dosyası: HDFS ile ilgili ayarların yapıldığı hdfs-site.xml dosyasına varsayılan replikasyon ayarını 1 olacak şekilde ayarlıyoruz: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
  49. 49. mapred-site.xml dosyası:  MapReduce ayarlarının yapıldığı mapred-site.xml dosyasına aşağıdaki tanımı yapıyoruz: <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
  50. 50. Hadoop NameNode Format: Hadoop NameNode’un formatlanması için yazılacak komut:  -$ bin/hadoop namenode -format
  51. 51. Hadoop ‘un Başlatılması  Hadoop Başlatma komutu: hduser@ubuntu:~$ /usr/local/hadoop/bin/start-all.sh Namenode, Datanode, Jobtracker, Tasktracker süreçlerini başlatır.
  52. 52. Kontrol  Sistemin başarılı bir şekilde başladığını görmek için jps komutunu kullanabiliriz. hduser@ubuntu:/usr/local/hadoop$ jps 2287 TaskTracker 2149 JobTracker 1938 DataNode 2085 SecondaryNameNode 2349 Jps 1788 NameNode
  53. 53. Arayüz Erişim Linkleri  Aşağıdaki linklerden NameNode,JobTracker ve Task Tracker arayüzlerine ulaşılabilir.  http://localhost:50070/ -NameNode  http://localhost:50030/ –JobTracker  http://localhost:50060/ –the TaskTracker
  54. 54. Name Node Arayüzühttp://localhost:50070/
  55. 55. Job Tracker Arayüzühttp://localhost:50030/
  56. 56. Task Tracker Arayüzühttp://localhost:50060/
  57. 57. Örnek Uygulama: Twitter Verisinin Apache Hadoop ile Analiz Edilmesi. Belirli bir konuda en çok takip edilen veya tweet’i en çok retweet yapılan kullanıcı nasıl belirlenir? a) SQL sorgusu b) Hadoop
  58. 58. Twitter Veri Formatı  Twitter Streaming API tweetleri JSON formatında yayınladığı için geleneksel sistemler tarafından sorgulanabilmek için uygun değildir. json örnek: "in_reply_to_status_id_str": null, "id": 245255511388336128, "in_reply_to_user_id_str": null, "source": "SocialOomph,
  59. 59. Twitter-Hadoop Veri Aktarımı
  60. 60. Apache Flume + Hive+Oozie Apache Flume sayesinde twitter api çıktıları hadoop hdfs Üzerindeki dosyalara yazılır. Twitter verileri HDFS üzerine yüklendikten sonra Hive üzerinde veri sorgularının yönetilebilmesi için harici bir tablo yapısı oluşturulur. Oozie sayesinde de hdfs üzerinde her yeni dosya oluştuğunda hive üzerindeki tabloya yeni satırlar eklenir.
  61. 61. Hive Hive ile Hadoop üzerinde belirli bir formata uygun şekilde bulunan dosyaları, örneğin .csv dosyalarını metadataları girerek tablo gibi tanıtabiliriz. Hive bu metadata bilgisini saklayarak daha sonra çalıştıracağımız SQL benzeri sorguları MapReduce kodlarına çevirerek bu dosyalar üzerinde select, join işlemlerini gerçekleştirir. Bu sayede çok büyük miktarda veriyi SQL gibi Hadoop üzerinde paralel olarak sorgulama şansımız olur.
  62. 62. Hive -Örnek hive> CREATE EXTERNAL TABLE products (ID INT, NAME STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' LINES TERMINATED BY 'n' STORED AS TEXTFILE LOCATION '/user/twitterlogs';
  63. 63. Hive –SerDe (Serialize-Deserialize) Hive –SerDe arayüzü ile twitter json tipindeki çıktı sorgulanabilir yeni bir tablo oluşturulur.
  64. 64. Hive SELECT t.retweeted_screen_name, sum(retweets) AS total_retweets, count(*) AS tweet_count FROM (SELECT retweeted_status.user.screen_name as retweeted_screen_name, retweeted_status.text, max(r etweet_count) as retweets FROM tweets GROUP BY retweeted_status.user.screen_name, retweeted_stat us.text) t GROUP BY t.retweeted_screen_name ORDER BY total_retweets DESC LIMIT 10;
  65. 65. Sonuç
  66. 66. TEŞEKKÜRLER Cenk DERİNÖZLÜ cenkder@gmail.com

×