54
T.C. MALTEPE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI HADOOP VE BÜYÜK VERİ Ahmet Veysel TOPLU Yüksek Lisans Projesi Proje Danışmanı Doç. Dr. Şenol Zafer ERDOĞAN İSTANBUL – 2016

dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

T.C.

MALTEPE ÜNİVERSİTESİ

FEN BİLİMLERİ ENSTİTÜSÜ

BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI

HADOOP VE BÜYÜK VERİ

Ahmet Veysel TOPLU

Yüksek Lisans Projesi

Proje Danışmanı

Doç. Dr. Şenol Zafer ERDOĞAN

İSTANBUL – 2016

T.C.

Page 2: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

MALTEPE ÜNİVERSİTESİ

FEN BİLİMLERİ ENSTİTÜSÜ

BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI

HADOOP VE BÜYÜK VERİ

YÜKSEK LİSANS PROJESİ

Ahmet Veysel TOPLU

Proje Danışmanı

Doç. Dr. Şenol Zafer ERDOĞAN

İSTANBUL – 2016

Page 3: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

ÖZETGünümüzde artık birçok noktadan gelen veriler birleştirilip çok büyük yığınlar

oluşturmaktadır. Bu durumda analizin gerçekleştirilmesi zorlaşabilmektedir. Bu sorunu

girebilmek için, dağıtık sistemler diye adlandırılan kaynakların paylaşımını sağlayan

yapılar kullanılmaya başlanmıştır. Büyük verilerin ölçeklenebilir, güvenli, hızlı ve

kararlı şekilde analizleri için bu sistemler tercih edilmektedir. Apache Hadoop, dağıtık

sistemlerde kullanılan yazılımlardan bir tanesidir. Bu yazılım, Google Dosya Sistemi

altyapısı üzerinde geliştirilmiş ve harita azaltma (MapReduce) algoritmasını kullanarak

verileri işlemeyi sağlamıştır. Bu çalışmada Hadoop hakkında genel bilgiler verilip,

örnek bir uygulama ile Hadoop yapısı anlatılmaktadır.

Anahtar Kelimeler: Hadoop, Büyük veri, Analiz, Eşleme, Azaltma, Java, Dağıtık

sistemler.

ABSTRACTToday, many types of data which come from various points, are gathered and they

produce piles of masses. In this cases, performing of analysis becomes more tedious. In

order to solve these kinds of problems, structures which enable resource sharing called

distributed systems are begun to be used. These systems are preferred due to their

scalability, dependability, facticity and speed in data analysis. Apache Hadoop is an

application used in distributed systems. This application is developed in Google File

System infrastructure and enables data processing by using mapreduce algorithm. In this

study, general information about Hadoop is given and Hadoop’s structure is explained

with an sample application.

Keywords: Hadoop, Big data, Analysis, Map, Reduce , Java, Distributed Systems.

III

Page 4: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

İÇİNDEKİLER

ÖZET...............................................................................................................................III

ABSTRACT....................................................................................................................III

İÇİNDEKİLER................................................................................................................IV

KISALTMALAR..............................................................................................................V

ŞEKİL LİSTESİ..............................................................................................................VI

TABLO LİSTESİ.........................................................................................................VIII

1. GİRİŞ.........................................................................................................................1

2. HADOOP...................................................................................................................3

2.1 Dağıtık Sistemler (Distributed Systems)............................................................3

2.2 Eşleme Azaltma (MapReduce)...........................................................................4

2.3 Hadoop Altyapısı................................................................................................7

2.3.1 HDFS – Hadoop Distributed File System.........................................................7

2.3.2 İsim Düğümü.....................................................................................................9

2.3.3 Veri Düğümü.....................................................................................................9

2.3.4 Veri Sıkıştırması................................................................................................9

2.3.5 HADOOP’un Olumlu ve Olumsuz Tarafları..................................................10

2.3.6 Harici HADOOP Bileşenleri...........................................................................11

3. HADOOP KULLANIMI HAKKINDA GENEL BİLGİLER..................................12

4. KURULUM..............................................................................................................14

4.1 Kurulum Adımları.............................................................................................14

4.2 HADOOP Sistem Kurulumu............................................................................21

4.2.1 Sahte Dağıtık Kurulum...................................................................................21

5. SONUÇ....................................................................................................................32

6. Kaynakça..................................................................................................................33

IV

Page 5: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

KISALTMALAR

Kısaltma Türkçesi İngilizcesi

RDBMS Bağlantılı Veri Tabanı Yönetim

Sistemi

Relational Database Management

System

HDFS Hadoop Dosya Sistemi Hadoop File System

SQL Yapılandırılmış Sorgu Dili Structured Query Language

RAID Bağımsız Disklerin Artıklı Dizisi Redundant Array of Inexpensive

Disks

TCP/IP İletim kontrol protokolü / İnternet

Protokolü

Transmission Control Protocol /

Internet Protocol

JDK Java Geliştirici Paketi Java Development Kit

SSH Güvenli Kabuk Secure Shell

IPv6 İnternet Protokolü Versiyon 6 Internet Protocol Version 6

V

Page 6: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

ŞEKİL LİSTESİ

Şekil 1.1: Dünya çapında 60sn içerisinde gerçekleşen işlemler.......................................1

Şekil 2.1.1: Farklı kümelere ayrılmış bir dağıtık sistem şeması.......................................4

Şekil 2.2.1: Bir sunucu ile dağıtık sunucu yapısı arasındaki hız farkı..............................5

Şekil 2.2.2: Eşleme ve azaltma işlemlerinin örnek bir veri ile uygulanış şeması.............6

Şekil 2.2.3: İş planlayıcı ve iş yapıcı katman yapısı.........................................................7

Şekil 2.3.1.1: HDFS ve eşleme azaltma yapısının bağlantı şeması..................................8

Şekil 2.3.3.1: Veri düğümü altında yedeklenen veri bloklarının yapısı............................9

Şekil 3.1: Gittigidiyor.com sitesi Hadoop kullanım alanları..........................................12

Şekil 4.1.1: “Maven Project” proje oluşturma ekranı....................................................14

Şekil 4.1.2: Proje bilgilerinin doldurulacağı ekran.........................................................15

Şekil 4.1.3: Proje sınıfı(class) yapısı görünümü.............................................................15

Şekil 4.1.4: Projeye tanımlanacak eklentilerin ekran görüntüsü.....................................16

Şekil 4.1.5: Eşleme sınıfı kodları....................................................................................17

Şekil 4.1.6: Azaltma sınıfı kodları..................................................................................18

