140 likes | 257 Views
P OUŽITIE MAPREDUCE ARCHITEKTÚRY NA SPRACOVANIE VEĽKÝCH INFORMAČNÝCH ZDROJOV. Martin Šeleng, Michal Laclavík, Ladislav Hluchý Ústav Informatiky Slovenská akadémia vied. Obsah. Úvod Architektúra Distribuovan ý súborový systém (GFS a HDFS) MapReduce framework (Google a Hadoop)
E N D
POUŽITIEMAPREDUCE ARCHITEKTÚRY NASPRACOVANIE VEĽKÝCHINFORMAČNÝCHZDROJOV Martin Šeleng, Michal Laclavík, Ladislav Hluchý Ústav Informatiky Slovenská akadémia vied
Obsah • Úvod • Architektúra • 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 • Záver Smolenice, 6-7.11.2008
Úvod • Architektúra • 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 Smolenice, 6-7.11.2008
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 • Kluster 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í Smolenice, 6-7.11.2008
Distribuovaný súborový systém (GFS a HDFS) • Master/Slave architektúra GFS (Google File System) Smolenice, 6-7.11.2008
Distribuovaný súborový systém (GFS a HDFS) • Master/Slave architektúra HDFS (Hadoop Distributed File System) • Replikácia blokov dát Smolenice, 6-7.11.2008
MapReduce framework (Google a Hadoop) • Spustenie a vykonanie procesu v prostredí MapReduce (Google) Smolenice, 6-7.11.2008
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. Smolenice, 6-7.11.2008
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 Smolenice, 6-7.11.2008
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, one); } } • 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)); } Smolenice, 6-7.11.2008
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 Smolenice, 6-7.11.2008
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 Smolenice, 6-7.11.2008
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]] Smolenice, 6-7.11.2008
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 Smolenice, 6-7.11.2008