Valdas Vaivaras sban.com Distributed computing  su  Hadoop
Problema Nr. 1 Didelės apimties informaciją. Nuskaitymas ir įrašymas į kietąjį diską daug lėtesnis negu duomenų apdorojimo sparta.
Sprendimas Vietoj vieno HDD naudoti  100, 1000… 1 HDD   –   75Mb/s 1000 HDD   –   75Gb/s Procesas prie duomenų, o ne duomenys prie proceso.
Problema Nr. 2 Reikia parašyti ne tik pačia aplikaciją, bet ir duomenų paskirstymo aplikaciją. Taigi, reikia būti dviejų sričių specialstu.
Kas yra Hadoop? Hadoop  yra atviro-kodo Google MapReduce implementacija, kurią sukūrė Apache. Naudojant Hadoop,  high-level programuotoju i  nereikia gilitnis į paskirst ymo  sistemą   (distributed computing) .
Šiuo metu Hadoop naudoja daugybė stambių įmonių, tarp kurių tokios kaip: Facebook, Amazon,Yahoo, IBM, veoh... Naudojama: Log ų procesingas Interneto crawlinimas ir indeksavimas Data warehousingas Pagrindiniai algoritmai: Entity-Reduce Sort Join Inverted Index
Hadoop failų sistema (HDFS)  Slave Node Slave Node Slave Node Slave Node Slave Node Client HDFS Slave Node Master Node
MapReduce MapReduce programa apdoroja duomenis esančius HDFS. MapReduce užduotį atlieka per du etapus Map ir Reduce.  Kiekviename etape naudojama rakto ir reikšmės (key-value) įvestis ir įšvestis.
MAP map (in_key, in_value) -> (out_key, intermediate_value) list
Pavyzdys: Explode Mapper let  map (k, v) = foreach char  c  in  v: emit  ( c ,  1 ) (“A”, “bar”)    (“b” ,1 ), (“a” ,1 ), (“r” ,1 ) (“B”, “camp”)     (“c” ,1 ), (“a” ,1 ),      (“m” ,1 ), (“p” ,1 )
REDUCE reduce (out_key, intermediate_value list) -> out_value list
Pavyzdys : Sum Reducer let  reduce(k , vals ) = sum = 0 foreach int  v  in  vals: sum += v emit (k, sum) ( “a” [1,1] )     (“ a ”,  2 )   (“ m ”, [ 1 ])    (“ m ”,  1 ) (“ b ”, [ 1 ])     (“ b ”,  1 )  (“ p ”, [ 1 ])    (“ p ”,  1 ) (“ c ”, [ 1 ])     (“ c ”,  1 )   (“ r ”, [ 1 ])     (“ r ”,  1 )
DEMO

Hadoop

  • 1.
    Valdas Vaivaras sban.comDistributed computing su Hadoop
  • 2.
    Problema Nr. 1Didelės apimties informaciją. Nuskaitymas ir įrašymas į kietąjį diską daug lėtesnis negu duomenų apdorojimo sparta.
  • 3.
    Sprendimas Vietoj vienoHDD naudoti 100, 1000… 1 HDD – 75Mb/s 1000 HDD – 75Gb/s Procesas prie duomenų, o ne duomenys prie proceso.
  • 4.
    Problema Nr. 2Reikia parašyti ne tik pačia aplikaciją, bet ir duomenų paskirstymo aplikaciją. Taigi, reikia būti dviejų sričių specialstu.
  • 5.
    Kas yra Hadoop?Hadoop yra atviro-kodo Google MapReduce implementacija, kurią sukūrė Apache. Naudojant Hadoop, high-level programuotoju i nereikia gilitnis į paskirst ymo sistemą (distributed computing) .
  • 6.
    Šiuo metu Hadoopnaudoja daugybė stambių įmonių, tarp kurių tokios kaip: Facebook, Amazon,Yahoo, IBM, veoh... Naudojama: Log ų procesingas Interneto crawlinimas ir indeksavimas Data warehousingas Pagrindiniai algoritmai: Entity-Reduce Sort Join Inverted Index
  • 7.
    Hadoop failų sistema(HDFS) Slave Node Slave Node Slave Node Slave Node Slave Node Client HDFS Slave Node Master Node
  • 8.
    MapReduce MapReduce programaapdoroja duomenis esančius HDFS. MapReduce užduotį atlieka per du etapus Map ir Reduce. Kiekviename etape naudojama rakto ir reikšmės (key-value) įvestis ir įšvestis.
  • 9.
    MAP map (in_key,in_value) -> (out_key, intermediate_value) list
  • 10.
    Pavyzdys: Explode Mapperlet map (k, v) = foreach char c in v: emit ( c , 1 ) (“A”, “bar”)  (“b” ,1 ), (“a” ,1 ), (“r” ,1 ) (“B”, “camp”)  (“c” ,1 ), (“a” ,1 ),  (“m” ,1 ), (“p” ,1 )
  • 11.
    REDUCE reduce (out_key,intermediate_value list) -> out_value list
  • 12.
    Pavyzdys : SumReducer let reduce(k , vals ) = sum = 0 foreach int v in vals: sum += v emit (k, sum) ( “a” [1,1] )  (“ a ”, 2 ) (“ m ”, [ 1 ])  (“ m ”, 1 ) (“ b ”, [ 1 ])  (“ b ”, 1 ) (“ p ”, [ 1 ])  (“ p ”, 1 ) (“ c ”, [ 1 ])  (“ c ”, 1 ) (“ r ”, [ 1 ])  (“ r ”, 1 )
  • 13.