Şekil 4.1.7: İş sınıfı kodları.............................................................................................19

Şekil 4.1.8: Sınıf tanımlamaları yapılmış Eclipse görünümü..........................................20

Şekil 4.1.9: Projenin derlenmesi.....................................................................................20

Şekil 4.1.10: Çalıştırılabilir eşleme azaltma “.jar” uygulaması......................................20

Şekil 4.2.1.1: JDK kurulum komutu uygulanması..........................................................21

Şekil 4.2.1.2: Ubuntu sisteminde kullanıcı tanımlama ekranı........................................22

Şekil 4.2.1.3: Hduser yetkilendirmesi gönümü...............................................................22

Şekil 4.2.1.4: Ssh kurulumu ekran görüntüsü.................................................................23

Şekil 4.2.1.5: Ssh anahtarının üretildiği ekran görüntüsüdür..........................................23

Şekil 4.2.1.6: Kök kullanıcıya geçiş işlemi ekranı..........................................................23

Şekil 4.2.1.7: Yetkilendirme işlemi ekranı......................................................................24

Şekil 4.2.1.8: Klasörlerin oluşturulduğu ekran...............................................................24

Şekil 4.2.1.9: Hadoop dosyalarının indirildiği ekran görüntüsü.....................................25

Şekil 4.2.1.10: İsim düğümü biçimlendirme ekranı........................................................28

Şekil 4.2.1.11: Hadoop servisleri başlatma ekranı..........................................................28

Şekil 4.2.1.12: Eşleme azaltma uygulaması çalıştırılma ekranı......................................29

Şekil 4.2.1.13: “/data” klasörü içindeki veri miktarı görünümü.....................................29

Şekil 4.2.1.14: Hadoop sisteminin tarayıcı ekranından görünümü.................................30

VI

Page 7: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 4.2.1.15: İşlenmiş verilerin görünümü...................................................................31

Şekil 4.2.1.16: Derlenen verilerin sonuç çıktısı..............................................................31

VII

Page 8: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

TABLO LİSTESİ

Tablo 2.3.4.1: Hadoop sıkıştırma kütüphaneleri. 10

Tablo 3.1: Hadoop yapısını kullanan bazı firmalar. 13

VIII

Page 9: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

1. GİRİŞ

Günümüzde teknolojinin ilerlemesiyle birlikte artık neredeyse her elektronik cihaz,

kullanım şekline göre veri üretmeye başlamıştır. Bu verilerin sağlıklı olarak saklanması

ihtiyacı ortaya çıkmış ve birçok sebepten (güvenlik, hata tespitleri, kullanıcı

davranışlarını yorumlama) bu verilerin analizi ve yorumlanabilir hale gelmesi

gerekmiştir.

Dünyada 3.000.000.000‘ın üzerinde internet kullanıcısı bulunmaktadır1, 2015 yılında

yapılan bir araştırmaya göre o tarihe kadar Twitter’da toplam 13 milyar Tweet

atılmıştır.2 2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı

basılmıştır. Yine 2014 yılında Gittigidiyor.com aylık ziyaretçi sayısını 27,5 milyon, ilk

üç ayındaki ürün satış adedi ise 2 milyon 670 bin olarak açıklamıştır3. Google’da ise

günde yaklaşık 3 milyar arama yapılmaktadır4. Bu bilgilere bakarak ne kadar büyük

verilerin oluşabileceği ve bunların saklanıp analiz edilebileceği tahmin edilebilir. İşte bu

veriler karşımıza büyük veri (big data) olarak çıkmaktadır.

Şekil 1.1: Dünya çapında 60sn içerisinde gerçekleşen işlemler.5

1 internetlivestats.com2 http://expandedramblings.com/3 http://webrazzi.com/2014/05/20/gittigidiyordan-ilk-ceyrek-raporu-2-milyon-670-bin-urun-satisi/4 http://www.worldometers.info/tr/5 https://unteaglestrategies.com/2015/10/04/the-evolution-of-the-internet/

1

Page 10: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Ortalıkta bu kadar çok veri varken bunlar hızlı ve doğru şekilde analiz edilmezse bir

anlam ifade etmeyecektir. Önemli olan, bu verilerin içindeki ihtiyaç duyulan bilgiye

ulaşabilmek ve amacına uygun şekilde yorumlanabilir hale getirmektir.

Normal şartlarda kişisel bilgisayarda bir mp3 aramak istenildiğinde bile sonucu birkaç

saniyede alıyorken, internet ortamında standart veri tabanı sistemlerinde petabyte

seviyelerine çıkabilen veriler içerisinde arama yapmanın ne kadar güç bir işlem olacağı

tahmin edilebilir.

Verilerin tablolarda satır ve sütunlar halinde tutulduğu klasik sistemlerde İlişkisel Veri

tabanı Yönetim Sistemi (RDBMS – Relational Database Management System)

kullanılmaktadır ve bu büyüklükteki verileri işlemek bu sistemlerde hem maliyet hem

de performans açısından çok zor olacaktır. Bu sebepten büyük verilerin hızlı bir biçimde

işlenmesi ve anlamlı sonuçlar elde edilebilmesi için farklı dağıtık yapılar

oluşturulmuştur. Bunlardan birisi de Hadoop yapısıdır.

2

Page 11: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

2. HADOOP

Hadoop, dağıtık sistem yapısını kullanarak bloklara ayırdığı büyük veriyi eşleme

azaltma (Mapreduce) işleminden geçirip makul zaman ve kabul edilebilir maliyet ile

anlaşılabilir sonuçlar elde edilmesini sağlayan açık kaynak kodlu bir yazılımdır. Dağıtık

sistem yapısının kullanılması veri işlemede Hadoop için büyük bir kolaylık

sağlamaktadır çünkü bir sunucuya bağımlı kalmadan imkanlar dahilinde bir çok

sunucuyu birleştirilerek tek bir fiziksel sunucuymuş gibi işlem yapma yeteneğine sahip

olur. Dağıtık yapıdaki bu sunucular haritalama azaltma yöntemi ile verileri istenilen

yapıya uygun hale getirilmesini ve anlaşılabilir olarak alınmasını sağlayacaktır. Eşleme

azaltma işlemi isminden de anlaşılacağı üzere iki aşamadan oluşmaktadır. Eşleme işlemi

ile dağınık halde bulunan verilerimizde istediğimiz alanlara ulaşmak, süzmek için

ihtiyaç duyulur. Azaltma işleminde ise süzdüğümüz verileri belirlenen parametrelerle

anlamlandırma işlemi gerçekleştirilmiş olur. Eşleme azaltma, Java ortamında

