際際滷

際際滷Share a Scribd company logo
Hadoop
   devveri.com




       Aral脹k 2012
               v1.3
Hakk脹mda


   Marmara ni. Elektronik
   Software Development Supervisor
    @ Gitti Gidiyor / eBay
   12+ y脹l yaz脹l脹m tecr端besi
   Java, C, C++, C#
   Big Data, Search, NoSQL

                                             Hakan 聴lter
                                                 hilter@ebay.com
                                               twitter: devvericom
                                      http://tr.linkedin.com/in/hakanilter/
G端ndem

   Big Data (Dev veri)
   Hadoop
   HDFS
   MapReduce
   Hadoop Kurulum
   K端me Yap脹s脹
   Hadoop Ekosistemi
Dev Veri
Dev Veri
Dev Veri Nedir
Teknoloji > Internet > Sosyal Medya > Mobil > ...

D端nya'daki verilerin %90'l脹k k脹sm脹 son iki y脹lda topland脹

Yap脹land脹r脹lm脹 (structured) ve Yap脹land脹r脹lmam脹
(unstructured) verilerden meydana gelir

 Yap脹land脹r脹lm脹 veriler: 端r端n, kategori, m端teri,
    fatura, 旦deme...
   Yap脹land脹r脹lmam脹 veriler: tweet, payla脹m, beeni
    (like), e-posta, video, t脹klama...

%10 Yap脹land脹r脹lm脹, %90 Yap脹land脹r脹lmam脹
Dev Verinin 3 Boyutu
B端y端kl端k (Volume)
   Facebook 70+PB, eBay 5+PB

H脹z (Velocity)
   Twitter'da herg端n 12TB twit at脹l脹yor

eitlilik (Variety)
   Metin, sens旦r verileri, ses, g旦r端nt端, log
     dosyalar脹
Dev Veri
Dev Veri'nin nemi
  Bu kadar veri tek ba脹na bir anlam ifade etmiyor

  nemli olan Dev Veri i巽erisinde saklanm脹 olan
   bilgiyi ortaya 巽脹kart脹p yapt脹脹m脹z ii daha iyi
   anlamak, belki de gelecei tahmin etmeye
   巽al脹mak

  Bu ger巽ekletirildiinde;
    Mutlu m端teriler
    Daha fazla kazan巽
    Doland脹r脹c脹l脹kta azalma
    Daha sal脹kl脹 insanlar
    ...
Geleneksel Sistemlerin Problemleri
  RDBMS
   G旦receli olarak k端巽端k boyutta veri, yap脹land脹r脹lmam脹
   verilere uygun deil

  Donan脹m limitleri
   Daha fazla CPU, daha fazla RAM, daha fazla Disk =
   Daha fazla Maliyet

  Yaz脹l脹msal karma脹kl脹k
   Senkronizasyon, bant genilii, eriilebilirlik, hata
   tolerans脹
Peki ya ger巽ek problem?
     Ger巽ek problem: Veriyi ilemciye
             ulat脹rabilmek!


       100GB boyutundaki bir veriyi

   tipik bir disk ile (~75 MB/sn) aktarmak

      yakla脹k 22 dakika!
Yeni bir yakla脹m

  l巽eklenebilir

  Tutarl脹

  Veri Garantili

  Eriilebilir
Kim 巽旦zd端?




   Google File System (2003)
   MapReduce (2004)
   Big Table (2006)
ve Hadoop!


 Veri ileme ama巽l脹 da脹t脹k uygulamalar
 yaz脹lmas脹n脹 salayan bir platform ve a巽脹k
 kaynakl脹 bir Apache projesidir.
G端ndem

   Big Data (Dev veri)
   Hadoop
   HDFS
   MapReduce
   Hadoop Kurulum
   K端me Yap脹s脹
   Hadoop Ekosistemi
Neden Hadoop
 Esnek
  Her t端rl端 veriyi saklay脹p analizini yapabilir

 l巽eklenebilir
  Binlerce d端端m bir araya getirilebilir

 Ekonomik
  A巽脹k kaynakl脹, "commodity" donan脹mda 巽al脹abilir
Nerede?
Nerede?
Gitti Gidiyor'da Hadoop



                                     聴lgili dier aramalar

                         Nokkia arat脹lm脹 ama Nokia olarak
                         d端zeltilmi




Nokia
kelimesiyle
daha ilgili
olduu i巽in Cep
telefonu
kategorisi daha
端stte yer al脹yor
Gitti Gidiyor'da Hadoop
                                            "Metallica" ile ilgili dier aramalar




                    Mobil uygulama ana sayfada
                    kiiselletirilmi 端r端n g旦sterimi


                                   Autocomplete verisi
Kimler kullan脹yor?
Hadoop

聴ki ana bileenden oluur
    Hadoop Distributed File System (HDFS)
    MapReduce
G端ndem

   Big Data (Dev veri)
   Hadoop
   HDFS
   MapReduce
   Hadoop Kurulum
   K端me Yap脹s脹
   Hadoop Ekosistemi
HDFS
Verinin saklanmas脹ndan sorumludur
   Da脹t脹k bir dosya sistemidir
   Veriyi 64MB ya da 128MB'l脹k bloklar halinde saklar
   Her blok k端me i巽erisinde farkl脹 d端端mlere da脹t脹l脹r
   Her bloun varsay脹lan 3 kopyas脹 tutulur
   Bu sayede verinin eriilebilirlii ve g端venilirlii
      salanm脹 olur
    Ayn脹 dosyaya ait bloklar farkl脹 d端端mlerde olabilir
HDFS
   Normal dosya sistemi 端zerinde 巽al脹脹r: ext3, ext4, xfs
   B端y端k miktarda veri i巽in yedekli depolama salar
   D端端k maliyetli sunucular 端zerinde 巽al脹maya uygundur
   K端巽端k 巽ok dosya yerine b端y端k daha az dosya tutulmal脹d脹r
   Ortalama bir dosya 100MB civar脹 olmal脹d脹r
   Rastlant脹sal eriim yoktur (write once)
   B端y端k ve duraks脹z (streaming) veri eriimine g旦re
    optimize edilmitir
HDFS
Bloklar脹n d端端mler 端zerine da脹l脹m 旦姻稼艶庄

   blok 1   blok 2                 blok 3   blok 4


   blok 3                          blok 2
                     Data Node 1                     Data Node 2



   blok 3   blok 4                 blok 4   blok 1


   blok 1                          blok 2
                     Data Node 3                     Data Node 4
HDFS Eriimi
HDFS 端zerindeki verilere konsol 端zerinden hadoop fs
komutu ile eriilebilir:
  hadoop fs -ls                     Dosyalar脹 listeler

  hadoop fs -mkdir <path>           Klas旦r oluturur

  hadoop fs -put <local> <target>   Lokalden HDFS'e dosya kopyalar

  hadoop fs -get <source> <local>   HDFS'den lokale dosya kopyalar

  hadoop fs -cat <filename>         Dosya i巽eriini konsola basar

  hadoop fs -rmr <filename>         Dosyay脹 siler
