SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Big Data Concepts &
Map-Reduce & Hadoop
Ankara JUG - Aralık 2014
Serkan ÖZAL
serkan@hazelcast.com
1
Serkan ÖZAL
Lisans : 2005 - 2009, @ Hacettepe Bil. Müh.
Master : 2010 - 2013, @ ODTÜ Bil. Müh.
Doktora : 2013 - ..., @ ODTÜ Bil. Müh.
Technical Author @ Rebellabs
Open-Source Contributor @ Oracle
Coder @ Hazelcast
github.com/serkan-ozal
2
Outline
● Big Data
● Scalability
● NoSQL
● Batch Data Processing
● Stream Data Processing
● Map-Reduce
● Hadoop
● HDFS
● AWS
● Demo 3
What is Big Data ???
En temel ve basit anlamıyla
uğraşması zor veri demektir.
● Big Data’nın Özellikleri
o Volume (Hacmi)
o Velocity (Hızı)
o Variety (Çeşitliliği)
o Veracity (Belirsizliği)
4
Scalability
● Çalışan bir sistemin işlem kapasitesinin
gereksinimlere göre büyütülebilip
küçültülebilmesidir.
● Scalability:
o Vertical Scalability: Daha fazla/az CPU, RAM, ...
o Horizontal Scalability: Daha fazla/az makina
● Auto Scalable
5
Big Data Concepts
● NoSQL
● Batch Data Processing
● Stream Data Processing
● Data Flow
● Cloud Computing
6
NoSQL
● Not Only SQL
● İlişkisel olmayan verileri tutmak için
tasarlanmıştır.
● Verinin belirli bir formatta olması gerekmez.
● Scalable ve fail-safe sistemlerdir.
● Genelde “UNION”, “JOIN” gibi ilişkisel
sorguları desteklemezler.
7
NoSQL Databases
● Column Stores:
o HBase
● Key-Value Stores:
o Hazelcast, Infinispan, Redis, Terracotta, Coherence
o Cassandra
o Amazon DynamoDB
● Document Stores:
o MongoDB
o CouchDB
● Graph Databases:
o Neo4J
8
Batch Data Processing
● İşlenecek büyük miktarda veri vardır (TB’larca yada
PB’larca)
● İşlenecek veri offline’dır yani işlenecek veri miktarı
baştan bilinir ve işlem süresince değişmez.
● Tek bir makinada işlenmesi günler, haftalar sürebilir (bu
işlem süresince makinanın herhangi bir sebeple
göçmediğini varsayıyoruz) Bu sebeple veri distributed
olarak işlenmelidir.
9
Batch Data Processing Frameworks
● Hadoop
● Hive
● Pig
● Presto
● Impala
● Spark
● Mahout
10
Stream Data Processing
● Batch data processing’in tersine veri sabit değildir
● Verinin miktarı önceden bilinmez
● Veri real-time yada near real-time olarak işlenmelidir
● Sistemin yükü önceden kestirilemeyebilir ve zaman
içinde değişiklik gösterebilir
11
Stream Data Procesing Frameworks
● Storm
● AWS Kinesis
● Akka
● SummingBird
● Kafka
● Samza
12
Data Flow Frameworks
● Cascading
● Oozie
● AWS Data Pipeline
13
Map-Reduce
● 2004 yılında Google tarafından yayınlanan bir makale
ile ortaya atılmış bir yazılım mimarisi pattern’idir.
● Yapılacak işin daha küçük alt işlere bölünüp tüm
cluster’da paralel şekilde yapılması esasına dayanır
● Cluster’daki her node diğer node’lardan bağımsız bir
şekilde kendisine atanan veri seti üstünde kendisine
atanan işi yapar.
● Temelde 2 fazdan oluşur
o Map
o Reduce 14
Map
● Master node büyük veri setini daha küçük bloklar halinde mapper node’lara
atar.
● Mapper node’lar kendilerine atanan veri seti üstünde çözümlerini yapıp
sonuçlarını master node’a gönderirler.
function map(String name, String document):
// name: document name
// document: document contents
for each word w in document:
emit (w, 1) // emit(key, value)
15
Reduce
● Map aşamasından sonra master node mapper node’lardan aldığı alt
problemlerin sonuçlarını key’lere göre gruplandırır.
● Key’lere göre gruplandırılmış sonuçları farklı reducer node’lara gönderir.
● Her reducer node aynı key’e ait alt sonuçları kullanarak o key’e ait genel
sonucu üretir.
function reduce(String word, Iterator partialCounts):
// word: a word
// partialCounts: a list of aggregated partial counts
sum = 0
for each pc in partialCounts:
sum += ParseInt(pc)
emit (word, sum)
16
Map-Reduce for Babies
17
Map-Reduce for Academicians
18
Hadoop
● Distributed ve Fail-Safe veri depolama ve işleme için
kullanılır
● Open-Source under Apache License
● Temelde 2 bileşenden oluşur.
o HDFS: Distributed ve reliable file system bileşenidir. Data
replicate biçimde farklı node’larda tutulur ve gerektiğinde
bozulan replike datalar otomatik olarak onarılır.
o MapReduce: Distributed ve fault-tolerant veri işleme bileşenidir.
Tanımlanan “Mapper” ve “Reducer” task’ların distributed olarak
işletilmesini ve monitor edilmesini yönetir.
19
Hadoop 1 - Architecture
20
Hadoop 1 vs Hadoop 2 YARN
21
Hadoop 2 (YARN) - Architecture
22
HDFS
● HDFS, Google File System’den esinlenilerek
tasarlanmış distributed ve fault-tolerant bir
file system’dir.
● Veri bloklara ayrılarak replike’ler halinde
cluster üstünde distributed olarak tutulur.
● Temelde 2 tip node vardır:
o Name Node: File system’in metadata’sını tutar
o Data Node: Verinin kendisini tutar
23
HDFS Architecture
24
AWS
● AWS, Amazon’un sunduğu scalable, reliable, distributed cloud
computing servisleridir.
o Storage
o Computing
o Big Data (Map-Reduce, Streaming, Data Pipe Line, ...)
o Network
o ...
● Big Data için temel AWS bileşenleri:
o AWS S3
o AWS EC2
o AWS EMR
25
AWS - S3
● Amazon’un Distributed File System servisidir.
● 1 byte’dan 5 terabyte’a kadar veri tutan object yazılıp
okunabilir.
● Object’ler bucket’lar içinde tutulur.
● Tutulan veriler için 99.999999999% dayanıklılık ve
99.99% devamlılık için tasarlanmıştır.
● Veriler şifrelenerek tutulabilir ve veri upload/download
işlemleri de güvenli bağlantı üstünden yapılabilir.
26
AWS EC2
● Amazon’un scalable CAAS (computing as a service)
servisidir.
● Esnek: Kapasite kolay bir şekilde arttırılıp azaltılabilir.
● Biçimlendirilebilir: Birçok instance tipi (CPU, Memory,
Storage), işletim sistemi ve yazılım paketi destekliyor
● Güvenilir: Her Amazon EC2 Region’da 99.95%
oranında kullanılabilirlik
● Düşük Maliyet: Reserved Instance ve Spot Instance
27
AWS - EMR
28
Demo
● Hadoop üstünde çalışan 2 Map-Reduce demosu gösterilecektir:
o Number Frequency
o Log Data Processing
● Yazılan Hadoop uygulamaları build edilip “jar” şeklinde paketlenir.
● Daha sonra bu paketlenen uygulama AWS S3 üstüne upload edilir.
● AWS S3’e upload edilen uygulama burada AWS EMR servisi ile
çalıştırılır.
● AWS EMR servisi üstünde çalışan Hadoop uygulaması kendisine
AWS S3 üstünde belirtilen dizindeki veriler üstünde işlem yapar.
● Sonuçları yine kendisine belirtilen AWS S3 üstündeki dizine yazar.
29
Demo 1 - Number Frequency
● 128’er MB’lık 9 dosyadan oluşan bir dizindeki tüm dosyalarda geçen
sayıların ve bu sayıların kaç defa geçtiğini bulan bir Map-Reduce
uygulamasıdır.
● Soru açıklaması: https://github.com/serkan-ozal/ankarajug-bigdata-
demo/blob/master/README.md#demo-1
● Map-Reduce uygulaması kodları: https://github.com/serkan-
ozal/ankarajug-bigdata-
demo/tree/master/src/main/java/tr/com/jug/ankara/bigdata/demo/mapreduc
e/numberfreq
30
Demo 2 - Log Data Processing
● 128’er MB’lık 9 dosyadan oluşan bir dizindeki tüm dosyalarda geçen log
kayıtlarını ünceleyip belirtilen başlangıç ve bitiş tarihleri arasındaki log
kayıt sayısını bulan bir Map-Reduce uygulamasıdır.
● Soru açıklaması: https://github.com/serkan-ozal/ankarajug-bigdata-
demo/blob/master/README.md#demo-2
● Map-Reduce uygulaması kodları: https://github.com/serkan-
ozal/ankarajug-bigdata-
demo/tree/master/src/main/java/tr/com/jug/ankara/bigdata/demo/mapreduc
e/logdata
31
Teşekkürler
32