yazabildiğimiz için ek maliyet getirmemektedir. Hadoop açık kaynak kodlu bir

mimariye sahip olmasından dolayı maliyet açısından benzerleri ile kıyaslandığında çok

daha ekonomiktir ve geliştirilmeye daha açıktır.

2.1 Dağıtık Sistemler (Distributed Systems)

Dağıtık sistemler, aynı fiziksel yapı üzerinde bulunmayan, yani hafıza ve saati ortak

olmayan işlemciler kümesi olarak tanımlanabilir. Bu sistemler haberleşmeyi ağ

üzerinden yaparlar. Bu tip yapılarda bilgiyi işleme, tek bir cihaz üzerinde değil sistem

içinde birden çok cihaz üzerine dağıtılarak yapılır. Dağıtık sistemler karmaşık bir yapıya

sahiptirler ve yönetimi kolay değildir, fakat kaynak paylaşımı, performansları, hataya

karşı işleme devam edebilme yetenekleri ve eş zamanlı veri işleme yeteneği ile ön plana

çıkmaktadırlar.

3

Page 12: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 2.1.1: Farklı kümelere ayrılmış bir dağıtık sistem şeması.

2.2 Eşleme Azaltma (MapReduce)

Google tarafından geliştirilmiş bir programlama modelidir ve HDFS (Hadoop File

System) üzerinde barındırılan büyük verilerin işlenmesi aşamasında kullanılır. Verilerin

filtrelenmesinde Eşleme (Map) fonksiyonu ve bu verilerin listelenmesinde ise azaltma

(Reduce) fonksiyonları kullanılır. Eşleme azaltma işlemini Yapısal Sorgulama Dilinde

(SQL – Structured Query Language) anlamaya çalışılırsa, WHERE ile yapılan

filtreleme eşleme işlemine, SUM veya COUNT gibi birleştirme işlemleri azaltma

işlemine denk gelmektedir.

Hadoop, eşleme ve azaltma fonksiyonlarından oluşan iş parçacıklarını küme üzerine

dağıtarak aynı anda işler yani paralel olarak çalışmaktadır ve dönen sonuçları

birleştirmektedir. İşlenen dosyalar, yerel diskler üzerinde çalıştırılacağı için bant

genişliğini tüketmeyecektir ve birden fazla iş aynı anda işlenerek oldukça hızlı sonuçlar

elde edilebilecektir.

Eşleme azaltma sürecinin ilk mimarları Doug Cutting ve Michael Caferella olup, 2005

yılında Nutch arama motoru oluşturma projesine eşleme azaltma işlemi uygulamak için

çalışmalar yapmışlardır. Sonrasında projeyi Google sahiplenip geliştirmeler yapmıştır.

Günümüzde ise Hadoop, Java dili ile yazılmış olup Apache tarafından sürdürülen

eşleme azaltma çatısı olarak ifade edebilir. Hadoop, yapısı gereği büyük veriyi parçalar,

4

Page 13: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

bloklara ayırır ve küme içerisindeki tüm düğümlere dağıtır, bu sayede veriler paralel

işlenerek muazzam bir işlem gücü elde edilir.

Bu işlemleri yaparken iki fonksiyonla haberleşme içerisinde olacaktır. Bu fonksiyonlar:

İş Planlayıcı (JobTracker): Atanacak görevleri planlar.

İş Yapıcı (TaskTracker): Atanan görevleri uygular.

1(Bir) Terabyte (TB) veri okunması

Şekil 2.2.1: Bir sunucu ile dağıtık sunucu yapısı arasındaki hız farkı.6

Eşleme, işlem yaparken, ana düğüm’ de bulunan iş planlayıcı, veri girişlerini

alır. Bunları küçük alt görevlere bölerek ayırır. İş yapıcı düğümlere dağıtır. İşçi

düğümlerde bulunan iş yapıcılar işi yaptıktan sonra ana düğüme cevabı gönderir.

Azaltma, işlem yaparken, ana düğüm işçi düğümlerden gelen cevapları alır.

Sonucu almak için tekrar işçi düğümlere gönderir.

6 http://www3.lenovo.com/au/en/systems/servers/c/servers

5

1 sunucu

45 dakika

10 sunucu

4.5 dakika

Page 14: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 2.2.2: Eşleme ve azaltma işlemlerinin örnek bir veri ile uygulanış şeması

Hadoop, Java dili ile geliştirildiği için eşleme azaltma uygulamaları Java ile kodlanır,

“.jar” uzantısı ile paketlenir. Yapısı incelendiğinde iş yapıcı ve iş planlayıcı

süreçlerinden oluştuğu görülür.

İş Planlayıcı: Yazılan eşleme azaltma fonksiyonunun kümelere dağıtılarak çalışmasını

sağlar. Bu fonksiyonlar iş parçacıklarını izler, böylece çalışırken ortaya çıkan sorunlarda

işi sonlandırmak veya yeniden başlatmak gerekirse sisteme müdahale ederler. Daha

sade bir anlatımla iş planlamasını yapar ve eşleme işlemi gerçekleştirmesi için işi iş

yapıcılara dağıtır. İsim düğümü gibi bir tane bulunur. Birden fazla iş parçacığı

çalıştırılabilir.

İş Yapıcı: Veri düğümünün bulunduğu sunucular üzerinde işlem yapmaktadırlar. İş

planlayıcı, gelen işleri yapan fonksiyonlardır. İş yapıcı, isim düğümünden aldığı

bilgilerle, veri düğümünün yerel sabit sürücüsünde bulunan veriye göre en uygun

eşleme işini iş yapıcılara verir. Yapılan işlerin durumu hakkında iş planlayıcı iş yapıcı

tarafından sürekli bilgilendirilir. Sonuç hesaplandığında HDFS üzerinde bir dosya

olarak kaydedilir.

6

İş yapıcı

İş planlayıcı

İsim düğümü

Veri düğümü

İş yapıcı

Veri düğümü

Eşleme azaltma katmanı

HDFS katmanı

Ana Sunucu İşçi Sunucu

Page 15: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 2.2.3: İş planlayıcı ve iş yapıcı katman yapısı.

2.3 Hadoop Altyapısı

Hadoop, HDFS(Hadoop Distributed File System) dosyalama sistemi üzerine kurulmuş,

eşleme azaltma işlemini bu dosya sistemi içerisinde çalıştıran bir yapıya sahiptir.

2.3.1 HDFS – Hadoop Distributed File System

En alt katmanda bulunur. Verilerin saklanması için kullanılan alandır. Makul

