HADoop

Mini tutorial







Piotr Przetacznik
Bartłomiej Szczepanik

Idea projektu





"In pioneer days they used oxen for heavy pulling,  and when one ox couldn't budge a log,  they didn't try to grow a larger ox.  We shouldn't be trying for biger computers,  but for more systems of computers."  - Grace Hopper

hadoop - fakty


  • Licencja Apache Commons
  • Problem skalowalności aplikacji data-intensive
    • skalowanie poziome, nie pionowe
  • Hadoop jako ekosystem

podstawowe idee


  • GFS - specyfikacja rozproszonego
    systemu plików (Google)
  • Map Reduce

Problemy rdbmsów

  • Abstrakcja warstwy fizycznej
  • Normalizacja, 12 zasad Codda
  • Warunki integralnosci
  • ACID
  • tranzakcyjnosc
  • triggery

Hadoop - inne podejscie

Abstrakcja infrastruktury zamiast 
warstwy fizycznej

  • rozkład zadań
  • rozkład danych
  • replikacja
  • wysoka dostępność
  • nadzorowanie maszyn
  • dołączanie maszyn on-line
Wady - Cos za cos


  • brak abstrakcji warstwy fizycznej
  • częsciowo rozwiazywany przez
    narzędzia takie jak Hive, HBase, Pig

MAp reduce - idea


funkcja map


  • dane: [1,2,3,4,5]
  • funkcja: f(x) = x^2
  • wynik: [1,4,9,16,25]

funkcja reduce

  • dane: [1,3,6,2,4]
  • funkcja: f(x, y) = x + y

  • suma = f(f(f(f(1, 3), 6), 2), 4)
  • suma = f(f(f(1,3),6),f(2,4))

funkcja map w hadoop


map: list<key,value> -> list<key, value>

Input:
file1: "hello world hello moon"
file2: "goodbye world goodnight moon"

Ouput:
<hello, 1>; <world, 1>;  <hello, 1>; <world, 1>
<goodbye, 1>; <world, 1>; <goodnight, 1>; <moon, 1>

Funkcja reduce w hadoop

reduce: key, list<value> -> list<key, value>
reduce: key, list<value> -> key, value

Input:
<hello, [1, 1]>; <world, [1,1]>; <moon, [1,1]>
<goodbye, [1]>; <goodnight, [1]>; 

Ouput:
<hello, 2>; <world, 2>; <moon, 2>;
<goodbye, 1>; <goodnight, 2>


Hadoop - ekosystem


  • Common
  • Avro
  • Map Reduce
  • HDFS
  • Pig
  • Hive
  • HBase
  • ZooKeeper
  • Sqoop

HADoop

By mequrel

HADoop

  • 1,651