1 / 26

Use of MapReduce for Data/Information Processing Experiments

Use of MapReduce for Data/Information Processing Experiments. Michal Laclavík, Martin Šeleng. Obsah. Úvod, Google 1998 Architektúra, Google 2004 Distribuovan ý súborový systém (GFS a HDFS) MapReduce framework (Google a Hadoop) Distribuovaná databáza (BigTable a HBase)

nevaeh
Download Presentation

Use of MapReduce for Data/Information Processing Experiments

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Use of MapReduce for Data/Information Processing Experiments Michal Laclavík,Martin Šeleng

  2. Obsah • Úvod, Google 1998 • Architektúra, Google 2004 • Distribuovaný súborový systém (GFS a HDFS) • MapReduce framework (Google a Hadoop) • Distribuovaná databáza (BigTable a HBase) • Ukážka programu spracovávaného v MapReduce klusteri • MapReduce ako experimentálne prostredie • Záver • Hadoop príkazy Bratislava, 4. marca 2009

  3. http://google.stanford.edu/ 518 miliónov liniek 24 milionov webstranok TREC = 20GB, 147GB = Google, 1998 Disk seek – 10ms 66 hodin pri 24 mil. stranok Now MapReduce 200 000+ PCs Google Architektúra 1998 Bratislava, 4. marca 2009

  4. Úvod • Architektúra • Disk seek stále pomalý => potreba triedenia dát =>indexy, utriedené asociatívne polia • spôsob distribuovania dát, • množstvo a spôsob replikácie dát, • spôsob (framework) paralelného spracovania, • množstvo a typ uzlov, na ktorých bude spracovanie prebiehať, • jednoducho škálovateľný systém, ktorý by bol efektívny a spoľahlivý. • Existujúce systémy na spracovanie veľkého množstva informácií • Parallel Virtual Machine (PVM) • Message Passing Interface (MPI) • Condor - High Throughput Computing (HTC) • Gridové riešenia Bratislava, 4. marca 2009

  5. Architektúra • Google idea • dvojjadrové x86 procesory, beží na nich operačný systém Linux a majú 2-4GB pamäte • sieťové pripojenie s rýchlosťou 100Mb/s • Kláster pozostáva zo stoviek až tisícok pracovných staníc • disky s IDE rozhraním • Používateľ posiela do systému procesy, ktoré plánovač rozdelí na voľné pracovné stanice a spustí Bratislava, 4. marca 2009

  6. MapReduce princíp • Ako Unix pipeline: Bratislava, 4. marca 2009

  7. Výhody MapReduce • Vývojár nemusí rozumieť a debugovať paralelné prostredie • Implementuje metódy Map a Reduce • Architektúra si sama zabezpečuje manažment výpadkov nodov ako aj replikáciu a dostupnosť dát • Architektúra postavená na bežných PC. • Medzi bežiacimi úlohami neprebieha komunikácia ako napr v PVM alebo MPI • Výpočet ide k dátam. Dáta majú viac replík a architektúra ich má utriedené teda vie okamžite rozhodnúť kde sa čo spustí • Vstupy a výstupy metód sú asociatívne polia kľúč-hodnota. Je to tak preto aby bolo možné dáta utriediť podľa kľúčov. • Možnosť zreťazenia Map alebo Reduce úloh a teda aj vhodné rozdeľovanie zložitejších problémov • Google tvrdí že 98% výpočtových úloh je možné previesť na MapReduce • Aj keď výsledný MapReduce algoritmus bude menej efektívny, sila distribuovaného prostredia to pretlačí ... Bratislava, 4. marca 2009

  8. MapReduce implementácia • Hadoop • Apache projekt vychádzajúci z lucene a Nutch • http://wiki.apache.org/hadoop/HadoopPresentations • Users: Yahoo!, Facebook, … • Spúštanie Java a C úloh. • DISCO • Implementácia od Nokie v Erlang, • Spúštanie Python úloh. • http://discoproject.org/ • Phoenix • C++, http://csl.stanford. edu/~christos/sw/phoenix Bratislava, 4. marca 2009

  9. Distribuovaný súborový systém - GFS • Master/Slave architektúra GFS (Google File System) Bratislava, 4. marca 2009

  10. Distribuovaný súborový systém - HDFS • Master/Slave architektúra HDFS (Hadoop Distributed File System) • Replikácia blokov dát Bratislava, 4. marca 2009

  11. MapReduce framework (Google a Hadoop) • Spustenie a vykonanie procesu v prostredí MapReduce Bratislava, 4. marca 2009

  12. MapReduce framework (Google a Hadoop) • Spustenie a vykonanie procesu v prostredí MapReduce (Hadoop) • Na uzle JobTracker sa spustí požadovaný proces, ktorý má naimplementované funkcie Map a Reduce. • JobTracker preskúma voľné uzly a podľa potreby (v závislosti od veľkosti vstupných dát) pridelí potrebné množstvo výpočtových uzlov (TaskTracker v závislosti od počtu jadier zvládne počítať 2 až 4 úlohy naraz). Súčasne je spustená aj úloha Reduce (v závislosti od množstva dát a uzlov sa môže spustiť aj viac úloh Reduce). • Po dokončení niektorej z  Map úloh sa jej výsledky prekopírujú na niektorý z uzlov, kde beží úloha Reduce. Výsledky sa utriedia a čaká sa na ukončenie všetkých úloh Map. • Po dokončení všetkých úloh Map sa spustia úlohy Reduce a po ich ukončení dostaneme utriedený zoznam párov kľúč/hodnota. Bratislava, 4. marca 2009

  13. Distribuovaná databáza (BigTable a HBase) • Ukážka tabuľky uloženej v systéme HBase (podobne BigTable) – konceptuálny pohľad • Ukážka tabuľky uloženej v systéme HBase – fyzické uloženie v HDFS Bratislava, 4. marca 2009

  14. Ukážka programu spracovávaného v MapReduce klusteri • Funkcia Map: public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { Text word = new Text(); String line = value.toString().toLowerCase(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); output.collect(word, 1); } } • Funkcia Reduce: public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) sum += values.next().get(); output.collect(key, new IntWritable(sum)); } Bratislava, 4. marca 2009

  15. References • J. Dean and S. Ghemawat. MapReduce: Simplified DataProcessing on Large Clusters. In OSDI, pages137-150, 2004. • Slides available:http://labs.google.com/papers/mapreduce-osdi04-slides/index.html • There is new version from 2007 • Hung-chih Yang, Ali Dasdan, Ruey-Lung Hsiao, D. Stott Parker:Map-Reduce-Merge: Simplified Relational Data Processing on Large Clusters, ACM, http://portal.acm.org/citation.cfm?doid=1247480.1247602Presentation: http://cs.baylor.edu/~speegle/5335/2007slides/MapReduceMerge.pdf • A. Kimball, Problem Solving on Large-Scale Clusters. Lecture given on July 3, 2007. Available at http://www.youtube.com/watch?v=-vD6PUdf3Js • MapReduce/Hadoop for Semantic Web? • http://www.eyaloren.org/slides/2008/02/sw-hadoop/ • http://feeds.openacademic.org/node/4802 • Lucene-hadoop Wiki, HadoopMapReduce, http://wiki.apache.org/lucene-hadoop/HadoopMapReduce, (2008) • Open Source Distributed Computing: Yahoo's Hadoop Support, Developer Network blog, http://developer.yahoo.net/blog/archives/2007/07/yahoo-hadoop.html, (2007) • Yahoo! Launches World's Largest Hadoop Production Application, Yahoo! Developer Network, http://developer.yahoo.com/blogs/hadoop/2008/02/yahoo-worlds-largest-production-hadoop.html, (2008) Bratislava, 4. marca 2009

  16. MapReduce ako experimentálne prostredie

  17. Web • Možnosť inštalovať Nutch založený na Lucene pod MapReduce/Hadoop • Možnosť stiahnutia, indexácie a fultextového vyhľadávania v stránkach (napr. slovenský web, wikipedia) • Možnosť dorobiť pluginy do Nutch • Využitie liniek medzi dokumentami • Navigácia, rankovacie algoritmy, ... • Využitie textu na experimenty • Extrakcia informácii, sémantická anotácia, sumarizácia textov... • Triedenie pri vyhľadávaní • Vlastné algoritmy napr. podľa modelu používateľa .... Bratislava, 4. marca 2009

  18. Log súbory • Logy • Prenesené dáta, komunikujúce strany, spam, nedoručené, grupovanie po serveroch, organizáciách, krajinách, časová analýza, IP • Email server logy • Web server logy • Dáta zo senzorov • Transakčné dáta • Map hľadá pár kľúč - hodnota v dátach • Počty sa ľahko grupujú v Reduce metóde. • Prenesené dáta • Počet komunikácií medzi komunikujúcimi stranami Bratislava, 4. marca 2009

  19. Emaily • Vo formáte Mbox - možnosť spracovania emailov ako súrobov • Veľké súbory • Inak je potrebné previesť emaily do hbase a dať im nejaký kľúč napr. message-id • Možnosti spracovania • Sociálna sieť, sumarizácia emailov, sémantická anotácia, extrakcia, indexovanie a vyhľadávanie • Na UI SAV chceme vytvoriť email korpus na spôsob MarkMail • 2+ milióny emailov z mailinglistov • Zatiaľ v štádiu príprav • Boli vykonané nejaké experimenty Bratislava, 4. marca 2009

  20. Kolekcie dokumentov • Doc, PDF, HTML, .... • Predspracovanie, konverzia na text • Vloženie do HBase • Možnosť spracovania a overovania metód a algoritmov Bratislava, 4. marca 2009

  21. Záver • Architektúra kde môže nad rovnakými veľkými dátami experimentovať množstvo ľudí • Vývoj metód a algoritmov a ich odladenie na PC bez znalosti distribuovanej architektúry. • Netreba riešiť: prístup k dátam, fault tolerance architektúry • Treba: Naprogramovať Map a Reduce metódy kde vstupmi a výstupmi sú asociatívne polia • Overenie, vyhodnotenie, testovanie metód a algoritmov na veľkých dátach na MapReduce clusteri. • Pri MapReduce teda nejde o výskum v distribuovaných architektúrach ale o uľahčenie výskumu spracovania dát a informácií Bratislava, 4. marca 2009

  22. Hadoop, HBase príkazy

  23. Príkazy v prostredí Hadoop a HBase • bin/hadoop • namenode -format format the DFS filesystem • secondarynamenode run the DFS secondary namenode • namenode run the DFS namenode • datanode run a DFS datanode • dfsadmin run a DFS admin client • fsck run a DFS filesystem checking utility • fs run a generic filesystem user client • balancer run a cluster balancing utility • jobtracker run the MapReduce job Tracker node • pipes run a Pipes job • tasktracker run a MapReduce task Tracker node • job manipulate MapReduce jobs • version print the version • jar <jar> run a jar file • distcp <srcurl> <desturl> copy file or directories recursively • daemonlog get/set the log level for each daemon Bratislava, 4. marca 2009

  24. Príkazy v prostredí Hadoop a HBase • bin/hbase • Shellrun the Hbase shell • master run an Hbase HMaster node • regionserver run an Hbase HRegionServer node • rest run an Hbase REST server • thrift run an Hbase Thrift server • migrate upgrade an hbase.rootdir Bratislava, 4. marca 2009

  25. Príkazy v prostredí Hadoop a HBase • Operácie HDFS - /bin/hadoop fs • [-ls <path>] • [-lsr <path>] • [-du <path>] • [-dus <path>] • [-mv <src> <dst>] • [-cp <src> <dst>] • [-rm <path>] • [-rmr <path>] • [-expunge] • [-put <localsrc> <dst>] • [-copyFromLocal <localsrc> <dst>] • [-moveFromLocal <localsrc> <dst>] • [-get [-crc] <src> <localdst>] • [-getmerge <src> <localdst> [addnl]] • [-cat <src>] • [-text <src>] • [-copyToLocal [-crc] <src> <localdst>] • [-moveToLocal [-crc] <src> <localdst>] • [-mkdir <path>] • [-setrep [-R] [-w] <rep> <path/file>] • [-touchz <path>] • [-test -[ezd] <path>] • [-stat [format] <path>] • [-tail [-f] <file>] • [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] • [-chown [-R] [OWNER][:[GROUP]] PATH...] • [-chgrp [-R] GROUP PATH...] • [-help [cmd]] Bratislava, 4. marca 2009

  26. Príkazy v prostredí Hadoop a HBase • HBase Shell • SHOW tables; • DROP table; • SELECT data: FROM emails_data WHERE row='1_IR_2'; • … • Spustenie MapReduce úlohy v Hadoop klusteri • bin/hadoop jar name,jar [parameters] input output • bin/hadoop jar hadoop-0.16.4-examples.jar wordcount /home/enron /home/out Bratislava, 4. marca 2009

More Related