maliyetlerdeki sunucuların, sabit depolama sürücülerini birleştirerek tek bir sürücü gibi

çalışmasını sağlar. Böylece, tek bir sunucuda saklanması için büyük yatırımlar

yapılması gereken veriler, daha uygun maliyette ve daha performanslı olarak

saklanabilir.

Dışarıdan bakıldığında hiyerarşik bir dosya sistemi gibi görünmektedir. HDFS dosya

sisteminde, bilinen tüm dosyalama işlemleri (yazma, silme, taşıma) yapılabilir. Veriler

64mb ya da 128 mb’lık bloklar halinde saklanır ve her bloğun varsayılan olarak 3

kopyası bulunur, böylece erişilebilirlik ve güvenilirlik değerlerini sağlamış olur. Bu yapı

RAID sistemlerine benzerdir. Bunun sayesinde çok büyük veriler üzerinde analiz

işlemleri kolaylıkla yapılabilir.

HDFS – Hadoop Distributed File System aşağıda belirtilen iki bileşenden oluşmaktadır;

İsim Düğümü (NameNode): Veri bloklarının bilgilerini tutar.

Veri Düğümü (DataNode): Veri bloklarını saklar.

7

Page 16: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 2.3.1.1: HDFS ve eşleme azaltma yapısının bağlantı şeması

HDFS’in yapısı incelendiğinde, üst katmanda çalışan eşleme azaltma sürecinin, iş

planlayıcı ve iş yapıcılardan oluşan iş parçacıkları olduğu görülür. HDFS yapısı

ayarlanırken blok boyutu ve verilerin kopyalanma sayısı da ayarlanabilir. Tüm işlemler

ağ protokolü bileşeni olan Transmission Control Protocol / Internet Protocol (TCP/IP)

ile gerçekleşir.

2.3.2 İsim Düğümü

Ana süreçtir, sadece özet bilgi saklar; görevi blokların sunuculara dağılımı yönetmek,

blokların oluşturulmasını sağlamak, mevcut blokların gerektiğinde silinmesi sağlamak,

sorun olan bir bloğun tekrar oluşmasını sağlamak, dosya erişimlerini yönetmektir.

HDFS üzerindeki tüm dosya işlemlerinden sorumludur. Hangi blok, hangi dosya

nerededir, takip eder. Kesintiye uğramamalıdır ve her kümede bir tane olmalıdır. Eğer

isim düğümü çalışmaz ise bütün küme çalışmaz hale gelir.

2.3.3 Veri Düğümü

Bloklar halindeki dosyaları saklamak için oluşturulmuş süreçlerdir. Farklı disklerde

bulunan veri düğümlerinin yedeklerini barındırırlar, böylece kapanması durumunda

aksaklık oluşmaz. Bir küme içerisinde birden fazla veri düğümü olabilir. Veriler bu

8

Page 17: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

düğümlerde saklandığı için analiz işlemi düğümde başlayacağından yük dağıtılmış

olacaktır. Sayıları arttıkça analiz hızı da artacaktır.

Şekil 2.3.3.1: Veri düğümü altında yedeklenen veri bloklarının yapısı.

2.3.4 Veri Sıkıştırması

HDFS’de yapılan işlemler çok büyük boyutlarda olduğu için veriyi sıkıştırmak disk

üzerindeki işlemlerini hızlandıracak, yer tasarrufu sağlayacak ve ağ trafiğini olumlu

yönde etkileyecektir. İşlemci kullanımı, sıkıştırma ve açma işlemlerinden dolayı artacak

ve işlem süresi uzayacaktır.

Tablo 2.3.4.1: Hadoop sıkıştırma kütüphaneleri.

Format Algoritma Açıklama

Zlib Klasör tabanlı, APIYüksek sıkıştırma oranı

vardır

GzipKlasör tabanlı standart

sıkıştırma sağlar.

Orta seviyeli sıkıştırma

oranı vardır. Çok hızlı

değildir.

bzip2Değişim tabanlı, blok yönlü

sıkıştırma sağlar.

Zlib’e göre daha

yüksek sıkıştırma oranı

sağlar.

LZOKlasör tabanlı, blok yönlü

sıkıştırma sağlar, APIHızlı sıkıştırma sağlar.

LZ4Sadeleştirilmiş LZ77 türevi

sıkıştırma sağlar.Hızlı tarama sağlar.

Snappy Blok yapılı sıkıştırma sağlar, Çok hızlı sıkıştırma

9

Page 18: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

API sağlar.

2.3.5 HADOOP’un Olumlu ve Olumsuz Tarafları

Ölçeklenebilir: Büyük veri, günümüz dünyasında gelişen teknoloji ile beraber sürekli

olarak büyümeye devam edecektir. Hadoop, büyümeye devam eden bu veriyi hızlı bir

şekilde analiz edebilmek için düğümler ekleyerek genişleyebilmektedir.

Uygun Fiyat: Bu kadar becerikli bir sistemin pahalı olması gerektiği düşünülebilir.

Ancak açık kaynak kodlu oluşu, alt yapısı için özel donanımsal ihtiyaçlarının olmayışı

ve standart özelliklerdeki her sunucuda kolaylıkla çalıştırılabileceği için maliyeti çok

uygundur.

En Az Hata: Analizi yapılacak büyük veri birden fazla bloklara bölündükten sonra

birden çok düğüme gönderilir. Bu sayede küme içerisinde bir düğümde hata olması

durumunda sistem aksamadan çalışmaya devam edecektir.

Olumlu tarafları;

Dağıtılmış veriler, veri düğümlerinde işlendiğinden ağ ortamında trafiğe sebep

olmaz.

İş parçaları birbirinden bağımsız işlediği için hızlıdır.

Hata önleme sistemi vardır.

Çok büyük ebatta verileri saklayabilir.

Olumsuz tarafları;

Büyük veri kavramına uymayan yapılar içerisinde analiz yapılacaksa, buna

uygun değildir.

Hadoop, küme yapısı paralel analiz için geliştirilmiş olup uygulamalar buna

adapte olacak şekilde yapılandırılmamışsa verim alınmaz.

Kümeler üzerinde hata kaydı ve hata ayıklama işlemleri yapmak zordur.

Eşleme azaltma işlemleri yapması ileri seviye yazılım bilgisi gerektirebilir.

2.3.6 Harici HADOOP Bileşenleri

10

Page 19: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Hadoop uygulaması için geliştirilen beş temel bileşen bulunmaktadır. Bu geliştirmeler,

çeşitli ihtiyaçlar doğrultusunda Hadoop’un yönetimini ve işlevselliğini arttırmak amacı