G端ndem

   Big Data (Dev veri)
   Hadoop
   HDFS
   MapReduce
   Hadoop Kurulum
   K端me Yap脹s脹
   Hadoop Ekosistemi
MapReduce
Veriyi ileme y旦ntemidir
   Fonksiyonel programlamadan esinlenilmitir
   Map ve Reduce birer fonksiyondur
   Map fonksiyonu ile veri i巽erisinden istenilen veriler
      anahtar-deer format脹nda se巽ilir
    Reduce fonksiyonu ile de se巽ilen bu veriler
      端zerinde ilem yap脹l脹r, sonu巽 yine anahtar-deer
      olarak iletilir
    Map ve Reduce aras脹nda Shuffle ve Sort aamalar脹
      vard脹r
MapReduce
Daha kolay anla脹labilir olmas脹 i巽in SQL'e benzetmek
gerekirse;


 WHERE ile yap脹lan filtreleme gibi Map aamas脹nda
   sadece ihtiyac脹m脹z olan veriler se巽ilir
 Reduce aamas脹nda ise SUM, COUNT, AVG gibi
   birletirme ilemleri yap脹l脹r
MapReduce
 Map aamas脹ndaki ilemler k端me 端zerinde paralel
   olarak 巽al脹脹r
 Bu sayede k端menin b端y端kl端端ne g旦re veriler h脹zl脹 bir
   ekilde ilenebilir hale gelmi olur
 Her i par巽ac脹脹 verinin belirli bir par巽as脹n脹 iler
 聴 par巽ac脹klar脹 m端mk端nse 端zerinde 巽al脹t脹脹
   d端端mdeki verileri iler. Buna Data Localization
   denir
MapReduce
MapReduce ile ak脹 旦姻稼艶庄
MapReduce
 Uygulama gelitirilirken sadece Map ve Reduce
   metodlar脹 yaz脹l脹r, geri kalan ileyi otomatik
   ger巽ekleir
 Hadoop tamamen Java ile gelitirildii i巽in
   MapReduce uygulamalar脹 Java ile yaz脹l脹r, jar olarak
   paketlenir
 Streaming 旦zellii sayesinde Python, C++, Php gibi
   farkl脹 dillerde de kullan脹labilir
Word Count
Map Metodu
public void map(LongWritable key, Text value, Context context)
    throws IOException, InterruptedException
{
    String line = value.toString().toLowerCase();
    StringTokenizer tokenizer = new StringTokenizer(line);
    while (tokenizer.hasMoreTokens()) {
         Text word = new Text(tokenizer.nextToken());
         context.write(word, new IntWritable(1));
    }
}
Word Count
Reduce Metodu
public void reduce(Text key, Iterable<IntWritable> values, Context context)
    throws IOException, InterruptedException
{
    int sum = 0;
    for (IntWritable value : values) {
         sum += value.get();
    }
    context.write(key, new IntWritable(sum));
}
Word Count
Tool s脹n脹f脹 metodlar脹
public int run(String[] args) throws Exception
{
    if (args.length != 2) {
        System.err.printf("Usage: %s [generic options] <input> <output>n", getClass().getSimpleName());
        ToolRunner.printGenericCommandUsage(System.err);
        return -1;
    }

    Job job = new Job();
    job.setJarByClass(WordCount.class);

    FileInputFormat.addInputPath(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));

    job.setMapperClass(WordCountMapper.class);
    job.setReducerClass(WordCountReducer.class);

    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);

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

public static void main(String[] args) throws Exception {
    int exitCode = ToolRunner.run(new WordCount(), args);
    System.exit(exitCode);
}
Word Count
MapReduce program脹n脹 巽al脹t脹rma
$ hadoop jar <jarfile> <classname> <args...>
$ hadoop jar devveri-mapreduce-0.0.1-SNAPSHOT.jar com.devveri.hadoop.mapreduce.WordCount test.txt devveri
12/07/09 23:44:41 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should
implement Tool for the same.
12/07/09 23:44:41 INFO input.FileInputFormat: Total input paths to process : 1
12/07/09 23:44:41 INFO mapred.JobClient: Running job: job_201204231254_5522
12/07/09 23:44:42 INFO mapred.JobClient: map 0% reduce 0%
12/07/09 23:44:56 INFO mapred.JobClient: map 100% reduce 0%
12/07/09 23:45:08 INFO mapred.JobClient: map 100% reduce 100%
12/07/09 23:45:13 INFO mapred.JobClient: Job complete: job_201204231254_5522
12/07/09 23:45:13 INFO mapred.JobClient: Counters: 29
12/07/09 23:45:13 INFO mapred.JobClient:   Job Counters
12/07/09 23:45:13 INFO mapred.JobClient:     Launched reduce tasks=1
12/07/09 23:45:13 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=11984
12/07/09 23:45:13 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0
12/07/09 23:45:13 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0
12/07/09 23:45:13 INFO mapred.JobClient:     Launched map tasks=1
12/07/09 23:45:13 INFO mapred.JobClient:     Data-local map tasks=1
12/07/09 23:45:13 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=10033
12/07/09 23:45:13 INFO mapred.JobClient:   File Output Format Counters
12/07/09 23:45:13 INFO mapred.JobClient:     Bytes Written=31
12/07/09 23:45:13 INFO mapred.JobClient:   FileSystemCounters
12/07/09 23:45:13 INFO mapred.JobClient:     FILE_BYTES_READ=61
...
G端ndem

   Big Data (Dev veri)
   Hadoop
   HDFS
   MapReduce
   Hadoop Kurulum
   K端me Yap脹s脹
   Hadoop Ekosistemi
Hadoop Kurulumu
  Apache s端r端m端 d脹脹nda Cloudera, Hortonworks gibi
    firmalar脹n da脹t脹mlar脹 da kullan脹labilir
  Farkl脹 s端r端mleri bulunuyor
       1.0.X - current stable version, 1.0 release
       1.1.X - current beta version, 1.1 release
       2.X.X - current alpha version
       0.23.X - simmilar to 2.X.X but missing NN HA.
       0.22.X - does not include security
       0.20.203.X - old legacy stable version
       0.20.X - old legacy version

  K端me olarak (full cluster) ya da tek sunucuya (pseudo-
    distributed) kurulabilir
  deb, rpm veya tarball olarak indirilip kurulabilir
rnek kurulum ad脹m 1
  JDK 1.6, openssh-server ve rsync sistemde olmal脹
    $ sudo apt-get install ssh
    $ sudo apt-get install rsync
rnek kurulum ad脹m 2
  Sunucular aras脹 ifresiz balant脹 gerekir
    $ ssh localhost
    The authenticity of host 'localhost (127.0.0.1)' can't be
    established.
    ECDSA key fingerprint is 00:ab:cd:ef:12:23:56:ab:ba:c4:89:
    11:d8:22:33:1b.
    Are you sure you want to continue connecting (yes/no)? yes


    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
