SlideShare uma empresa Scribd logo
1 de 68
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. gibi değişik
kaynaklardan toparlanan yapısal olmayan veri yığınıdır.
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.
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.
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.
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
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ış 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
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
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
 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.
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.
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ı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.
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, 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.
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.
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.
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.
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.
Çö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.
Secondary Namenode
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.
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.
DataNode
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.
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
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
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
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
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.
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ından mapreduce işleri job tracker’a gönderilir.
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.
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.
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 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
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)
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.
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)
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
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
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>
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>
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>
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,
Jobtracker,
Tasktracker süreçlerini başlatır.
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
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
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 en çok
retweet yapılan kullanıcı nasıl belirlenir?
a) SQL sorgusu
b) Hadoop
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,
Twitter-Hadoop Veri Aktarımı
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.
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.
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';
Hive –SerDe (Serialize-Deserialize)
Hive –SerDe arayüzü ile twitter json tipindeki çıktı
sorgulanabilir yeni bir tablo oluşturulur.
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;
Sonuç
TEŞEKKÜRLER

Cenk DERİNÖZLÜ
cenkder@gmail.com

Mais conteúdo relacionado

Mais procurados

Hadoop Architecture and HDFS
Hadoop Architecture and HDFSHadoop Architecture and HDFS
Hadoop Architecture and HDFSEdureka!
 
Big data 24 mart 2015
Big data 24 mart 2015Big data 24 mart 2015
Big data 24 mart 2015Bilge Narin
 
Practical introduction to hadoop
Practical introduction to hadoopPractical introduction to hadoop
Practical introduction to hadoopinside-BigData.com
 
Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)Kevin Weil
 
Design of Hadoop Distributed File System
Design of Hadoop Distributed File SystemDesign of Hadoop Distributed File System
Design of Hadoop Distributed File SystemDr. C.V. Suresh Babu
 
Hadoop Tutorial For Beginners | Apache Hadoop Tutorial For Beginners | Hadoop...
Hadoop Tutorial For Beginners | Apache Hadoop Tutorial For Beginners | Hadoop...Hadoop Tutorial For Beginners | Apache Hadoop Tutorial For Beginners | Hadoop...
Hadoop Tutorial For Beginners | Apache Hadoop Tutorial For Beginners | Hadoop...Simplilearn
 
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabApache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoopjoelcrabb
 
Introduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingIntroduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingCloudera, Inc.
 

Mais procurados (20)

Hadoop ppt2
Hadoop ppt2Hadoop ppt2
Hadoop ppt2
 
Map reduce vs spark
Map reduce vs sparkMap reduce vs spark
Map reduce vs spark
 
Introduction à Hadoop
Introduction à HadoopIntroduction à Hadoop
Introduction à Hadoop
 
Big Data Sunum
Big Data SunumBig Data Sunum
Big Data Sunum
 
Hadoop 1 vs hadoop2
Hadoop 1 vs hadoop2Hadoop 1 vs hadoop2
Hadoop 1 vs hadoop2
 
Hadoop Architecture and HDFS
Hadoop Architecture and HDFSHadoop Architecture and HDFS
Hadoop Architecture and HDFS
 
Big data 24 mart 2015
Big data 24 mart 2015Big data 24 mart 2015
Big data 24 mart 2015
 
It's Time to ROCm!
It's Time to ROCm!It's Time to ROCm!
It's Time to ROCm!
 
Practical introduction to hadoop
Practical introduction to hadoopPractical introduction to hadoop
Practical introduction to hadoop
 
Hadoop Internals
Hadoop InternalsHadoop Internals
Hadoop Internals
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)
 
Design of Hadoop Distributed File System
Design of Hadoop Distributed File SystemDesign of Hadoop Distributed File System
Design of Hadoop Distributed File System
 
Spark
SparkSpark
Spark
 
Hadoop technology
Hadoop technologyHadoop technology
Hadoop technology
 
Mapreduce Tutorial
Mapreduce TutorialMapreduce Tutorial
Mapreduce Tutorial
 
Hadoop Tutorial For Beginners | Apache Hadoop Tutorial For Beginners | Hadoop...
Hadoop Tutorial For Beginners | Apache Hadoop Tutorial For Beginners | Hadoop...Hadoop Tutorial For Beginners | Apache Hadoop Tutorial For Beginners | Hadoop...
Hadoop Tutorial For Beginners | Apache Hadoop Tutorial For Beginners | Hadoop...
 
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabApache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
Introduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingIntroduction to Apache Spark Developer Training
Introduction to Apache Spark Developer Training
 

Semelhante a Büyük Veri İşlemleri ve Hadoop

Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.comHakan Ilter
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data AnalyticsMudur Alkan
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkHakan Sarıbıyık
 
TBD Bilişim 2014 Veri Analitiği
TBD Bilişim 2014 Veri AnalitiğiTBD Bilişim 2014 Veri Analitiği
TBD Bilişim 2014 Veri Analitiğiisa ölmez
 
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...Cenk Derinozlu
 
Windows server 2012 v getirdiği yenilikler
Windows server 2012 v getirdiği yeniliklerWindows server 2012 v getirdiği yenilikler
Windows server 2012 v getirdiği yeniliklerTC Hikmet Koşmaz
 
SAP Forum 2009: SAP Türkiye ile TDMS Sunumu
SAP Forum 2009: SAP Türkiye ile TDMS SunumuSAP Forum 2009: SAP Türkiye ile TDMS Sunumu
SAP Forum 2009: SAP Türkiye ile TDMS SunumuFIT Consulting
 
Hadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
Hadoop,Pig,Hive ve Oozie ile Büyük Veri AnaliziHadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
Hadoop,Pig,Hive ve Oozie ile Büyük Veri AnaliziSerkan Sakınmaz
 
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİİŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİAbdullah Cihan
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data PresentationSerkan Özal
 
Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologiesBilal Dursun
 
Performanslı site tasarımı ve Site performans ölçüm araçları
Performanslı site tasarımı ve Site performans ölçüm araçlarıPerformanslı site tasarımı ve Site performans ölçüm araçları
Performanslı site tasarımı ve Site performans ölçüm araçlarıbarisaydiner
 
İleri Seviye T-SQL Programlama - Chapter 01
İleri Seviye T-SQL Programlama - Chapter 01İleri Seviye T-SQL Programlama - Chapter 01
İleri Seviye T-SQL Programlama - Chapter 01Cihan Özhan
 
Veri̇ tabani ve dosya yöneti̇mi̇
Veri̇ tabani ve dosya yöneti̇mi̇Veri̇ tabani ve dosya yöneti̇mi̇
Veri̇ tabani ve dosya yöneti̇mi̇oktaygokgol
 
Developer Tools
Developer ToolsDeveloper Tools
Developer ToolsBurak Erol
 

Semelhante a Büyük Veri İşlemleri ve Hadoop (20)

Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.com
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan Sarıbıyık
 
1 hafta_dersi
1  hafta_dersi1  hafta_dersi
1 hafta_dersi
 
TBD Bilişim 2014 Veri Analitiği
TBD Bilişim 2014 Veri AnalitiğiTBD Bilişim 2014 Veri Analitiği
TBD Bilişim 2014 Veri Analitiği
 
Hadoop nedir
Hadoop nedirHadoop nedir
Hadoop nedir
 
MongoDB Overview
MongoDB OverviewMongoDB Overview
MongoDB Overview
 
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İ...
 
Windows server 2012 v getirdiği yenilikler
Windows server 2012 v getirdiği yeniliklerWindows server 2012 v getirdiği yenilikler
Windows server 2012 v getirdiği yenilikler
 
SAP Forum 2009: SAP Türkiye ile TDMS Sunumu
SAP Forum 2009: SAP Türkiye ile TDMS SunumuSAP Forum 2009: SAP Türkiye ile TDMS Sunumu
SAP Forum 2009: SAP Türkiye ile TDMS Sunumu
 
12factor apps
12factor apps12factor apps
12factor apps
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Hadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
Hadoop,Pig,Hive ve Oozie ile Büyük Veri AnaliziHadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
Hadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
 
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİİŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
 
Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologies
 
Performanslı site tasarımı ve Site performans ölçüm araçları
Performanslı site tasarımı ve Site performans ölçüm araçlarıPerformanslı site tasarımı ve Site performans ölçüm araçları
Performanslı site tasarımı ve Site performans ölçüm araçları
 
İleri Seviye T-SQL Programlama - Chapter 01
İleri Seviye T-SQL Programlama - Chapter 01İleri Seviye T-SQL Programlama - Chapter 01
İleri Seviye T-SQL Programlama - Chapter 01
 
Veri̇ tabani ve dosya yöneti̇mi̇
Veri̇ tabani ve dosya yöneti̇mi̇Veri̇ tabani ve dosya yöneti̇mi̇
Veri̇ tabani ve dosya yöneti̇mi̇
 
Developer Tools
Developer ToolsDeveloper Tools
Developer Tools
 

Büyük Veri İşlemleri ve Hadoop

  • 2. Gündem  Big Data Kavramı  Hadoop Nedir?  Neden Hadoop?  Hadoop Bileşenleri  Hadoop Kurulumu  Hadoop Örnek Uygulama
  • 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. 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. 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. 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. 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. Veri Tipleri? Günümüzde Veri Dağılımı 10% Yapılandırılmış Veri Yapılandırılmamış Veri 90%
  • 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. 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. 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.  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. 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.
  • 15.
  • 16.
  • 17. Hadoop öğrenmek için bir neden daha! Hadoop bilen personel ihtiyacı artmaktadır.
  • 18. Hadoop Bileşenler  Hadoop HDFS ve Map-Reduce olmak üzere iki temel kısımdan oluşmaktadır.
  • 19. 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.
  • 20. HDFS Süreçler  HDFS, NameNode ve DataNode süreçlerinden (process) oluşmaktadır.
  • 21. 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.
  • 22. 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.
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 26. Çö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.
  • 28. 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.
  • 29. 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.
  • 31. 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.
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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.
  • 37. Map Reduce Süreçler :  MapReduce, JobTracker ve TaskTracker süreçlerinden oluşur.
  • 38. 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.
  • 39. 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.
  • 40. 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.
  • 42. Hadoop Kurulum :  Ubuntu Linux 10.04 LTS üzerine  Apache Hadoop 1.04 versiyonu kurulum adımları anlatılmıştır.
  • 43. 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
  • 44. 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)
  • 45. 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.
  • 46. 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)
  • 47. 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
  • 48. 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
  • 49. 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>
  • 50. 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>
  • 51. 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>
  • 52. Hadoop NameNode Format: Hadoop NameNode’un formatlanması için yazılacak komut:  -$ bin/hadoop namenode -format
  • 53. 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.
  • 54. 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
  • 55. 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
  • 59. Ö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
  • 60. 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,
  • 62. 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.
  • 63. 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.
  • 64. 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';
  • 65. Hive –SerDe (Serialize-Deserialize) Hive –SerDe arayüzü ile twitter json tipindeki çıktı sorgulanabilir yeni bir tablo oluşturulur.
  • 66. 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;