ile yapılmış çalışmalardır.

HiveQL: Facebook tarafından geliştirilmiştir. SQL’e benzer bir yapısı vardır. Java

kullanmadan eşleme azaltma uygulamalarının geliştirilmesi için tasarlanmıştır. İlk

olarak HDFS üzerindeki dosyaların tablo olarak tanıtılması gerekmektedir. Bu işlemden

sonra oluşturulan sanal tablo sorgulanabilir.

Pig: Yahoo tarafından geliştirilmiş olup, eşleme azaltma uygulaması yazmak için

kendine özgü kodlama standartları olan PigLatin dili kullanır. HiveQL’in aksine SQL’e

hiç benzemez.

Hbase: Hadoop üzerinde çalışan bir veri tabanıdır. HDFS alt yapısında çalıştığından

dolayı eşleme azaltma işlemlerini desteklemektedir. Petabyte seviyesinde veriyi

saklayabilir.

Mahout: Hadoop üzerinde çalışan Machine Learning algoritmalarını içeren bir

kütüphanedir.

Impala: Eşleme azaltma yapmadan verilere direk erişim sağlamak için Cloudera firması

tarafından geliştirilmiştir.

11

Page 20: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

3. HADOOP KULLANIMI HAKKINDA GENEL BİLGİLER

Dünya’da ve Türkiye’de Hadoop kullanımı yaygınlaşmaya başlamıştır. Şekil 3.1 ‘de

Gittigidiyor.com sitesinin ziyaretçilerine Hadoop sistemi kullanılarak sonuçların nasıl

yansıtıldığı gösterilmiştir.

Şekil 3.1: Gittigidiyor.com sitesi Hadoop kullanım alanları.

Konu ile alâkalı olarak, Gittigidiyor.com resmi sitesinde yayınlanan bir makalede şöyle

denilmiştir: “Hadoop teknolojisini ilk olarak 2011 yılında geliştirdiğimiz Akıllı

Sıralama projesi kapsamında altyapımıza dahil ettik,” ve eklenmiş “Akıllı Sıralama

projesi sayesinde arama sonuçlarında kullanıcılara milyonlarca ürün içerisinde

aradıkları ürüne en uygun sonuçları getirdik.”7

7 http://kurumsal.gittigidiyor.com/2014/03/24/gittigidiyorda-big-data-ve-hadoop-teknolojileri/

12

Page 21: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Tablo 3.1: Hadoop yapısını kullanan bazı firmalar.

2006-2007 2008 2009 2010

Yahoo! Google Aol Samsung

Internet Archive Imageshack Itrend Ebay

Ibm Hulu Linkedin

Facebook Hola Microsoft

Lookery Amazon Twitter

Netseer Cloudera Rockspace

News Corporation System eth Admeld

Alibaba, EBay, Facebook, LinkedIn, Yahoo! günümüzde Hadoop kullanan firmalardan

bazılarıdır.8

8 https://wiki.apache.org/hadoop/PoweredBy

13

Page 22: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

4. KURULUM

Hadoop, ihtiyaca göre üç farklı tipte kurulabilmektedir. Tekil kurulum(Standalone

Mod), Sahte dağıtık kurulum (Pseudo-Distributed Mod), Tam dağıtık kurulum(Fully-

Distributed Mod). İhtiyaca göre bu üç tipten birine karar verilip kurulum adımları buna

göre işletilmelidir. Bu çalışmada detaylı açıklaması yapılacak olan kurulum, sahte

dağıtık kurulum tipidir.

3GB’lık bir web sitesi kayıtlarını analiz ederek “VT” ile başlayan oturum anahtarı

(session) numaralarının sayılması, böylece sistemde kaç adet kaydın olduğunu

hesaplayarak her bir oturum anahtarına göre sayım yaparak giriş sayısını hesaplanması

gerçekleştirilmektedir. Sistemin uygulanabilmesi için, Windows 10 işletim sistemine

Virtual Box sanallaştırma uygulaması yüklenerek Linux işletim sisteminin Ubuntu

dağıtımı kurulması önerilir.

4.1 Kurulum Adımları

Eşleme azaltma kodlarının hazırlanması için Eclipse uygulamasının yüklenmiş olması

gerekmektedir. Uygulama https://eclipse.org/ web adresinden temin edilebilir.

1) Şekil 4.1.1’de gösterildi gibi yeni bir Maven çalışması oluşturulur.

Şekil 4.1.1: “Maven Project” proje oluşturma ekranı.

14

Page 23: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

2) Şekil 4.1.2 ‘de gösterildiği gibi eşleme azaltma çalışması için genel bilgiler

girilir

Şekil 4.1.2: Proje bilgilerinin doldurulacağı ekran.

Java uygulamasının çalışması için gerekli ana yapı şekil 6.1.3’de gösterildiği gibi

olacaktır.

Şekil 4.1.3: Proje sınıfı(class) yapısı görünümü.

15

Page 24: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

3) Pom.xml dosyasında java kodlarının çalışacağı eşleme azaltma uygulamasının

kullanacağı eklentiler (plug-in) tanımlanır ve bazı genel bilgiler girilir.

Şekil 4.1.4: Projeye tanımlanacak eklentilerin ekran görüntüsü.

4) Eşleme (Mapper) sınıfı oluşturulur.

Hadoop.mr yapısının altına ProtectionMapper.java sınıfı oluşturulmalı ve içerisine

aşağıdaki kodlama yapılmalıdır.

Bu kodlama ile veriler kontrol edilerek gelen veri kümesi boşluklara göre parçalanır. 1.

Parça anahtar olarak alınır ve context değişkenine 1 değeri yazılır. Böylece haritalama

işlemi yapılmış ve azaltma işlemine geçiş için hazır olacaktır.

// ProjectionMapper class’ı tanımlanır

public class ProjectionMapper extends Mapper<LongWritable, Text, Text,

LongWritable> {

//Word isminde bir Text tipinde bir değer oluşturuyoruz.

private Text word = new Text();

//count isminde LongWritable tipinde bir değer oluşturuyoruz.

private LongWritable count = new LongWritable();

//java veri yapısına göre Key ve Value ları tutan bir map yapısının oluşturulması

sağlanır.

@Override

protected void map(LongWritable key, Text value, Context context) throws

IOException, InterruptedException {

//split adında bir dizi oluşturuyoruz ve gelen değeri boşluklara göre parçalıyoruz.

String[] split = value.toString().split("\t+");

16

Page 25: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

//split dizisinin birinci değişkeni Word değişkenine atanır.

word.set(split[1]);

if (split.length > 2) {

//split in içeriği boş değilse count 1 olarak yazılır.

count.set(1);

//context ‘e Word(session) ve count(1) yazılır

context.write(word, count);

}

}

}