rnek kurulum ad脹m 3
  Kurulumun yap脹laca脹 klas旦rler ayarlan脹r
    $ sudo mkdir /usr/java
    $ sudo chown -R devveri:devveri /usr/java
    $ mkdir /usr/java/hadoop-data
rnek kurulum ad脹m 4
  Apache sunucusundan son s端r端m indirilir
    $ cd /usr/java/
    $ wget "http://www.eu.apache.org/dist/hadoop/
    common/hadoop-1.0.4/hadoop-1.0.4.tar.gz"
    $ gzip -dc hadoop-1.0.4.tar.gz | tar xf -
    $ ln -s /usr/java/hadoop-1.0.4 /usr/java/hadoop
rnek kurulum ad脹m 5
  K端me ile ilgili genel ayarlar conf/core-site.xml
    dosyas脹nda bulunur
    <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>
rnek kurulum ad脹m 6
  HDFS ile ilgili ayarlar conf/hdfs-site.xml dosyas脹
    i巽erisinde bulunur

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
rnek kurulum ad脹m 7
  MapReduce ile ilgili ayarlar conf/mapred-site.xml
    dosyas脹 i巽erisinde bulunur

    <configuration>
        <property>
            <name>mapred.job.tracker</name>
            <value>localhost:9001</value>
        </property>
    </configuration>
rnek kurulum ad脹m 8
  Hadoop ile ilgili ortam deikenleri conf/hadoop-env.
    sh dosyas脹nda bulunur

    export JAVA_HOME=/usr/java/jdk
    export HADOOP_HEAPSIZE=512
    export HADOOP_HOME_WARN_SUPPRESS="TRUE"
rnek kurulum ad脹m 9
  .bash_profile ya da .bash_rc dosyalar脹nda $PATH
    deikeni ayarlanmal脹d脹r

    JAVA_HOME=/usr/java/jdk
    PATH=$PATH:$JAVA_HOME/bin


    HADOOP_HOME=/usr/java/hadoop
    PATH=$PATH:$HADOOP_HOME/bin
rnek kurulum ad脹m 10
  NameNode formatlanmal脹d脹r
   $ hadoop namenode -format
   12/09/05 00:07:06 INFO namenode.NameNode: STARTUP_MSG:
   /
   STARTUP_MSG: Starting NameNode
   STARTUP_MSG: host = devveri-HP-ProBook-6540b/127.0.1.1
   STARTUP_MSG: args = [-format]
   STARTUP_MSG: version = 1.0.3
   STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1335192; compiled by
   'hortonfo' on Tue May 8 20:31:25 UTC 2012
   /
   12/09/05 00:07:06 INFO util.GSet: VM type   = 32-bit
   12/09/05 00:07:06 INFO util.GSet: 2% max memory = 9.1025 MB
   12/09/05 00:07:06 INFO util.GSet: capacity = 2^21 = 2097152 entries
   12/09/05 00:07:06 INFO util.GSet: recommended=2097152, actual=2097152
   12/09/05 00:07:07 INFO namenode.FSNamesystem: fsOwner=devveri
   12/09/05 00:07:07 INFO namenode.FSNamesystem: supergroup=supergroup
   12/09/05 00:07:07 INFO namenode.FSNamesystem: isPermissionEnabled=true
   12/09/05 00:07:07 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
   12/09/05 00:07:07 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s),
   accessTokenLifetime=0 min(s)
   12/09/05 00:07:07 INFO namenode.NameNode: Caching file names occuring more than 10 times
   12/09/05 00:07:07 INFO common.Storage: Image file of size 111 saved in 0 seconds.
   12/09/05 00:07:07 INFO common.Storage: Storage directory /usr/java/hadoop-data/dfs/name has been successfully formatted.
   12/09/05 00:07:07 INFO namenode.NameNode: SHUTDOWN_MSG:
   /
   SHUTDOWN_MSG: Shutting down NameNode at devveri-HP-ProBook-6540b/127.0.1.1
   /
G端ndem

   Big Data (Dev veri)
   Hadoop
   HDFS
   MapReduce
   Hadoop Kurulum
   K端me Yap脹s脹
   Hadoop Ekosistemi
K端me Yap脹s脹
  Hadoop k端mesini durdurup balatmak i巽in bin
    klas旦r端 alt脹ndaki script'ler kullan脹l脹r

  start-all.sh                 K端meyi 巽al脹t脹r脹r

  stop-all.sh                  K端meyi durdurur

  start-dfs.sh                 Sadece HDFS s端re巽lerini 巽al脹t脹r脹r

  stop-dfs.sh                  HDFS s端re巽lerini durdurur

  start-mapred.sh              Sadece MapReduce s端re巽lerini 巽al脹t脹r脹r

  stop-mapred.sh               MapReduce s端re巽lerini durdurur
Hadoop S端re巽leri
 Hadoop k端mesi i巽erisinde birlikte 巽al脹an birka巽 farkl脹
 s端re巽 vard脹r
       NameNode
       SecondaryNameNode
       DataNode
       JobTracker
       TaskTracker
NameNode
Ana (master) d端端md端r
   Hangi blok, hangi dosya nerededir takip eder
   Her t端rl端 dosya ileminden sorumludur
   Veri deil sadece metadata saklar
   Her zaman ayakta olmak zorundad脹r
NameNode 巽al脹maz ise t端m k端me 巽al脹maz hale gelir
    H脹zl脹 eriim a巽脹s脹ndan verileri haf脹zada tutar
    旦kmeye kar脹 diske bilgileri senkronize eder
    Bu verileri mutlaka yedeklenmelidir
SecondaryNameNode
NameNode yedei deildir!
   Sadece NameNode taraf脹ndan yap脹lmayan baz脹
     g旦revleri yerine getirir
DataNode
Verilerin bulunduu d端端md端r
   Blok halinde dosyalar脹 saklar
   Yedekli olduu i巽in kapanmas脹 halinde veri kayb脹
      yaanmaz
    Veriler bu d端端mlerde olduu i巽in analiz ilemleri
      de bu d端端mler 端zerinde 巽al脹脹r
    K端me i巽erisinde birden fazla olabilir (olmal脹d脹r)
    4000+ d端端me kadar b端y端yebilir
    Say脹s脹 artt脹k巽a performans脹 lineer olarak artar!
JobTracker
 MapReduce ilerini takip eder
    NameNode gibi tektir
    聴stemciler MapReduce ilerini JobTracker'a
       g旦nderir
     聴leri dier d端端mlere da脹t脹r
     聴 par巽ac脹klar脹n脹n durumunu takip eder
     Bir i par巽ac脹脹nda sorun olursa bunu sonland脹rarak
       yeni bir tekrar 巽al脹t脹r脹r
     Baz脹 durumlarda ayn脹 ii yapan birden fazla i
       par巽ac脹脹 巽al脹t脹rabilir