Mais conteúdo relacionado

Semelhante a Ankara JUG Big Data Presentation

Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı GözleyelimOguz Yarimtepe
 
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 tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosqlOrçun Çolak
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziHakan Ilter
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesCihan Özhan
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL OverviewCihan Özhan
 
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStack
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStackOpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStack
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStackHuseyin Cotuk
 
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP YönetimiCeph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP YönetimiHuseyin Cotuk
 
Microsoft Azure Sql Server HADR
Microsoft Azure Sql Server HADRMicrosoft Azure Sql Server HADR
Microsoft Azure Sql Server HADRÖnder Değer
 
Azure Cloud Engineer - Bölüm 2
Azure Cloud Engineer - Bölüm 2Azure Cloud Engineer - Bölüm 2
Azure Cloud Engineer - Bölüm 2Önder Değer
 
Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologiesBilal Dursun
 
Istanbul Datascience Academy Talks
Istanbul Datascience Academy TalksIstanbul Datascience Academy Talks
Istanbul Datascience Academy TalksMetin Uslu
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 

Semelhante a Ankara JUG Big Data Presentation (20)

Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
 
Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.com
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosql
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri Analizi
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
 
Sukru_TRSUG2016
Sukru_TRSUG2016Sukru_TRSUG2016
Sukru_TRSUG2016
 