Şekil 4.1.5: Eşleme sınıfı kodları.

İşlenecek veri dosyasının yapısı dört sütundan oluşmaktadır. Bunlar tarih, oturum

anahtarı (session), bağlantı adresi ve ülke kodu şeklindedir. Şekil 6.1.5’deki gibi

genişletme (extend) işleminde bu alanlar ve tipleri tanımlanmış olur. word.set(split[1]);

kodu ile anahtar(key) değerimiz belirtilir. count.set(1); kodu ile değeri “1” olarak atanır

çünkü azaltma işleminde bu değerler toplanarak toplam sayı bulunacaktır.

5) Azaltma sınıfı oluşturulur

“Hadoop.mr” altına “LongSumReducer.java” oluşturulur ve içerisine aşağıdaki kodlama

yapılır. Bu kod yapısıyla, gelen veriler doğrultusunda kendisine gelen anahtar ve

sayıları alarak toplama işlemi yapar ve toplamları içeriğe (context) aktarır.

Gelen her bir anahtar değeri için değerler toplanır. Örneğin AAA kullanıcısı 3 defa

siteye girmiş ise o zaman AAA kullanıcısı için 3 defa “for” döngüsüne girecektir ve

sayaç arttırılacaktır.

17

Page 26: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

// LongSumReducer clas’ı tanımlanır

public class LongSumReducer<KEY> extends Reducer<KEY, LongWritable,

KEY,LongWritable> {

//LongWritable tipinde result adında bir değer tanımlanır. Sonuçlar burada toplanır

private LongWritable result = new LongWritable();

public void reduce(KEY key, Iterable<LongWritable> values,

Context context) throws IOException, InterruptedException {

//count adında değişken tanımlanarak değeri 0 olarak atanır

long count = 0;

//aynı değerlerin gelip gelmediğini kontrol ederek eşleşen varsa count değişkeni bir

arttırılır.

for (LongWritable val : values) {

count ++;

}

//count değişkeni sonuç olarak yapılandırılır

result.set(count);

//sonuç key ile beraber context’e yazılır.

context.write(key, result);

}

}

Şekil 4.1.6: Azaltma sınıfı kodları

6) İş (Job) sınıfı oluşturulur.

//iş tanımlaması yapılan alandır (Job ismi)

Job job = Job.getInstance(conf, "total_impression");

//kodun hangi sınıf ismine sahip olacağı tanımlanır (main class’dan çekecek

şekilde tanımlıyoruz)

job.setJarByClass(getClass());

job.setJobName(getClass().getSimpleName());

//işlem yapılacak verilerin olduğu dosya(lar) tanımlanır

18

Page 27: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

FileInputFormat.addInputPath(job, new Path("hdfs://localhost:9000/data/*"));

//sonuçların yazılacağı yer tanımlanır

FileOutputFormat.setOutputPath(job,new

Path("hdfs://localhost:9000/result/totalImpressionResult"));

//Haritalama sınıf bilgisi girilir.

job.setMapperClass(ProjectionMapper.class);

//Birleştirme(combiner) sınıf bilgisi girilir(buraya azaltma sınıfı yazıyoruz)

job.setCombinerClass(LongSumReducer.class);

//Azaltma sınıfı bilgimizi giriyoruz.

// sonuç olarak dönecek olan, aranan kelime yani anahtar‘ın formatını tanımlıyoruz

job.setOutputKeyClass(Text.class);

//sonuç olarak dönecek olan , hesaplanan değer ‘ın formatını tanımlıyoruz(kaç kere

gemiş)

job.setOutputValueClass(LongWritable.class);

//threath işlemi için ayar alanıdır, ana programın bitmesini beklemek için

tanımlanır

return job.waitForCompletion(true) ? 0 : 1;

}

//Ana(Main) sınıf tanımlanır

public static void main(String[] args) throws Exception {

int rc = ToolRunner.run(new AggregateJob(), args);

System.exit(rc);

}

}

Şekil 4.1.7: İş sınıfı kodları

19

Page 28: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Bu sınıf İş’in gönderildiği ve ayarların yapıldığı sınıftır. Bu adımlar yapıldıktan sonra

görünüm Şekil 6.1.8 ‘e benzeyecektir.

Şekil 4.1.8: Sınıf tanımlamaları yapılmış Eclipse görünümü.

7) Eşleme azaltma uygulaması derlenerek çalıştırılabilir java uygulaması haline

getirilir.

Çalışmada sağ tuş tıklanıp “Run as - > Maven Install” seçilir böylece çalışmanın

bulunduğu çalışma alanı (workspace) içerisinde hedef (target) dosyasında jar

oluşturulmuş olunur.

Şekil 4.1.9: Projenin derlenmesi.

Kurulum aşamasında oluşan “mr-1.0.jar” dosyası Linux klasörüne kopyalanması

gerekecektir.

Şekil 4.1.10: Çalıştırılabilir eşleme azaltma “.jar” uygulaması.

20

Page 29: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

4.2 HADOOP Sistem Kurulumu

Hadoop sistemi 3 farklı şekilde kurulumu yapılabilmektedir. Bu kurulum tipleri aşağıda

anlatılmaktadır:

Tekil Kurulum: Genelde yerel testler için kullanılır, tek makinada ve tek

düğümde çalışır. HDFS sistemi yoktur ve dosyalar yerel olarak alınır.

Sahte Dağıtık Kurulum: Yine tek makinaya tek düğüm olarak kurulur, fakat

kendi içerisinde HDFS sistemi vardır. Veri düğümü, iş yapıcı, iş planlayıcı gibi

bileşenler bulunmaktadır. Bunlar ayrı Java Sanal Makine (JVM – Java Virtual Machine)

süreci olarak çalıştırır. Bu çalışmada gerçekleştirilen uygulama sahte dağıtık kurulum

tipinde yapılacaktır.

Tam Dağıtık Kurulum: Bu kurulum, Hadoop’u küme yapısında çalıştırma

tipidir. Birden fazla düğümden oluşur.

4.2.1 Sahte Dağıtık Kurulum

1) # sudo apt-get install default-jdk

1.adımdaki kod çalıştırılarak Java Development Kit(JDK) Ubuntu işletim sistemine

kurulur.

Şekil 4.2.1.1: JDK kurulum komutu uygulanması.

2) # sudo addgroup hadoop

3) # sudo adduser –ingroup hadoop hduser