TaskTracker
 MapReduce ilemlerini 巽al脹t脹r脹r
    DataNode ile ayn脹 d端端mde bulunur
    JobTracker taraf脹ndan g旦nderilen i
       par巽ac脹klar脹ndan sorumludur
     Map ve Reduce g旦revlerini 巽al脹t脹r脹p sonu巽lar脹n脹
       JobTracker'a iletir
K端meye bak脹

     NameNode   JobTracker


     SNNode
                       Node 1



     DataNode   TaskTracker     DataNode   TaskTracker


                       Node 2                     Node 3



     DataNode   TaskTracker     DataNode   TaskTracker


                       Node 4                     Node 5
NameNode Aray端z端
JobTracker Aray端z端
G端ndem

   Big Data (Dev veri)
   Hadoop
   HDFS
   MapReduce
   Hadoop Kurulum
   K端me Yap脹s脹
   Hadoop Ekosistemi
Hadoop Ecosystem

Hadoop 巽at脹s脹 alt脹nda bir巽ok proje bar脹n脹r
   Hive
   Pig
   HBase
   Mahout
   Impala
   Dierleri: Sqoop, Flume, Avro, Zookeeper, Oozie,
    Cascading...
Hive
 Facebook taraf脹ndan gelitirilmitir
 SQL benzeri HiveQL dili ile Java kullanmadan
   MapReduce uygulamalar脹 yaz脹lmas脹n脹 salar
 ncelikle HDFS 端zerindeki dosyalar tablo olarak
   tan脹t脹l脹r
    create table member_visits (member_id string,
       visit_count int) row format delimited fields
       terminated by 't' stored as textfile;
    load data inpath '/usr/hadoop/anyfile' into table
       members;
 Daha sonra bu sanal tablolar sorgulanabilir
    select avg(visit_count) from member_visits where
       visit_count > 0;
Pig
  Yahoo taraf脹ndan gelitirilmitir
  MapReduce yazmak i巽in "DataFlow" dili olarak
      adland脹r脹lan, SQL'den farkl脹 kendine 旦zg端 PigLatin dili
      kullan脹l脹r
  Join destekler, daha kolay ve performansl脹
      MapReduce programalar脹 yazmay脹 salar
       A = LOAD 'companies.csv' USING PigStorage() AS
         (productId:int, productName:chararray);
         B = FILTER A BY productId > 3;
         C = FOREACH B GENERATE *;
         DUMP C;
HBase
 Hadoop 端zerinde 巽al脹an NoSQL veritaban脹d脹r
 Google Big Table 旦rnek al脹narak gelitirilmitir
 Esnek ema yap脹s脹 ile binlerce kolon, petabyte'larca
   sat脹rdan oluan veriyi saklayabilir
 HDFS 端zerinde 巽al脹t脹脹ndan MapReduce destekler
 Veriye eriiminde baz脹 k脹s脹tlar vard脹r
 Verilere anahtar 端zerinden ya da partial table scan
   ile eriilebilir
 聴kincil indeks, karma脹k sorgu 巽al脹t脹rma destei
   yoktur
Mahout
 Hadoop 端zerinde 巽al脹abilen Machine Learning
   algoritmalar脹n脹 i巽eren bir k端t端phanedir
 Recommendation
 Clustering
 Classification
Impala
    Google Dremel (2010) projesinden esinlenmitir
    Cloudera taraf脹ndan gelitirilmitir
    MapReduce yapmadan verilere direkt eriir
    HiveQL destekler, 7-45 kat daha h脹zl脹 巽al脹脹r
Sorular




          ?
DevVeri.com Hakk脹nda




  Big Data, Search, NoSQL her t端rl端 yaz脹lar脹n脹z脹 bekliyoruz!
Kaynaklar
http://hadoop.apache.org
http://www.cloudera.com
http://www-01.ibm.com/software/data/bigdata/
http://en.wikipedia.org/wiki/Google_File_System
http://en.wikipedia.org/wiki/MapReduce
http://en.wikipedia.org/wiki/BigTable
http://www.evolven.com/images/stories/blog/blog_infographic_big_data_autonomy-big-data.jpg
http://architects.dzone.com/articles/big-data-rich-compendium-big
http://devveri.com
意艶艶一一端姻鉛艶姻!
Ad

Recommended

Pig ve Hive ile Hadoop 端zerinde Veri Analizi
Pig ve Hive ile Hadoop 端zerinde Veri Analizi
Hakan Ilter
B端y端k veri teknolojilerine giri v1l
B端y端k veri teknolojilerine giri v1l
Hakan Ilter
B端y端k Veri 聴lemleri ve Hadoop
B端y端k Veri 聴lemleri ve Hadoop
Cenk Derinozlu
Pig ve Hive ile Hadoop zerinde Veri Analizi v2
Pig ve Hive ile Hadoop zerinde Veri Analizi v2
Hakan Ilter
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Serkan Sak脹nmaz
1 hafta_dersi
1 hafta_dersi
Mudur Alkan
Hadoop & Cloudera Workshop
Hadoop & Cloudera Workshop
Serkan Sak脹nmaz
Big Data Sunum
Big Data Sunum
Serkan Sak脹nmaz
Hbase Kullan脹m Senaryolar脹
Hbase Kullan脹m Senaryolar脹
Talat UYARER
Big Data Analytics
Big Data Analytics
Mudur Alkan
Hadoop,Pig,Hive ve Oozie ile B端y端k Veri Analizi
Hadoop,Pig,Hive ve Oozie ile B端y端k Veri Analizi
Serkan Sak脹nmaz
Hadoop nedir
Hadoop nedir
Aykut zmen
Apache Spark : Genel Bir Bak脹
Apache Spark : Genel Bir Bak脹
Burak KSE
Veri ileme 端zerine, Hakan Sar脹b脹y脹k
Veri ileme 端zerine, Hakan Sar脹b脹y脹k
Hakan Sar脹b脹y脹k
Berkeley Data Analytics Stack Genel Bak脹
Berkeley Data Analytics Stack Genel Bak脹
Veysel Tac脹olu
Ankara JUG Big Data Presentation
Ankara JUG Big Data Presentation
Serkan zal
TBD Biliim 2014 Veri Analitii
TBD Biliim 2014 Veri Analitii
isa 旦lmez
Sunucular脹m脹z脹 G旦zleyelim
Sunucular脹m脹z脹 G旦zleyelim
Oguz Yarimtepe
Nosql veritabanlari
Nosql veritabanlari
Gokhan Boranalp
Scalability performance on_php
Scalability performance on_php
Mustafa Ileri
NCEL AKADEM聴: ZEL KONULAR
NCEL AKADEM聴: ZEL KONULAR
Ali Osman ncel
Apache Spark ile Twitter脹 izlemek
Apache Spark ile Twitter脹 izlemek
Mehmet Uluer, MSc.
Apache Kafka Nedir?
Apache Kafka Nedir?
AnkaraCloud
NoSQL Sunumu
NoSQL Sunumu
Ahmet Balkan
File Management System
File Management System
An脹l S旦zeri
Hepsistream real time click-stream data analytics platform
Hepsistream real time click-stream data analytics platform
Hepsiburada
12factor apps
12factor apps
Dilaver Demirel
Docker Nedir, Ne 聴e Yarar, Nas脹l Kullan脹lmal脹d脹r?
Docker Nedir, Ne 聴e Yarar, Nas脹l Kullan脹lmal脹d脹r?
Mustafa AKIN
Yapay zeka, B端y端k Veri, Bulut Biliim, Blok Zinciri k脹sa k脹sa...
Yapay zeka, B端y端k Veri, Bulut Biliim, Blok Zinciri k脹sa k脹sa...
Ouzhan TA Akademi

