Hadoop @ devveri.com

  • View
    5.488

  • Download
    1

Embed Size (px)

DESCRIPTION

devveri.com Hadoop sunumu

Transcript

  • 1. Hadoop devveri.com Aralk 2012 v1.3

2. Hakkmda Marmara ni. Elektronik Software Development Supervisor@ Gitti Gidiyor / eBay 12+ yl yazlm tecrbesi Java, C, C++, C# Big Data, Search, NoSQL Hakan lter hilter@ebay.com twitter: devvericomhttp://tr.linkedin.com/in/hakanilter/ 3. Gndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum Kme Yaps Hadoop Ekosistemi 4. Dev Veri 5. Dev Veri 6. Dev Veri NedirTeknoloji > Internet > Sosyal Medya > Mobil > ...Dnyadaki verilerin %90lk ksm son iki ylda toplandYaplandrlm (structured) ve Yaplandrlmam(unstructured) verilerden meydana gelir Yaplandrlm veriler: rn, kategori, mteri,fatura, deme... Yaplandrlmam veriler: tweet, paylam, beeni(like), e-posta, video, tklama...%10 Yaplandrlm, %90 Yaplandrlmam 7. Dev Verinin 3 BoyutuByklk (Volume) Facebook 70+PB, eBay 5+PBHz (Velocity) Twitterda hergn 12TB twit atlyoreitlilik (Variety) Metin, sensr verileri, ses, grnt, log dosyalar 8. Dev Veri 9. Dev Verinin nemi Bu kadar veri tek bana bir anlam ifade etmiyor nemli olan Dev Veri ierisinde saklanm olan bilgiyi ortaya kartp yaptmz ii daha iyi anlamak, belki de gelecei tahmin etmeye almak Bu gerekletirildiinde; Mutlu mteriler Daha fazla kazan Dolandrclkta azalma Daha salkl insanlar ... 10. Geleneksel Sistemlerin Problemleri RDBMS Greceli olarak kk boyutta veri, yaplandrlmam verilere uygun deil Donanm limitleri Daha fazla CPU, daha fazla RAM, daha fazla Disk = Daha fazla Maliyet Yazlmsal karmaklk Senkronizasyon, bant genilii, eriilebilirlik, hata tolerans 11. Peki ya gerek problem? Gerek problem: Veriyi ilemciye ulatrabilmek! 100GB boyutundaki bir veriyi tipik bir disk ile (~75 MB/sn) aktarmakyaklak 22 dakika! 12. Yeni bir yaklam leklenebilir Tutarl Veri Garantili Eriilebilir 13. Kim zd? Google File System (2003) MapReduce (2004) Big Table (2006) 14. ve Hadoop! Veri ileme amal datk uygulamalar yazlmasn salayan bir platform ve ak kaynakl bir Apache projesidir. 15. Gndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum Kme Yaps Hadoop Ekosistemi 16. Neden Hadoop EsnekHer trl veriyi saklayp analizini yapabilir leklenebilirBinlerce dm bir araya getirilebilir EkonomikAk kaynakl, "commodity" donanmda alabilir 17. Nerede? 18. Nerede? 19. Gitti Gidiyorda Hadoop lgili dier aramalar Nokkia aratlm ama Nokia olarak dzeltilmiNokiakelimesiyledaha ilgiliolduu iin Ceptelefonukategorisi dahastte yer alyor 20. Gitti Gidiyorda Hadoop"Metallica" ile ilgili dier aramalarMobil uygulama ana sayfadakiiselletirilmi rn gsterimi Autocomplete verisi 21. Kimler kullanyor? 22. Hadoopki ana bileenden oluur Hadoop Distributed File System (HDFS) MapReduce 23. Gndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum Kme Yaps Hadoop Ekosistemi 24. HDFSVerinin saklanmasndan sorumludur Datk bir dosya sistemidir Veriyi 64MB ya da 128MBlk bloklar halinde saklar Her blok kme ierisinde farkl dmlere datlr Her bloun varsaylan 3 kopyas tutulur Bu sayede verinin eriilebilirlii ve gvenilirliisalanm olur Ayn dosyaya ait bloklar farkl dmlerde olabilir 25. HDFS Normal dosya sistemi zerinde alr: ext3, ext4, xfs Byk miktarda veri iin yedekli depolama salar Dk maliyetli sunucular zerinde almaya uygundur Kk ok dosya yerine byk daha az dosya tutulmaldr Ortalama bir dosya 100MB civar olmaldr Rastlantsal eriim yoktur (write once) Byk ve duraksz (streaming) veri eriimine greoptimize edilmitir 26. HDFSBloklarn dmler zerine dalm rnei blok 1 blok 2 blok 3 blok 4 blok 3blok 2 Data Node 1 Data Node 2 blok 3 blok 4 blok 4 blok 1 blok 1blok 2 Data Node 3 Data Node 4 27. HDFS EriimiHDFS zerindeki verilere konsol zerinden hadoop fskomutu ile eriilebilir:hadoop fs -ls Dosyalar listelerhadoop fs -mkdir Klasr olutururhadoop fs -put Lokalden HDFSe dosya kopyalarhadoop fs -get HDFSden lokale dosya kopyalarhadoop fs -cat Dosya ieriini konsola basarhadoop fs -rmr Dosyay siler 28. Gndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum Kme Yaps Hadoop Ekosistemi 29. MapReduceVeriyi ileme yntemidir Fonksiyonel programlamadan esinlenilmitir Map ve Reduce birer fonksiyondur Map fonksiyonu ile veri ierisinden istenilen verileranahtar-deer formatnda seilir Reduce fonksiyonu ile de seilen bu verilerzerinde ilem yaplr, sonu yine anahtar-deerolarak iletilir Map ve Reduce arasnda Shuffle ve Sort aamalarvardr 30. MapReduceDaha kolay anlalabilir olmas iin SQLe benzetmekgerekirse; WHERE ile yaplan filtreleme gibi Map aamasnda sadece ihtiyacmz olan veriler seilir Reduce aamasnda ise SUM, COUNT, AVG gibi birletirme ilemleri yaplr 31. MapReduce Map aamasndaki ilemler kme zerinde paralel olarak alr Bu sayede kmenin byklne gre veriler hzl bir ekilde ilenebilir hale gelmi olur Her i parac verinin belirli bir parasn iler paracklar mmknse zerinde alt dmdeki verileri iler. Buna Data Localization denir 32. MapReduceMapReduce ile ak rnei 33. MapReduce Uygulama gelitirilirken sadece Map ve Reduce metodlar yazlr, geri kalan ileyi otomatik gerekleir Hadoop tamamen Java ile gelitirildii iin MapReduce uygulamalar Java ile yazlr, jar olarak paketlenir Streaming zellii sayesinde Python, C++, Php gibi farkl dillerde de kullanlabilir 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. Word CountReduce Metodupublic void reduce(Text key, Iterable values, Context context)throws IOException, InterruptedException{int sum = 0;for (IntWritable value : values) { sum += value.get();}context.write(key, new IntWritable(sum));} 36. Word CountTool snf metodlarpublic int run(String[] args) throws Exception{if (args.length != 2) {System.err.printf("Usage: %s [generic options] 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 CountMapReduce programn altrma$ hadoop jar $ 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. Gndem Big Data (Dev veri) Hadoop HDFS MapReduce Hadoop Kurulum Kme Yaps Hadoop Ekosistemi 39. Hadoop Kurulumu Apache srm dnda Cloudera, Hortonworks gibifirmalarn datmlar da kullanlabilir Farkl srmleri 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 Kme olarak (full cluster) ya da tek sunucuya (pseudo-distributed) kurulabilir deb, rpm veya tarball olarak indirilip kurulabilir 40. rnek kurulum adm 1 JDK 1.6, openssh-server ve rsync sistemde olmal$ sudo apt-get install ssh$ sudo apt-get install rsync 41. rnek kurulum adm 2 Sunucular aras ifresiz balant gerekir$ ssh localhostThe authenticity of host localhost (127.0.0.1) cant beestablished.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)? yesssh-keygen -t dsa -P-f ~/.ssh/id_dsacat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 42. rnek kurulum adm 3 Kurulumun yaplaca klasrler ayarlanr$ sudo mkdir /usr/java$ sudo chown -R devveri:devveri /usr/java$ mkdir /usr/java/hadoop-data 43. rnek kurulum adm 4 Apache sunucusundan son srm 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 adm 5 Kme ile ilgili genel ayarlar conf/core-site.xmldosyasnda bulunurfs.default.namehdfs://localhost:9000hadoop.tmp.dir/usr/java/hadoop-data 45. rnek kurulum adm 6 HDFS ile ilgili ayarlar conf/hdfs-site.xml dosyasierisinde bulunurdfs.replication1 46. rnek kurulum adm 7 MapReduce ile ilgili ayarlar conf/mapred-site.xmldosyas ierisin