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üb...
Gündem●   Big Data (Dev veri)●   Hadoop●   HDFS●   MapReduce●   Hadoop Kurulum●   Küme Yapısı●   Hadoop Ekosistemi
Dev Veri
Dev Veri
Dev Veri NedirTeknoloji > Internet > Sosyal Medya > Mobil > ...Dünyadaki verilerin %90lık kısmı son iki yılda toplandıYapı...
Dev Verinin 3 BoyutuBüyüklük (Volume)  ● Facebook 70+PB, eBay 5+PBHız (Velocity)  ● Twitterda hergün 12TB twit atılıyorÇeş...
Dev Veri
Dev Verinin Önemi ● Bu kadar veri tek başına bir anlam ifade etmiyor ● Önemli olan Dev Veri içerisinde saklanmış olan   bi...
Geleneksel Sistemlerin Problemleri ● RDBMS   Göreceli olarak küçük boyutta veri, yapılandırılmamış   verilere uygun değil ...
Peki ya gerçek problem?     Gerçek problem: Veriyi işlemciye             ulaştırabilmek!       100GB boyutundaki bir veriy...
Yeni bir yaklaşım ● Ölçeklenebilir ● Tutarlı ● Veri Garantili ● Erişilebilir
Kim çözdü?  ● Google File System (2003)  ● MapReduce (2004)  ● Big Table (2006)
ve Hadoop! Veri işleme amaçlı dağıtık uygulamalar yazılmasını sağlayan 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...
Nerede?
Nerede?
Gitti Gidiyorda Hadoop                                     İlgili diğer aramalar                         Nokkia aratılmış ...
Gitti Gidiyorda Hadoop                                            "Metallica" ile ilgili diğer aramalar                   ...
Kimler kullanıyor?
Hadoopİki ana bileşenden oluşur   ● Hadoop Distributed File System (HDFS)   ● MapReduce
Gündem●   Big Data (Dev veri)●   Hadoop●   HDFS●   MapReduce●   Hadoop Kurulum●   Küme Yapısı●   Hadoop Ekosistemi
HDFSVerinin saklanmasından sorumludur  ● Dağıtık bir dosya sistemidir  ● Veriyi 64MB ya da 128MBlık bloklar halinde saklar...
HDFS●   Normal dosya sistemi üzerinde çalışır: ext3, ext4, xfs●   Büyük miktarda veri için yedekli depolama sağlar●   Düşü...
HDFSBlokların düğümler üzerine dağılım örneği   blok 1   blok 2                 blok 3   blok 4   blok 3                  ...
HDFS ErişimiHDFS üzerindeki verilere konsol üzerinden hadoop fskomutu ile erişilebilir:  hadoop fs -ls                    ...
Gündem●   Big Data (Dev veri)●   Hadoop●   HDFS●   MapReduce●   Hadoop Kurulum●   Küme Yapısı●   Hadoop Ekosistemi
MapReduceVeriyi işleme yöntemidir  ● Fonksiyonel programlamadan esinlenilmiştir  ● Map ve Reduce birer fonksiyondur  ● Map...
MapReduceDaha kolay anlaşılabilir olması için SQLe benzetmekgerekirse;● WHERE ile yapılan filtreleme gibi Map aşamasında  ...
MapReduce● Map aşamasındaki işlemler küme üzerinde paralel   olarak çalışır● Bu sayede kümenin büyüklüğüne göre veriler hı...
MapReduceMapReduce ile akış örneği
MapReduce● Uygulama geliştirilirken sadece Map ve Reduce   metodları yazılır, geri kalan işleyiş otomatik   gerçekleşir● H...
Word CountMap Metodupublic void map(LongWritable key, Text value, Context context)    throws IOException, InterruptedExcep...
Word CountReduce Metodupublic void reduce(Text key, Iterable<IntWritable> values, Context context)    throws IOException, ...
Word CountTool sınıfı metodlarıpublic int run(String[] args) throws Exception{    if (args.length != 2) {        System.er...
Word CountMapReduce programını çalıştırma$ hadoop jar <jarfile> <classname> <args...>$ hadoop jar devveri-mapreduce-0.0.1-...
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ü...
Örnek kurulum adım 1 ● JDK 1.6, openssh-server ve rsync sistemde olmalı    $ sudo apt-get install ssh    $ sudo apt-get in...
Örnek kurulum adım 2 ● Sunucular arası şifresiz bağlantı gerekir    $ ssh localhost    The authenticity of host localhost ...
Örnek kurulum adım 3 ● Kurulumun yapılacağı klasörler ayarlanır    $ sudo mkdir /usr/java    $ sudo chown -R devveri:devve...
Örnek kurulum adım 4 ● Apache sunucusundan son sürüm indirilir    $ cd /usr/java/    $ wget "http://www.eu.apache.org/dist...
Örnek kurulum adım 5 ● Küme ile ilgili genel ayarlar conf/core-site.xml    dosyasında bulunur    <configuration>        <p...
Örnek kurulum adım 6 ● HDFS ile ilgili ayarlar conf/hdfs-site.xml dosyası    içerisinde bulunur    <configuration>        ...
Örnek kurulum adım 7 ● MapReduce ile ilgili ayarlar conf/mapred-site.xml    dosyası içerisinde bulunur    <configuration> ...
Örnek kurulum adım 8 ● Hadoop ile ilgili ortam değişkenleri conf/hadoop-env.    sh dosyasında bulunur    export JAVA_HOME=...
Örnek kurulum adım 9 ● .bash_profile ya da .bash_rc dosyalarında $PATH    değişkeni ayarlanmalıdır    JAVA_HOME=/usr/java/...
Örnek kurulum adım 10 ● NameNode formatlanmalıdır   $ hadoop namenode -format   12/09/05 00:07:06 INFO namenode.NameNode: ...
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 başlatmak için bin    klasörü altındaki scriptler kullanılır  start-all.sh         ...
Hadoop Süreçleri Hadoop kümesi içerisinde birlikte çalışan birkaç farklı süreç vardır    ●   NameNode    ●   SecondaryName...
NameNodeAna (master) düğümdür  ● Hangi blok, hangi dosya nerededir takip eder  ● Her türlü dosya işleminden sorumludur  ● ...
SecondaryNameNodeNameNode yedeği değildir!  ● Sadece NameNode tarafından yapılmayan bazı     görevleri yerine getirir
DataNodeVerilerin bulunduğu düğümdür  ● Blok halinde dosyaları saklar  ● Yedekli olduğu için kapanması halinde veri kaybı ...
JobTracker MapReduce işlerini takip eder   ● NameNode gibi tektir   ● İstemciler MapReduce işlerini JobTrackera       gönd...
TaskTracker MapReduce işlemlerini çalıştırır   ● DataNode ile aynı düğümde bulunur   ● JobTracker tarafından gönderilen iş...
Kümeye bakış     NameNode   JobTracker     SNNode                       Node 1     DataNode   TaskTracker     DataNode   T...
NameNode Arayüzü
JobTracker Arayüzü
Gündem●   Big Data (Dev veri)●   Hadoop●   HDFS●   MapReduce●   Hadoop Kurulum●   Küme Yapısı●   Hadoop Ekosistemi
Hadoop EcosystemHadoop çatısı altında birçok proje barınır●   Hive●   Pig●   HBase●   Mahout●   Impala●   Diğerleri: Sqoop...
Hive● Facebook tarafından geliştirilmiştir● SQL benzeri HiveQL dili ile Java kullanmadan   MapReduce uygulamaları yazılmas...
Pig ● Yahoo tarafından geliştirilmiştir ● MapReduce yazmak için "DataFlow" dili olarak      adlandırılan, SQLden farklı ke...
HBase● Hadoop üzerinde çalışan NoSQL veritabanıdır● Google Big Table örnek alınarak geliştirilmiştir● Esnek şema yapısı il...
Mahout● Hadoop üzerinde çalışabilen Machine Learning   algoritmalarını içeren bir kütüphanedir● Recommendation● Clustering...
Impala ●   Google Dremel (2010) projesinden esinlenmiştir ●   Cloudera tarafından geliştirilmiştir ●   MapReduce yapmadan ...
Sorular          ?
DevVeri.com Hakkında  Big Data, Search, NoSQL her türlü yazılarınızı bekliyoruz!
Kaynaklarhttp://hadoop.apache.orghttp://www.cloudera.comhttp://www-01.ibm.com/software/data/bigdata/http://en.wikipedia.or...
Teşekkürler!
Upcoming SlideShare
Loading in …5
×

Hadoop @ devveri.com

10,459 views

Published on

devveri.com Hadoop sunumu

Published in: Technology

Hadoop @ devveri.com

  1. 1. Hadoop devveri.com Aralık 2012 v1.3
  2. 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. 3. Gündem● Big Data (Dev veri)● Hadoop● HDFS● MapReduce● Hadoop Kurulum● Küme Yapısı● Hadoop Ekosistemi
  4. 4. Dev Veri
  5. 5. Dev Veri
  6. 6. Dev Veri NedirTeknoloji > Internet > Sosyal Medya > Mobil > ...Dünyadaki verilerin %90lı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, beğeni (like), e-posta, video, tıklama...%10 Yapılandırılmış, %90 Yapılandırılmamış
  7. 7. Dev Verinin 3 BoyutuBüyüklük (Volume) ● Facebook 70+PB, eBay 5+PBHız (Velocity) ● Twitterda hergün 12TB twit atılıyorÇeşitlilik (Variety) ● Metin, sensör verileri, ses, görüntü, log dosyaları
  8. 8. Dev Veri
  9. 9. Dev Verinin Ö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 işi daha iyi anlamak, belki de geleceği tahmin etmeye çalışmak ● Bu gerçekleştirildiğinde; ○ Mutlu müşteriler ○ Daha fazla kazanç ○ Dolandırıcılıkta azalma ○ Daha sağlıklı insanlar ○ ...
  10. 10. Geleneksel Sistemlerin Problemleri ● RDBMS Göreceli olarak küçük boyutta veri, yapılandırılmamış verilere uygun değil ● Donanım limitleri Daha fazla CPU, daha fazla RAM, daha fazla Disk = Daha fazla Maliyet ● Yazılımsal karmaşıklık Senkronizasyon, bant genişliği, erişilebilirlik, hata toleransı
  11. 11. Peki ya gerçek problem? Gerçek problem: Veriyi işlemciye ulaştırabilmek! 100GB boyutundaki bir veriyi tipik bir disk ile (~75 MB/sn) aktarmak yaklaşık 22 dakika!
  12. 12. Yeni bir yaklaşım ● Ölçeklenebilir ● Tutarlı ● Veri Garantili ● Erişilebilir
  13. 13. Kim çözdü? ● Google File System (2003) ● MapReduce (2004) ● Big Table (2006)
  14. 14. ve Hadoop! Veri işleme amaçlı dağıtık uygulamalar yazılmasını sağlayan bir platform ve açık kaynaklı bir Apache projesidir.
  15. 15. Gündem● Big Data (Dev veri)● Hadoop● HDFS● MapReduce● Hadoop Kurulum● Küme Yapısı● Hadoop Ekosistemi
  16. 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
  17. 17. Nerede?
  18. 18. Nerede?
  19. 19. Gitti Gidiyorda Hadoop İlgili diğer aramalar Nokkia aratılmış ama Nokia olarak düzeltilmişNokiakelimesiyledaha ilgiliolduğu için Ceptelefonukategorisi dahaüstte yer alıyor
  20. 20. Gitti Gidiyorda Hadoop "Metallica" ile ilgili diğer aramalar Mobil uygulama ana sayfada kişiselleştirilmiş ürün gösterimi Autocomplete verisi
  21. 21. Kimler kullanıyor?
  22. 22. Hadoopİki ana bileşenden oluşur ● Hadoop Distributed File System (HDFS) ● MapReduce
  23. 23. Gündem● Big Data (Dev veri)● Hadoop● HDFS● MapReduce● Hadoop Kurulum● Küme Yapısı● Hadoop Ekosistemi
  24. 24. HDFSVerinin saklanmasından sorumludur ● Dağıtık bir dosya sistemidir ● Veriyi 64MB ya da 128MBlık bloklar halinde saklar ● Her blok küme içerisinde farklı düğümlere dağıtılır ● Her bloğun varsayılan 3 kopyası tutulur ● Bu sayede verinin erişilebilirliği ve güvenilirliği sağlanmış olur ● Aynı dosyaya ait bloklar farklı düğümlerde olabilir
  25. 25. HDFS● Normal dosya sistemi üzerinde çalışır: ext3, ext4, xfs● Büyük miktarda veri için yedekli depolama sağlar● 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 erişim yoktur (write once)● Büyük ve duraksız (streaming) veri erişimine göre optimize edilmiştir
  26. 26. HDFSBlokların düğümler üzerine dağılım örneği 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. 27. HDFS ErişimiHDFS üzerindeki verilere konsol üzerinden hadoop fskomutu ile erişilebilir: hadoop fs -ls Dosyaları listeler hadoop fs -mkdir <path> Klasör oluşturur hadoop fs -put <local> <target> Lokalden HDFSe dosya kopyalar hadoop fs -get <source> <local> HDFSden lokale dosya kopyalar hadoop fs -cat <filename> Dosya içeriğini konsola basar hadoop fs -rmr <filename> Dosyayı siler
  28. 28. Gündem● Big Data (Dev veri)● Hadoop● HDFS● MapReduce● Hadoop Kurulum● Küme Yapısı● Hadoop Ekosistemi
  29. 29. MapReduceVeriyi işleme yöntemidir ● Fonksiyonel programlamadan esinlenilmiştir ● Map ve Reduce birer fonksiyondur ● Map fonksiyonu ile veri içerisinden istenilen veriler anahtar-değer formatında seçilir ● Reduce fonksiyonu ile de seçilen bu veriler üzerinde işlem yapılır, sonuç yine anahtar-değer olarak iletilir ● Map ve Reduce arasında Shuffle ve Sort aşamaları vardır
  30. 30. MapReduceDaha kolay anlaşılabilir olması için SQLe benzetmekgerekirse;● WHERE ile yapılan filtreleme gibi Map aşamasında sadece ihtiyacımız olan veriler seçilir● Reduce aşamasında ise SUM, COUNT, AVG gibi birleştirme işlemleri yapılır
  31. 31. MapReduce● Map aşamasındaki işlemler küme üzerinde paralel olarak çalışır● Bu sayede kümenin büyüklüğüne göre veriler hızlı bir şekilde işlenebilir hale gelmiş olur● Her iş parçacığı verinin belirli bir parçasını işler● İş parçacıkları mümkünse üzerinde çalıştığı düğümdeki verileri işler. Buna Data Localization denir
  32. 32. MapReduceMapReduce ile akış örneği
  33. 33. MapReduce● Uygulama geliştirilirken sadece Map ve Reduce metodları yazılır, geri kalan işleyiş otomatik gerçekleşir● Hadoop tamamen Java ile geliştirildiği için MapReduce uygulamaları Java ile yazılır, jar olarak paketlenir● Streaming özelliği sayesinde Python, C++, Php gibi farklı dillerde de kullanılabilir
  34. 34. Word CountMap Metodupublic 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. 35. Word CountReduce Metodupublic 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. 36. Word CountTool 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. 37. Word CountMapReduce 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 devveri12/07/09 23:44:41 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications shouldimplement Tool for the same.12/07/09 23:44:41 INFO input.FileInputFormat: Total input paths to process : 112/07/09 23:44:41 INFO mapred.JobClient: Running job: job_201204231254_552212/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_552212/07/09 23:45:13 INFO mapred.JobClient: Counters: 2912/07/09 23:45:13 INFO mapred.JobClient: Job Counters12/07/09 23:45:13 INFO mapred.JobClient: Launched reduce tasks=112/07/09 23:45:13 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=1198412/07/09 23:45:13 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=012/07/09 23:45:13 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=012/07/09 23:45:13 INFO mapred.JobClient: Launched map tasks=112/07/09 23:45:13 INFO mapred.JobClient: Data-local map tasks=112/07/09 23:45:13 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=1003312/07/09 23:45:13 INFO mapred.JobClient: File Output Format Counters12/07/09 23:45:13 INFO mapred.JobClient: Bytes Written=3112/07/09 23:45:13 INFO mapred.JobClient: FileSystemCounters12/07/09 23:45:13 INFO mapred.JobClient: FILE_BYTES_READ=61...
  38. 38. Gündem● Big Data (Dev veri)● Hadoop● HDFS● MapReduce● Hadoop Kurulum● Küme Yapısı● Hadoop Ekosistemi
  39. 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. 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. 41. Örnek kurulum adım 2 ● Sunucular arası şifresiz bağlantı gerekir $ ssh localhost The authenticity of host localhost (127.0.0.1) cant 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. 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. 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. 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. 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. 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. 47. Örnek kurulum adım 8 ● Hadoop ile ilgili ortam değişkenleri conf/hadoop-env. sh dosyasında bulunur export JAVA_HOME=/usr/java/jdk export HADOOP_HEAPSIZE=512 export HADOOP_HOME_WARN_SUPPRESS="TRUE"
  48. 48. Örnek kurulum adım 9 ● .bash_profile ya da .bash_rc dosyalarında $PATH değişkeni ayarlanmalıdır JAVA_HOME=/usr/java/jdk PATH=$PATH:$JAVA_HOME/bin HADOOP_HOME=/usr/java/hadoop PATH=$PATH:$HADOOP_HOME/bin
  49. 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. 50. Gündem● Big Data (Dev veri)● Hadoop● HDFS● MapReduce● Hadoop Kurulum● Küme Yapısı● Hadoop Ekosistemi
  51. 51. Küme Yapısı ● Hadoop kümesini durdurup başlatmak için bin klasörü altındaki scriptler 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. 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. 53. NameNodeAna (master) düğümdür ● Hangi blok, hangi dosya nerededir takip eder ● Her türlü dosya işleminden sorumludur ● Veri değil sadece metadata saklar ● Her zaman ayakta olmak zorundadırNameNode çalışmaz ise tüm küme çalışmaz hale gelir ● Hızlı erişim açısından verileri hafızada tutar ● Çökmeye karşı diske bilgileri senkronize eder ● Bu verileri mutlaka yedeklenmelidir
  54. 54. SecondaryNameNodeNameNode yedeği değildir! ● Sadece NameNode tarafından yapılmayan bazı görevleri yerine getirir
  55. 55. DataNodeVerilerin bulunduğu düğümdür ● Blok halinde dosyaları saklar ● Yedekli olduğu için kapanması halinde veri kaybı yaşanmaz ● Veriler bu düğümlerde olduğu için analiz işlemleri 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. 56. JobTracker MapReduce işlerini takip eder ● NameNode gibi tektir ● İstemciler MapReduce işlerini JobTrackera gönderir ● İşleri diğer 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ı işi yapan birden fazla iş parçacığı çalıştırabilir
  57. 57. TaskTracker MapReduce işlemlerini ç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ı JobTrackera iletir
  58. 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
  59. 59. NameNode Arayüzü
  60. 60. JobTracker Arayüzü
  61. 61. Gündem● Big Data (Dev veri)● Hadoop● HDFS● MapReduce● Hadoop Kurulum● Küme Yapısı● Hadoop Ekosistemi
  62. 62. Hadoop EcosystemHadoop çatısı altında birçok proje barınır● Hive● Pig● HBase● Mahout● Impala● Diğerleri: Sqoop, Flume, Avro, Zookeeper, Oozie, Cascading...
  63. 63. Hive● Facebook tarafından geliştirilmiştir● SQL benzeri HiveQL dili ile Java kullanmadan MapReduce uygulamaları yazılmasını sağlar● Ö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. 64. Pig ● Yahoo tarafından geliştirilmiştir ● MapReduce yazmak için "DataFlow" dili olarak adlandırılan, SQLden farklı kendine özgü PigLatin dili kullanılır ● Join destekler, daha kolay ve performanslı MapReduce programaları yazmayı sağlar ○ A = LOAD companies.csv USING PigStorage() AS (productId:int, productName:chararray); B = FILTER A BY productId > 3; C = FOREACH B GENERATE *; DUMP C;
  65. 65. HBase● Hadoop üzerinde çalışan NoSQL veritabanıdır● Google Big Table örnek alınarak geliştirilmiştir● Esnek şema yapısı ile binlerce kolon, petabytelarca satırdan oluşan veriyi saklayabilir● HDFS üzerinde çalıştığından MapReduce destekler● Veriye erişiminde bazı kısıtlar vardır● Verilere anahtar üzerinden ya da partial table scan ile erişilebilir● İkincil indeks, karmaşık sorgu çalıştırma desteği yoktur
  66. 66. Mahout● Hadoop üzerinde çalışabilen Machine Learning algoritmalarını içeren bir kütüphanedir● Recommendation● Clustering● Classification
  67. 67. Impala ● Google Dremel (2010) projesinden esinlenmiştir ● Cloudera tarafından geliştirilmiştir ● MapReduce yapmadan verilere direkt erişir ● HiveQL destekler, 7-45 kat daha hızlı çalışır
  68. 68. Sorular ?
  69. 69. DevVeri.com Hakkında Big Data, Search, NoSQL her türlü yazılarınızı bekliyoruz!
  70. 70. Kaynaklarhttp://hadoop.apache.orghttp://www.cloudera.comhttp://www-01.ibm.com/software/data/bigdata/http://en.wikipedia.org/wiki/Google_File_Systemhttp://en.wikipedia.org/wiki/MapReducehttp://en.wikipedia.org/wiki/BigTablehttp://www.evolven.com/images/stories/blog/blog_infographic_big_data_autonomy-big-data.jpghttp://architects.dzone.com/articles/big-data-rich-compendium-bighttp://devveri.com
  71. 71. Teşekkürler!

×