2.adımda “hadoop” adında bir kullanıcı grubu sisteme eklenir. Tam isim(Full Name),

oda numarası(room number) gibi bilgiler istenirse doldurulabilir.

21

Page 30: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

3.adımda eklenen bu kullanıcı “hadoop” grubuna eklenir.

Şekil 4.2.1.2: Ubuntu sisteminde kullanıcı tanımlama ekranı.

4) # sudo visudo

4.adımla tanımlaması yapılan kullanıcı yetkilendirme işlemleri için, boş bir alana

aşağıdaki yetki tanımlaması eklenir sonra ctrl+x ile kaydedilmesi sağlanır.

hduser ALL=(ALL:ALL) ALL

Şekil 6.2.3 ‘deki gibi bir görünüm sağlanmalıdır.

Şekil 4.2.1.3: Hduser yetkilendirmesi gönümü.

5) # sudo apt-get install openssh-server

5.adımda secure shell (ssh) kurulumu yapılır.

22

Page 31: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 4.2.1.4: Ssh kurulumu ekran görüntüsü.

6) # sudo su hduser

6.adımda hduser kullanıcısına geçiş yapılır.

7) # Ssh-keygen –t rsa –P “”

7.adımda çıkan ekrana /home/hduser/.ssh/id_rsa.pub yazılarak Ssh anahtarı üretilir.

8) # cat /home/hduser/.ssh/id_rsa.pub >> /home/hduser/.ssh/authorized_keys

8.adımda Ssh sertifika işlemleri tanımlanır. Şekil 6.2.5 teki gibi bir çıktı beklenir.

Şekil 4.2.1.5: Ssh anahtarının üretildiği ekran görüntüsüdür.

9) # sudo su

9.adımdaki komut ile kök(root) hesabına geçilir

Şekil 4.2.1.6: Kök kullanıcıya geçiş işlemi ekranı.

10) # sudo chown veysel -R /home/hduser

10.adımda hduser kasörüne mevcut hesabımız için yetki alınır. Bu sayede hduser

klasörü içerisine erişim yetkiniz olacaktır.

23

Page 32: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 4.2.1.7: Yetkilendirme işlemi ekranı.

11) hduser klasörü içine /down adında bir klasör açılarak hazırlamış olduğumuz

MapReduce dosyası(mr-1.0.jar) ve analizi yapılacak olan veriler kopyalanır.

Şekil 4.2.1.8: Klasörlerin oluşturulduğu ekran.

12) # sudo chown hduser:hadoop –R /home/hduser/down/20gb

13) # sudo chown hduser:hadoop –R /home/hduser/down/mr-1.0.jar

12.ve 13. Adımlarda şekil 6.2.7 ‘de oluşturulan klasörlere hduser için izin verilir.

14) # sudo gedit /etc/sysctl.conf

14.adımda Internet Protocol Version 6(IPv6) iptali için .conf dosyasına aşağıdaki

satırlar eklenir.

# disable ipv6

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1

15) # cd /usr/local

24

Page 33: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

16) # sudo wget

http://mirrors.sonic.net/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

17) # sudo tar -xzvf hadoop-2.6.0.tar.gz

18) # sudo mv hadoop-2.6.0 /usr/local/hadoop

Hadoop kurulumuna başlanır.

16.adımda hadoop dosyaları indirilir,

17. Adımda dosyalar yerel sürücüye açılıyor,

18.adımda açılan dosyalar hadoop klasörüne taşınır.

Şekil 4.2.1.9: Hadoop dosyalarının indirildiği ekran görüntüsü.

19) # chown hduser:hadoop -R /usr/local/hadoop

Hduser kullanıcısına hadoop klasörü için yetki verilir.

20) # sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenode

21) # sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode

22) # sudo chown hduser:hadoop -R /usr/local/hadoop_tmp/

Hadoop için gerekli isim düğümü, veri düğümü ve geçici klasörleri oluşturulur ve

yetkilendirme yapılır.

23) # sudo gedit $HOME/.bashrc

23.adımda sistem dosyası güncellenmek üzere açılır.

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

25

Page 34: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export YARN_HOME=$HADOOP_HOME

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

Yukarıdaki satırların yolları kontrol ederek eklenir.

24) # source ~/.bashrc

24.adımda sistem dosyasının güncellenmesi sağlanır.

25) # cd /usr/local/hadoop/etc/hadoop

26) # sudo gedit hadoop-env.sh

Güncellenmek üzere hadoop-env.sh dosyası açılır ve JAVA_HOME = {JAVA_HOME}

yazan yere aşağıdaki satır yazılır.

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

27) # sudo gedit core-site.xml

<configuration></ configuration > etiketleri arasına aşağıdaki değer girilir.

<property>

<name>fs.default.name</name>

<value>hdfs://localhost:9000</value>

</property>

28) # sudo gedit hdfs-site.xml

<configuration></ configuration > etiketleri arasına aşağıdaki değer girilir.

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

26

Page 35: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/usr/local/hadoop_tmp/hdfs/namenode</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/usr/local/hadoop_tmp/hdfs/datanode</value>

</property>

29) # sudo gedit yarn-site.xml

<configuration></ configuration > etiketleri arasına aşağıdaki değer girilir.

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

30) # cp mapred-site.xml.template mapred-site.xml

31) # sudo gedit mapred-site.xml

<configuration></ configuration > etiketleri arasına aşağıdaki değer girilir.

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

32) # hdfs namenode –format

32.adımda kullanıma hazırlamak için isim düğümü biçimlendirilir(format).

27

Page 36: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 4.2.1.10: İsim düğümü biçimlendirme ekranı.

33) # Start-dfs.sh

34) # Start-yarn.sh

35) # jps

33,34 ve 35. Adımlarda servisler çalıştırılır. Şifre ve onay isteyebilir.

Şekil 4.2.1.11: Hadoop servisleri başlatma ekranı.

36) # hdfs dfs -mkdir /data

36.adımda HDFS altında “/data” klasörü oluşturulur.

37) # hdfs dfs -copyFromLocal /home/hduser/down/20g /data

37. adımda hduser altında oluşturulan “/down” klasörü içerisinde analiz için hazırlanan

veriler HDFS altında “/data” klasörüne kopyalanır.

38) # hadoop jar /home/hduser/down/mr-1.0.jar hadoop.mr.AggregateJob

28

Page 37: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

39.adımda hazırlanan haritalama azaltma uygulaması ana sınıf parametresi ile

çalıştırılır.

Şekil 4.2.1.12: Eşleme azaltma uygulaması çalıştırılma ekranı.