More Related Content

What's hot (7)

Hbase Kullan脹m Senaryolar脹
Hbase Kullan脹m Senaryolar脹
Talat UYARER
Big Data Analytics
Big Data Analytics
Mudur Alkan
Hadoop,Pig,Hive ve Oozie ile B端y端k Veri Analizi
Hadoop,Pig,Hive ve Oozie ile B端y端k Veri Analizi
Serkan Sak脹nmaz
Hadoop nedir
Hadoop nedir
Aykut zmen
Apache Spark : Genel Bir Bak脹
Apache Spark : Genel Bir Bak脹
Burak KSE
Veri ileme 端zerine, Hakan Sar脹b脹y脹k
Veri ileme 端zerine, Hakan Sar脹b脹y脹k
Hakan Sar脹b脹y脹k
Berkeley Data Analytics Stack Genel Bak脹
Berkeley Data Analytics Stack Genel Bak脹
Veysel Tac脹olu
Hbase Kullan脹m Senaryolar脹
Hbase Kullan脹m Senaryolar脹
Talat UYARER
Big Data Analytics
Big Data Analytics
Mudur Alkan
Hadoop,Pig,Hive ve Oozie ile B端y端k Veri Analizi
Hadoop,Pig,Hive ve Oozie ile B端y端k Veri Analizi
Serkan Sak脹nmaz
Hadoop nedir
Hadoop nedir
Aykut zmen
Apache Spark : Genel Bir Bak脹
Apache Spark : Genel Bir Bak脹
Burak KSE
Veri ileme 端zerine, Hakan Sar脹b脹y脹k
Veri ileme 端zerine, Hakan Sar脹b脹y脹k
Hakan Sar脹b脹y脹k
Berkeley Data Analytics Stack Genel Bak脹
Berkeley Data Analytics Stack Genel Bak脹
Veysel Tac脹olu

Similar to Hadoop @ devveri.com (20)

Ankara JUG Big Data Presentation
Ankara JUG Big Data Presentation
Serkan zal
TBD Biliim 2014 Veri Analitii
TBD Biliim 2014 Veri Analitii
isa 旦lmez
Sunucular脹m脹z脹 G旦zleyelim
Sunucular脹m脹z脹 G旦zleyelim
Oguz Yarimtepe
Nosql veritabanlari
Nosql veritabanlari
Gokhan Boranalp
Scalability performance on_php
Scalability performance on_php
Mustafa Ileri
NCEL AKADEM聴: ZEL KONULAR
NCEL AKADEM聴: ZEL KONULAR
Ali Osman ncel
Apache Spark ile Twitter脹 izlemek
Apache Spark ile Twitter脹 izlemek
Mehmet Uluer, MSc.
Apache Kafka Nedir?
Apache Kafka Nedir?
AnkaraCloud
NoSQL Sunumu
NoSQL Sunumu
Ahmet Balkan
File Management System
File Management System
An脹l S旦zeri
Hepsistream real time click-stream data analytics platform
Hepsistream real time click-stream data analytics platform
Hepsiburada
12factor apps
12factor apps
Dilaver Demirel
Docker Nedir, Ne 聴e Yarar, Nas脹l Kullan脹lmal脹d脹r?
Docker Nedir, Ne 聴e Yarar, Nas脹l Kullan脹lmal脹d脹r?
Mustafa AKIN
Yapay zeka, B端y端k Veri, Bulut Biliim, Blok Zinciri k脹sa k脹sa...
Yapay zeka, B端y端k Veri, Bulut Biliim, Blok Zinciri k脹sa k脹sa...
Ouzhan TA Akademi
Linkle mimari
Linkle mimari
Tahsin Y端ksel
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旦netimi
Huseyin Cotuk
Y端ksek S端reklilik 旦z端mleri
Y端ksek S端reklilik 旦z端mleri
SQLSERVERONCULERI
MongoDB ve C# Driver'脹
MongoDB ve C# Driver'脹
Serdar Buyuktemiz
Ankara JUG Big Data Presentation
Ankara JUG Big Data Presentation
Serkan zal
TBD Biliim 2014 Veri Analitii
TBD Biliim 2014 Veri Analitii
isa 旦lmez
Sunucular脹m脹z脹 G旦zleyelim
Sunucular脹m脹z脹 G旦zleyelim
Oguz Yarimtepe
Scalability performance on_php
Scalability performance on_php
Mustafa Ileri
NCEL AKADEM聴: ZEL KONULAR
NCEL AKADEM聴: ZEL KONULAR
Ali Osman ncel
Apache Spark ile Twitter脹 izlemek
Apache Spark ile Twitter脹 izlemek
Mehmet Uluer, MSc.
Apache Kafka Nedir?
Apache Kafka Nedir?
AnkaraCloud
File Management System
File Management System
An脹l S旦zeri
Hepsistream real time click-stream data analytics platform
Hepsistream real time click-stream data analytics platform
Hepsiburada
Docker Nedir, Ne 聴e Yarar, Nas脹l Kullan脹lmal脹d脹r?
Docker Nedir, Ne 聴e Yarar, Nas脹l Kullan脹lmal脹d脹r?
Mustafa AKIN
Yapay zeka, B端y端k Veri, Bulut Biliim, Blok Zinciri k脹sa k脹sa...
Yapay zeka, B端y端k Veri, Bulut Biliim, Blok Zinciri k脹sa k脹sa...
Ouzhan TA Akademi
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旦netimi
Huseyin Cotuk
Y端ksek S端reklilik 旦z端mleri
Y端ksek S端reklilik 旦z端mleri
SQLSERVERONCULERI
Ad