No SQL & MongoDB Nedir?
No SQL & MongoDB Nedir?No SQL & MongoDB Nedir?
No SQL & MongoDB Nedir?
 
MongoDB Overview
MongoDB OverviewMongoDB Overview
MongoDB Overview
 
12factor apps
12factor apps12factor apps
12factor apps
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
 
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStack
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStackOpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStack
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStack
 
MongoDB ve C# Driver'ı
MongoDB ve C# Driver'ıMongoDB ve C# Driver'ı
MongoDB ve C# Driver'ı
 
Nosql ve mongoDB
Nosql ve mongoDBNosql ve mongoDB
Nosql ve mongoDB
 
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP YönetimiCeph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
 
Microsoft Azure Sql Server HADR
Microsoft Azure Sql Server HADRMicrosoft Azure Sql Server HADR
Microsoft Azure Sql Server HADR
 
Azure Cloud Engineer - Bölüm 2
Azure Cloud Engineer - Bölüm 2Azure Cloud Engineer - Bölüm 2
Azure Cloud Engineer - Bölüm 2
 
Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologies
 
Istanbul Datascience Academy Talks
Istanbul Datascience Academy TalksIstanbul Datascience Academy Talks
Istanbul Datascience Academy Talks
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 

Ankara JUG Big Data Presentation

  • 1. Big Data Concepts & Map-Reduce & Hadoop Ankara JUG - Aralık 2014 Serkan ÖZAL serkan@hazelcast.com 1
  • 2. Serkan ÖZAL Lisans : 2005 - 2009, @ Hacettepe Bil. Müh. Master : 2010 - 2013, @ ODTÜ Bil. Müh. Doktora : 2013 - ..., @ ODTÜ Bil. Müh. Technical Author @ Rebellabs Open-Source Contributor @ Oracle Coder @ Hazelcast github.com/serkan-ozal 2
  • 3. Outline ● Big Data ● Scalability ● NoSQL ● Batch Data Processing ● Stream Data Processing ● Map-Reduce ● Hadoop ● HDFS ● AWS ● Demo 3
  • 4. What is Big Data ??? En temel ve basit anlamıyla uğraşması zor veri demektir. ● Big Data’nın Özellikleri o Volume (Hacmi) o Velocity (Hızı) o Variety (Çeşitliliği) o Veracity (Belirsizliği) 4
  • 5. Scalability ● Çalışan bir sistemin işlem kapasitesinin gereksinimlere göre büyütülebilip küçültülebilmesidir. ● Scalability: o Vertical Scalability: Daha fazla/az CPU, RAM, ... o Horizontal Scalability: Daha fazla/az makina ● Auto Scalable 5
  • 6. Big Data Concepts ● NoSQL ● Batch Data Processing ● Stream Data Processing ● Data Flow ● Cloud Computing 6
  • 7. NoSQL ● Not Only SQL ● İlişkisel olmayan verileri tutmak için tasarlanmıştır. ● Verinin belirli bir formatta olması gerekmez. ● Scalable ve fail-safe sistemlerdir. ● Genelde “UNION”, “JOIN” gibi ilişkisel sorguları desteklemezler. 7
  • 8. NoSQL Databases ● Column Stores: o HBase ● Key-Value Stores: o Hazelcast, Infinispan, Redis, Terracotta, Coherence o Cassandra o Amazon DynamoDB ● Document Stores: o MongoDB o CouchDB ● Graph Databases: o Neo4J 8
  • 9. Batch Data Processing ● İşlenecek büyük miktarda veri vardır (TB’larca yada PB’larca) ● İşlenecek veri offline’dır yani işlenecek veri miktarı baştan bilinir ve işlem süresince değişmez. ● Tek bir makinada işlenmesi günler, haftalar sürebilir (bu işlem süresince makinanın herhangi bir sebeple göçmediğini varsayıyoruz) Bu sebeple veri distributed olarak işlenmelidir. 9
  • 10. Batch Data Processing Frameworks ● Hadoop ● Hive ● Pig ● Presto ● Impala ● Spark ● Mahout 10
  • 11. Stream Data Processing ● Batch data processing’in tersine veri sabit değildir ● Verinin miktarı önceden bilinmez ● Veri real-time yada near real-time olarak işlenmelidir ● Sistemin yükü önceden kestirilemeyebilir ve zaman içinde değişiklik gösterebilir 11
  • 12. Stream Data Procesing Frameworks ● Storm ● AWS Kinesis ● Akka ● SummingBird ● Kafka ● Samza 12
  • 13. Data Flow Frameworks ● Cascading ● Oozie ● AWS Data Pipeline 13
  • 14. Map-Reduce ● 2004 yılında Google tarafından yayınlanan bir makale ile ortaya atılmış bir yazılım mimarisi pattern’idir. ● Yapılacak işin daha küçük alt işlere bölünüp tüm cluster’da paralel şekilde yapılması esasına dayanır ● Cluster’daki her node diğer node’lardan bağımsız bir şekilde kendisine atanan veri seti üstünde kendisine atanan işi yapar. ● Temelde 2 fazdan oluşur o Map o Reduce 14
  • 15. Map ● Master node büyük veri setini daha küçük bloklar halinde mapper node’lara atar. ● Mapper node’lar kendilerine atanan veri seti üstünde çözümlerini yapıp sonuçlarını master node’a gönderirler. function map(String name, String document): // name: document name // document: document contents for each word w in document: emit (w, 1) // emit(key, value) 15
  • 16. Reduce ● Map aşamasından sonra master node mapper node’lardan aldığı alt problemlerin sonuçlarını key’lere göre gruplandırır. ● Key’lere göre gruplandırılmış sonuçları farklı reducer node’lara gönderir. ● Her reducer node aynı key’e ait alt sonuçları kullanarak o key’e ait genel sonucu üretir. function reduce(String word, Iterator partialCounts): // word: a word // partialCounts: a list of aggregated partial counts sum = 0 for each pc in partialCounts: sum += ParseInt(pc) emit (word, sum) 16
  • 19. Hadoop ● Distributed ve Fail-Safe veri depolama ve işleme için kullanılır ● Open-Source under Apache License ● Temelde 2 bileşenden oluşur. o HDFS: Distributed ve reliable file system bileşenidir. Data replicate biçimde farklı node’larda tutulur ve gerektiğinde bozulan replike datalar otomatik olarak onarılır. o MapReduce: Distributed ve fault-tolerant veri işleme bileşenidir. Tanımlanan “Mapper” ve “Reducer” task’ların distributed olarak işletilmesini ve monitor edilmesini yönetir. 19
  • 20. Hadoop 1 - Architecture 20
  • 21. Hadoop 1 vs Hadoop 2 YARN 21
  • 22. Hadoop 2 (YARN) - Architecture 22
  • 23. HDFS ● HDFS, Google File System’den esinlenilerek tasarlanmış distributed ve fault-tolerant bir file system’dir. ● Veri bloklara ayrılarak replike’ler halinde cluster üstünde distributed olarak tutulur. ● Temelde 2 tip node vardır: o Name Node: File system’in metadata’sını tutar o Data Node: Verinin kendisini tutar 23
  • 25. AWS ● AWS, Amazon’un sunduğu scalable, reliable, distributed cloud computing servisleridir. o Storage o Computing o Big Data (Map-Reduce, Streaming, Data Pipe Line, ...) o Network o ... ● Big Data için temel AWS bileşenleri: o AWS S3 o AWS EC2 o AWS EMR 25
  • 26. AWS - S3 ● Amazon’un Distributed File System servisidir. ● 1 byte’dan 5 terabyte’a kadar veri tutan object yazılıp okunabilir. ● Object’ler bucket’lar içinde tutulur. ● Tutulan veriler için 99.999999999% dayanıklılık ve 99.99% devamlılık için tasarlanmıştır. ● Veriler şifrelenerek tutulabilir ve veri upload/download işlemleri de güvenli bağlantı üstünden yapılabilir. 26
  • 27. AWS EC2 ● Amazon’un scalable CAAS (computing as a service) servisidir. ● Esnek: Kapasite kolay bir şekilde arttırılıp azaltılabilir. ● Biçimlendirilebilir: Birçok instance tipi (CPU, Memory, Storage), işletim sistemi ve yazılım paketi destekliyor ● Güvenilir: Her Amazon EC2 Region’da 99.95% oranında kullanılabilirlik ● Düşük Maliyet: Reserved Instance ve Spot Instance 27
  • 29. Demo ● Hadoop üstünde çalışan 2 Map-Reduce demosu gösterilecektir: o Number Frequency o Log Data Processing ● Yazılan Hadoop uygulamaları build edilip “jar” şeklinde paketlenir. ● Daha sonra bu paketlenen uygulama AWS S3 üstüne upload edilir. ● AWS S3’e upload edilen uygulama burada AWS EMR servisi ile çalıştırılır. ● AWS EMR servisi üstünde çalışan Hadoop uygulaması kendisine AWS S3 üstünde belirtilen dizindeki veriler üstünde işlem yapar. ● Sonuçları yine kendisine belirtilen AWS S3 üstündeki dizine yazar. 29
  • 30. Demo 1 - Number Frequency ● 128’er MB’lık 9 dosyadan oluşan bir dizindeki tüm dosyalarda geçen sayıların ve bu sayıların kaç defa geçtiğini bulan bir Map-Reduce uygulamasıdır. ● Soru açıklaması: https://github.com/serkan-ozal/ankarajug-bigdata- demo/blob/master/README.md#demo-1 ● Map-Reduce uygulaması kodları: https://github.com/serkan- ozal/ankarajug-bigdata- demo/tree/master/src/main/java/tr/com/jug/ankara/bigdata/demo/mapreduc e/numberfreq 30
  • 31. Demo 2 - Log Data Processing ● 128’er MB’lık 9 dosyadan oluşan bir dizindeki tüm dosyalarda geçen log kayıtlarını ünceleyip belirtilen başlangıç ve bitiş tarihleri arasındaki log kayıt sayısını bulan bir Map-Reduce uygulamasıdır. ● Soru açıklaması: https://github.com/serkan-ozal/ankarajug-bigdata- demo/blob/master/README.md#demo-2 ● Map-Reduce uygulaması kodları: https://github.com/serkan- ozal/ankarajug-bigdata- demo/tree/master/src/main/java/tr/com/jug/ankara/bigdata/demo/mapreduc e/logdata 31