“/data” klasörü altında ne kadar verinin olduğunu aşağıdaki kod ile görülebilir.

# hadoop fs -du -s /data | awk '{s+=$1} END {printf "%.3fG\n", s/1000000000}'

Şekil 4.2.1.13: “/data” klasörü içindeki veri miktarı görünümü.

Tarayıcı ekranına http://localhost:50070 adresi yazıldığında hadoop sistemi hakkında

bilgilere erişilebilir. Şekil 6.2.14 te web sayfası üzerinden bilgilere erişim

görülmektedir.

29

Page 38: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 4.2.1.14: Hadoop sisteminin tarayıcı ekranından görünümü.

Aynı ekrandan sırasıyla, “Utilities -> Browse the file system” bağlantısı tıklandıktan

sonra aşağıda çıkacak alandan “result->totalImpressionResult” bağlantıları tıklanarak

işlenmiş veri dosyası açılabilir.

30

Page 39: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

Şekil 4.2.1.15: İşlenmiş verilerin görünümü

Şekil 6.2.16’da gösterildiği gibi açılan metin dosyasında “VT” ile başlayan anahtar

değerlerin toplam adetleri görülebilir.

Şekil 4.2.1.16: Derlenen verilerin sonuç çıktısı.

Derleme işlemi tekrar çalıştırmak için aşağıdaki kodlarla sonuç(result) ve geçici(tmp)

klasörlerinin silinmesi gerekmektedir.

# hdfs dfs -rmr /result

# hdfs dfs -rmr /tmp

31

Page 40: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

5. SONUÇ

Bir web sitesinin 3gb büyüklüğündeki kullanıcı oturum bilgilerinin analizi, Hadoop

sahte dağıtık kurulum tipi kullanılarak tek bir bilgisayar üzerinde yaklaşık bir dakika

içerisinde gerçekleşmiştir. Böylece tekil kullanıcı sayısına makul zaman ve maliyet ile

ulaşılmıştır. (Şekil 6.2.16). Büyük verilerle analiz işlemi yapılırken ilişkisel veri tabanı

yönetimleri kullanılması durumunda (Ör: Microsoft SQL) ücret ve zaman açısından çok

büyük maliyetler ortaya çıkmaktadır.

Yapılan bu çalışmada, standart donanıma sahip bilgisayar ile büyük veri analizinin kısa

zamanda ve uygun maliyet ile yapılabileceği görülmektedir. Hadoop, dağıtık ağ yapısını

desteklediği için ağ trafiğinde ve sunucularda oluşabilecek yoğunlukları da ortadan

kaldırabilmektedir. HDFS dosya yapısının yedekli bir mimariye sahip olmasından

dolayı veri kaybı gibi ihtimalinin çok düşük olduğu, kendine özgü isim düğümü – veri

düğümü adresleme yapısı ile eşleme azaltma metoduna makul zamanda yanıt vererek

hızlı sonuç elde ettiği saptanmıştır. Eşleme ve azaltma işleminin uygulandığı platform,

java tabanlı olduğundan anlaşılabilir, esnek ve geliştirmeye çok açıktır. Ancak

işlemlerin karmaşıklığına göre ileri seviye java programlama bilgisi gerektirebilir.

Tüm bunlara ek olarak Hadoop uygulamasının kurulum ve yapılandırma işlemlerinin

adımları fazla olsa da bu işlemlerin kolaylıkla yapılabildiği gözlemlenmiştir.

32

Page 41: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

6. Kaynakça

[1] internet live stats. Erişim tarihi: 8 Nisan 2016.internetlivestats.com

[2] Craig Shmith (2016, 5 Mart). Twitter statistic reports. Erişim tarihi: 18 Nisan 2016.

http://expandedramblings.com/

[3] A.Buğra Ferah (20 Mayıs 2014). GittiGidiyor’dan ilk çeyrek raporu. Erişim tarihi:

18 Nisan 2015 http://webrazzi.com/2014/05/20/gittigidiyordan-ilk-ceyrek-raporu-2-

milyon-670-bin-urun-satisi/

[4] Erişim tarihi: 18 Nisan 2015. http://www.worldometers.info/tr/

[5] Apache hive. Erişim tarihi: 19 Nisan 2015.

https://en.wikipedia.org/wiki/Apache_Hive

[6] Hakan İlter (2016, 24 Mart). GittiGidiyor’da Big Data ve Hadoop Teknolojileri.

Erişim tarihi: 19 Nisan 2016

http://kurumsal.gittigidiyor.com/2014/03/24/gittigidiyorda-big-data-ve-hadoop-

teknolojileri/

[7] Powered by Apache Hadoop (2016,14 Nisan). Erişim tarihi: 19 Nisan 2015.

https://wiki.apache.org/hadoop/PoweredBy

[8] Erişim tarihi: 21 Nisan 2015. https://en.wikipedia.org/wiki/Apache_Hadoop

[9] Erkan Ülgey (2016, 18 Şubat). Hive veri tabanları arası tablo taşıma. Erişim tarihi:

21 Nisan 2015. http://devveri.com/kategori/hadoop

[10] Warren Pettit (2016, 5 Mart). Hadoop 10.1 Erişim tarihi: 22 Nisan 2015.

http://bigdatauniversity.com/courses/hadoop-course/

[11] Erişim tarihi: 22 Nisan 2015. sadievrenseker.com

[12] Erişim tarihi: 23 Nisan 2015. http://hadoop.apache.org/

[13] Erişim tarihi: 23 Nisan 2015. http://stackoverflow.com/questions/tagged/hadoop

[14] Erişim tarihi: 23 Nisan 2015. Cloudera.com

[15] Brıan Proffıtt (2013, 23 Mayıs). What it Is and how it works. Erişim tarihi: 23

Nisan 2015. http://readwrite.com/2013/05/23/hadoop-what-it-is-and-how-it-works/

[16] Sagin Bappalige (2014, 26 Ağustos). An introduction to Apache Hadoop. Erişim

tarihi: 25 Nisan 2015. https://opensource.com/life/14/8/intro-apache-hadoop-big-data

[17] Manuel Sevilla (2012, 6 Ocak). What is hadoop? Erişim tarihi: 25 Nisan 2015.

https://www.capgemini.com/blog/capping-it-off/2012/01/what-is-hadoop

33

Page 42: dijitalturk.comdijitalturk.com/.../uploads/2016/12/Hadoop-17_08_2016-1.docx · Web view2014 yılında çıkan bir habere göre Türkiye’de 56,4 milyon adet kredi kartı basılmıştır

34