Hadoop @ devveri.com

  • 1. Hadoop devveri.com Aral脹k 2012 v1.3
  • 2. Hakk脹mda Marmara ni. Elektronik Software Development Supervisor @ Gitti Gidiyor / eBay 12+ y脹l yaz脹l脹m tecr端besi Java, C, C++, C# Big Data, Search, NoSQL Hakan 聴lter hilter@ebay.com twitter: devvericom http://tr.linkedin.com/in/hakanilter/
  • 3. G端ndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum K端me Yap脹s脹 Hadoop Ekosistemi
  • 6. Dev Veri Nedir Teknoloji > Internet > Sosyal Medya > Mobil > ... D端nya'daki verilerin %90'l脹k k脹sm脹 son iki y脹lda topland脹 Yap脹land脹r脹lm脹 (structured) ve Yap脹land脹r脹lmam脹 (unstructured) verilerden meydana gelir Yap脹land脹r脹lm脹 veriler: 端r端n, kategori, m端teri, fatura, 旦deme... Yap脹land脹r脹lmam脹 veriler: tweet, payla脹m, beeni (like), e-posta, video, t脹klama... %10 Yap脹land脹r脹lm脹, %90 Yap脹land脹r脹lmam脹
  • 7. Dev Verinin 3 Boyutu B端y端kl端k (Volume) Facebook 70+PB, eBay 5+PB H脹z (Velocity) Twitter'da herg端n 12TB twit at脹l脹yor eitlilik (Variety) Metin, sens旦r verileri, ses, g旦r端nt端, log dosyalar脹
  • 9. Dev Veri'nin nemi Bu kadar veri tek ba脹na bir anlam ifade etmiyor nemli olan Dev Veri i巽erisinde saklanm脹 olan bilgiyi ortaya 巽脹kart脹p yapt脹脹m脹z ii daha iyi anlamak, belki de gelecei tahmin etmeye 巽al脹mak Bu ger巽ekletirildiinde; Mutlu m端teriler Daha fazla kazan巽 Doland脹r脹c脹l脹kta azalma Daha sal脹kl脹 insanlar ...
  • 10. Geleneksel Sistemlerin Problemleri RDBMS G旦receli olarak k端巽端k boyutta veri, yap脹land脹r脹lmam脹 verilere uygun deil Donan脹m limitleri Daha fazla CPU, daha fazla RAM, daha fazla Disk = Daha fazla Maliyet Yaz脹l脹msal karma脹kl脹k Senkronizasyon, bant genilii, eriilebilirlik, hata tolerans脹
  • 11. Peki ya ger巽ek problem? Ger巽ek problem: Veriyi ilemciye ulat脹rabilmek! 100GB boyutundaki bir veriyi tipik bir disk ile (~75 MB/sn) aktarmak yakla脹k 22 dakika!
  • 12. Yeni bir yakla脹m l巽eklenebilir Tutarl脹 Veri Garantili Eriilebilir
  • 13. Kim 巽旦zd端? Google File System (2003) MapReduce (2004) Big Table (2006)
  • 14. ve Hadoop! Veri ileme ama巽l脹 da脹t脹k uygulamalar yaz脹lmas脹n脹 salayan bir platform ve a巽脹k kaynakl脹 bir Apache projesidir.
  • 15. G端ndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum K端me Yap脹s脹 Hadoop Ekosistemi
  • 16. Neden Hadoop Esnek Her t端rl端 veriyi saklay脹p analizini yapabilir l巽eklenebilir Binlerce d端端m bir araya getirilebilir Ekonomik A巽脹k kaynakl脹, "commodity" donan脹mda 巽al脹abilir
  • 19. Gitti Gidiyor'da Hadoop 聴lgili dier aramalar Nokkia arat脹lm脹 ama Nokia olarak d端zeltilmi Nokia kelimesiyle daha ilgili olduu i巽in Cep telefonu kategorisi daha 端stte yer al脹yor
  • 20. Gitti Gidiyor'da Hadoop "Metallica" ile ilgili dier aramalar Mobil uygulama ana sayfada kiiselletirilmi 端r端n g旦sterimi Autocomplete verisi
  • 22. Hadoop 聴ki ana bileenden oluur Hadoop Distributed File System (HDFS) MapReduce
  • 23. G端ndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum K端me Yap脹s脹 Hadoop Ekosistemi
  • 24. HDFS Verinin saklanmas脹ndan sorumludur Da脹t脹k bir dosya sistemidir Veriyi 64MB ya da 128MB'l脹k bloklar halinde saklar Her blok k端me i巽erisinde farkl脹 d端端mlere da脹t脹l脹r Her bloun varsay脹lan 3 kopyas脹 tutulur Bu sayede verinin eriilebilirlii ve g端venilirlii salanm脹 olur Ayn脹 dosyaya ait bloklar farkl脹 d端端mlerde olabilir
  • 25. HDFS Normal dosya sistemi 端zerinde 巽al脹脹r: ext3, ext4, xfs B端y端k miktarda veri i巽in yedekli depolama salar D端端k maliyetli sunucular 端zerinde 巽al脹maya uygundur K端巽端k 巽ok dosya yerine b端y端k daha az dosya tutulmal脹d脹r Ortalama bir dosya 100MB civar脹 olmal脹d脹r Rastlant脹sal eriim yoktur (write once) B端y端k ve duraks脹z (streaming) veri eriimine g旦re optimize edilmitir
  • 26. HDFS Bloklar脹n d端端mler 端zerine da脹l脹m 旦姻稼艶庄 blok 1 blok 2 blok 3 blok 4 blok 3 blok 2 Data Node 1 Data Node 2 blok 3 blok 4 blok 4 blok 1 blok 1 blok 2 Data Node 3 Data Node 4
  • 27. HDFS Eriimi HDFS 端zerindeki verilere konsol 端zerinden hadoop fs komutu ile eriilebilir: hadoop fs -ls Dosyalar脹 listeler hadoop fs -mkdir <path> Klas旦r oluturur hadoop fs -put <local> <target> Lokalden HDFS'e dosya kopyalar hadoop fs -get <source> <local> HDFS'den lokale dosya kopyalar hadoop fs -cat <filename> Dosya i巽eriini konsola basar hadoop fs -rmr <filename> Dosyay脹 siler
  • 28. G端ndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum K端me Yap脹s脹 Hadoop Ekosistemi
  • 29. MapReduce Veriyi ileme y旦ntemidir Fonksiyonel programlamadan esinlenilmitir Map ve Reduce birer fonksiyondur Map fonksiyonu ile veri i巽erisinden istenilen veriler anahtar-deer format脹nda se巽ilir Reduce fonksiyonu ile de se巽ilen bu veriler 端zerinde ilem yap脹l脹r, sonu巽 yine anahtar-deer olarak iletilir Map ve Reduce aras脹nda Shuffle ve Sort aamalar脹 vard脹r
  • 30. MapReduce Daha kolay anla脹labilir olmas脹 i巽in SQL'e benzetmek gerekirse; WHERE ile yap脹lan filtreleme gibi Map aamas脹nda sadece ihtiyac脹m脹z olan veriler se巽ilir Reduce aamas脹nda ise SUM, COUNT, AVG gibi birletirme ilemleri yap脹l脹r
  • 31. MapReduce Map aamas脹ndaki ilemler k端me 端zerinde paralel olarak 巽al脹脹r Bu sayede k端menin b端y端kl端端ne g旦re veriler h脹zl脹 bir ekilde ilenebilir hale gelmi olur Her i par巽ac脹脹 verinin belirli bir par巽as脹n脹 iler 聴 par巽ac脹klar脹 m端mk端nse 端zerinde 巽al脹t脹脹 d端端mdeki verileri iler. Buna Data Localization denir
  • 32. MapReduce MapReduce ile ak脹 旦姻稼艶庄
  • 33. MapReduce Uygulama gelitirilirken sadece Map ve Reduce metodlar脹 yaz脹l脹r, geri kalan ileyi otomatik ger巽ekleir Hadoop tamamen Java ile gelitirildii i巽in MapReduce uygulamalar脹 Java ile yaz脹l脹r, jar olarak paketlenir Streaming 旦zellii sayesinde Python, C++, Php gibi farkl脹 dillerde de kullan脹labilir
  • 34. Word Count Map Metodu public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString().toLowerCase(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { Text word = new Text(tokenizer.nextToken()); context.write(word, new IntWritable(1)); } }
  • 35. Word Count Reduce Metodu public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable value : values) { sum += value.get(); } context.write(key, new IntWritable(sum)); }
  • 36. Word Count Tool s脹n脹f脹 metodlar脹 public int run(String[] args) throws Exception { if (args.length != 2) { System.err.printf("Usage: %s [generic options] <input> <output>n", getClass().getSimpleName()); ToolRunner.printGenericCommandUsage(System.err); return -1; } Job job = new Job(); job.setJarByClass(WordCount.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.setMapperClass(WordCountMapper.class); job.setReducerClass(WordCountReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); return job.waitForCompletion(true) ? 0 : 1; } public static void main(String[] args) throws Exception { int exitCode = ToolRunner.run(new WordCount(), args); System.exit(exitCode); }
  • 37. Word Count MapReduce program脹n脹 巽al脹t脹rma $ hadoop jar <jarfile> <classname> <args...> $ hadoop jar devveri-mapreduce-0.0.1-SNAPSHOT.jar com.devveri.hadoop.mapreduce.WordCount test.txt devveri 12/07/09 23:44:41 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 12/07/09 23:44:41 INFO input.FileInputFormat: Total input paths to process : 1 12/07/09 23:44:41 INFO mapred.JobClient: Running job: job_201204231254_5522 12/07/09 23:44:42 INFO mapred.JobClient: map 0% reduce 0% 12/07/09 23:44:56 INFO mapred.JobClient: map 100% reduce 0% 12/07/09 23:45:08 INFO mapred.JobClient: map 100% reduce 100% 12/07/09 23:45:13 INFO mapred.JobClient: Job complete: job_201204231254_5522 12/07/09 23:45:13 INFO mapred.JobClient: Counters: 29 12/07/09 23:45:13 INFO mapred.JobClient: Job Counters 12/07/09 23:45:13 INFO mapred.JobClient: Launched reduce tasks=1 12/07/09 23:45:13 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=11984 12/07/09 23:45:13 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0 12/07/09 23:45:13 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0 12/07/09 23:45:13 INFO mapred.JobClient: Launched map tasks=1 12/07/09 23:45:13 INFO mapred.JobClient: Data-local map tasks=1 12/07/09 23:45:13 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=10033 12/07/09 23:45:13 INFO mapred.JobClient: File Output Format Counters 12/07/09 23:45:13 INFO mapred.JobClient: Bytes Written=31 12/07/09 23:45:13 INFO mapred.JobClient: FileSystemCounters 12/07/09 23:45:13 INFO mapred.JobClient: FILE_BYTES_READ=61 ...
  • 38. G端ndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum K端me Yap脹s脹 Hadoop Ekosistemi
  • 39. Hadoop Kurulumu Apache s端r端m端 d脹脹nda Cloudera, Hortonworks gibi firmalar脹n da脹t脹mlar脹 da kullan脹labilir Farkl脹 s端r端mleri bulunuyor 1.0.X - current stable version, 1.0 release 1.1.X - current beta version, 1.1 release 2.X.X - current alpha version 0.23.X - simmilar to 2.X.X but missing NN HA. 0.22.X - does not include security 0.20.203.X - old legacy stable version 0.20.X - old legacy version K端me olarak (full cluster) ya da tek sunucuya (pseudo- distributed) kurulabilir deb, rpm veya tarball olarak indirilip kurulabilir
  • 40. rnek kurulum ad脹m 1 JDK 1.6, openssh-server ve rsync sistemde olmal脹 $ sudo apt-get install ssh $ sudo apt-get install rsync
  • 41. rnek kurulum ad脹m 2 Sunucular aras脹 ifresiz balant脹 gerekir $ ssh localhost The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is 00:ab:cd:ef:12:23:56:ab:ba:c4:89: 11:d8:22:33:1b. Are you sure you want to continue connecting (yes/no)? yes ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  • 42. rnek kurulum ad脹m 3 Kurulumun yap脹laca脹 klas旦rler ayarlan脹r $ sudo mkdir /usr/java $ sudo chown -R devveri:devveri /usr/java $ mkdir /usr/java/hadoop-data
  • 43. rnek kurulum ad脹m 4 Apache sunucusundan son s端r端m indirilir $ cd /usr/java/ $ wget "http://www.eu.apache.org/dist/hadoop/ common/hadoop-1.0.4/hadoop-1.0.4.tar.gz" $ gzip -dc hadoop-1.0.4.tar.gz | tar xf - $ ln -s /usr/java/hadoop-1.0.4 /usr/java/hadoop
  • 44. rnek kurulum ad脹m 5 K端me ile ilgili genel ayarlar conf/core-site.xml dosyas脹nda bulunur <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>
  • 45. rnek kurulum ad脹m 6 HDFS ile ilgili ayarlar conf/hdfs-site.xml dosyas脹 i巽erisinde bulunur <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
  • 46. rnek kurulum ad脹m 7 MapReduce ile ilgili ayarlar conf/mapred-site.xml dosyas脹 i巽erisinde bulunur <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
  • 47. rnek kurulum ad脹m 8 Hadoop ile ilgili ortam deikenleri conf/hadoop-env. sh dosyas脹nda bulunur export JAVA_HOME=/usr/java/jdk export HADOOP_HEAPSIZE=512 export HADOOP_HOME_WARN_SUPPRESS="TRUE"
  • 48. rnek kurulum ad脹m 9 .bash_profile ya da .bash_rc dosyalar脹nda $PATH deikeni ayarlanmal脹d脹r JAVA_HOME=/usr/java/jdk PATH=$PATH:$JAVA_HOME/bin HADOOP_HOME=/usr/java/hadoop PATH=$PATH:$HADOOP_HOME/bin
  • 49. rnek kurulum ad脹m 10 NameNode formatlanmal脹d脹r $ hadoop namenode -format 12/09/05 00:07:06 INFO namenode.NameNode: STARTUP_MSG: / STARTUP_MSG: Starting NameNode STARTUP_MSG: host = devveri-HP-ProBook-6540b/127.0.1.1 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 1.0.3 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1335192; compiled by 'hortonfo' on Tue May 8 20:31:25 UTC 2012 / 12/09/05 00:07:06 INFO util.GSet: VM type = 32-bit 12/09/05 00:07:06 INFO util.GSet: 2% max memory = 9.1025 MB 12/09/05 00:07:06 INFO util.GSet: capacity = 2^21 = 2097152 entries 12/09/05 00:07:06 INFO util.GSet: recommended=2097152, actual=2097152 12/09/05 00:07:07 INFO namenode.FSNamesystem: fsOwner=devveri 12/09/05 00:07:07 INFO namenode.FSNamesystem: supergroup=supergroup 12/09/05 00:07:07 INFO namenode.FSNamesystem: isPermissionEnabled=true 12/09/05 00:07:07 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100 12/09/05 00:07:07 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s) 12/09/05 00:07:07 INFO namenode.NameNode: Caching file names occuring more than 10 times 12/09/05 00:07:07 INFO common.Storage: Image file of size 111 saved in 0 seconds. 12/09/05 00:07:07 INFO common.Storage: Storage directory /usr/java/hadoop-data/dfs/name has been successfully formatted. 12/09/05 00:07:07 INFO namenode.NameNode: SHUTDOWN_MSG: / SHUTDOWN_MSG: Shutting down NameNode at devveri-HP-ProBook-6540b/127.0.1.1 /
  • 50. G端ndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum K端me Yap脹s脹 Hadoop Ekosistemi
  • 51. K端me Yap脹s脹 Hadoop k端mesini durdurup balatmak i巽in bin klas旦r端 alt脹ndaki script'ler kullan脹l脹r start-all.sh K端meyi 巽al脹t脹r脹r stop-all.sh K端meyi durdurur start-dfs.sh Sadece HDFS s端re巽lerini 巽al脹t脹r脹r stop-dfs.sh HDFS s端re巽lerini durdurur start-mapred.sh Sadece MapReduce s端re巽lerini 巽al脹t脹r脹r stop-mapred.sh MapReduce s端re巽lerini durdurur
  • 52. Hadoop S端re巽leri Hadoop k端mesi i巽erisinde birlikte 巽al脹an birka巽 farkl脹 s端re巽 vard脹r NameNode SecondaryNameNode DataNode JobTracker TaskTracker
  • 53. NameNode Ana (master) d端端md端r Hangi blok, hangi dosya nerededir takip eder Her t端rl端 dosya ileminden sorumludur Veri deil sadece metadata saklar Her zaman ayakta olmak zorundad脹r NameNode 巽al脹maz ise t端m k端me 巽al脹maz hale gelir H脹zl脹 eriim a巽脹s脹ndan verileri haf脹zada tutar 旦kmeye kar脹 diske bilgileri senkronize eder Bu verileri mutlaka yedeklenmelidir
  • 54. SecondaryNameNode NameNode yedei deildir! Sadece NameNode taraf脹ndan yap脹lmayan baz脹 g旦revleri yerine getirir
  • 55. DataNode Verilerin bulunduu d端端md端r Blok halinde dosyalar脹 saklar Yedekli olduu i巽in kapanmas脹 halinde veri kayb脹 yaanmaz Veriler bu d端端mlerde olduu i巽in analiz ilemleri de bu d端端mler 端zerinde 巽al脹脹r K端me i巽erisinde birden fazla olabilir (olmal脹d脹r) 4000+ d端端me kadar b端y端yebilir Say脹s脹 artt脹k巽a performans脹 lineer olarak artar!
  • 56. JobTracker MapReduce ilerini takip eder NameNode gibi tektir 聴stemciler MapReduce ilerini JobTracker'a g旦nderir 聴leri dier d端端mlere da脹t脹r 聴 par巽ac脹klar脹n脹n durumunu takip eder Bir i par巽ac脹脹nda sorun olursa bunu sonland脹rarak yeni bir tekrar 巽al脹t脹r脹r Baz脹 durumlarda ayn脹 ii yapan birden fazla i par巽ac脹脹 巽al脹t脹rabilir
  • 57. TaskTracker MapReduce ilemlerini 巽al脹t脹r脹r DataNode ile ayn脹 d端端mde bulunur JobTracker taraf脹ndan g旦nderilen i par巽ac脹klar脹ndan sorumludur Map ve Reduce g旦revlerini 巽al脹t脹r脹p sonu巽lar脹n脹 JobTracker'a iletir
  • 58. K端meye bak脹 NameNode JobTracker SNNode Node 1 DataNode TaskTracker DataNode TaskTracker Node 2 Node 3 DataNode TaskTracker DataNode TaskTracker Node 4 Node 5
  • 61. G端ndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum K端me Yap脹s脹 Hadoop Ekosistemi
  • 62. Hadoop Ecosystem Hadoop 巽at脹s脹 alt脹nda bir巽ok proje bar脹n脹r Hive Pig HBase Mahout Impala Dierleri: Sqoop, Flume, Avro, Zookeeper, Oozie, Cascading...
  • 63. Hive Facebook taraf脹ndan gelitirilmitir SQL benzeri HiveQL dili ile Java kullanmadan MapReduce uygulamalar脹 yaz脹lmas脹n脹 salar ncelikle HDFS 端zerindeki dosyalar tablo olarak tan脹t脹l脹r create table member_visits (member_id string, visit_count int) row format delimited fields terminated by 't' stored as textfile; load data inpath '/usr/hadoop/anyfile' into table members; Daha sonra bu sanal tablolar sorgulanabilir select avg(visit_count) from member_visits where visit_count > 0;
  • 64. Pig Yahoo taraf脹ndan gelitirilmitir MapReduce yazmak i巽in "DataFlow" dili olarak adland脹r脹lan, SQL'den farkl脹 kendine 旦zg端 PigLatin dili kullan脹l脹r Join destekler, daha kolay ve performansl脹 MapReduce programalar脹 yazmay脹 salar A = LOAD 'companies.csv' USING PigStorage() AS (productId:int, productName:chararray); B = FILTER A BY productId > 3; C = FOREACH B GENERATE *; DUMP C;
  • 65. HBase Hadoop 端zerinde 巽al脹an NoSQL veritaban脹d脹r Google Big Table 旦rnek al脹narak gelitirilmitir Esnek ema yap脹s脹 ile binlerce kolon, petabyte'larca sat脹rdan oluan veriyi saklayabilir HDFS 端zerinde 巽al脹t脹脹ndan MapReduce destekler Veriye eriiminde baz脹 k脹s脹tlar vard脹r Verilere anahtar 端zerinden ya da partial table scan ile eriilebilir 聴kincil indeks, karma脹k sorgu 巽al脹t脹rma destei yoktur
  • 66. Mahout Hadoop 端zerinde 巽al脹abilen Machine Learning algoritmalar脹n脹 i巽eren bir k端t端phanedir Recommendation Clustering Classification
  • 67. Impala Google Dremel (2010) projesinden esinlenmitir Cloudera taraf脹ndan gelitirilmitir MapReduce yapmadan verilere direkt eriir HiveQL destekler, 7-45 kat daha h脹zl脹 巽al脹脹r
  • 68. Sorular ?
  • 69. DevVeri.com Hakk脹nda Big Data, Search, NoSQL her t端rl端 yaz脹lar脹n脹z脹 bekliyoruz!