Apache Hadoop. Wolna implementacja GFS, MapReduce oraz Big Table. Michał Jaszczyk

Podobne dokumenty
Architektura rozproszonych magazynów danych

Apache Hadoop framework do pisania aplikacji rozproszonych

Bigtable Rozproszony system pamięci

HADOOP Dariusz Ż bik

PLNOG#10 Hadoop w akcji: analiza logów 1

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Wstęp Bigtable - opis Wydajność. SZBD Bigtable. Kamil Anikiej. Uniwersytet Warszawski 9 X 2008

Programowanie obiektowe

JAX-RS czyli REST w Javie. Adam Kędziora

Wprowadzenie do optymalnego wykorzystania MapReduce

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

MapReduce. Janina Mincer-Daszkiewicz Systemy rozproszone. MSUI, II rok

Wywoływanie metod zdalnych

Java: interfejsy i klasy wewnętrzne

Enkapsulacja, dziedziczenie, polimorfizm

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Map Reduce Wprowadzenie do Apache Hadoop

Bezpieczne uruchamianie apletów wg

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Remote Method Invocation 17 listopada 2010

Podejście obiektowe do budowy systemów rozproszonych

Aplikacje RMI

Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski

Wywoływanie metod zdalnych


Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Programowanie obiektowe

Tworzenie i wykorzystanie usług

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Definicja. Not Only SQL

Klasy abstrakcyjne, interfejsy i polimorfizm

akademia androida Składowanie danych część VI

Dokumentacja do API Javy.

Podstawy obiektowości

Polimorfizm. dr Jarosław Skaruz

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

Zaawansowany kurs języka Python

Kurs programowania. Wykład 9. Wojciech Macyna

Wprowadzenie do Hurtowni Danych

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Języki i metody programowania Java. Wykład 2 (część 2)

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Programowanie rozproszone w języku Java

Wykład 7: Pakiety i Interfejsy

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

JPaxos. Java library for state machine replication

Architektura i mechanizmy systemu

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Inteligentny czujnik w strukturze sieci rozległej

METODY PROGRAMOWANIA

Aplikacje RMI Lab4

Aplikacje w środowisku Java

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Informacje organizacyjne:

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Tomasz Dobek.

Zadanie 2: transakcyjny protokół SKJ (2015)

Komunikacja z użyciem gniazd aplikacje klient-serwer

WebNotarius. Specyfikacja techniczna komunikacji z usługą WebNotarius. wersja 1.1

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Google File System II. Marek Dzikiewicz

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Klasy abstrakcyjne i interfejsy

Searching for SNPs with cloud computing

Hadoop i Spark. Mariusz Rafało

Programowanie obiektowe

Distributed Hash Tables i ich zastosowania

Programowanie obiektowe

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Jakarta POI. POIFS obsługa dokumentów OLE 2, HSSF dokumenty w formacie Excel'a, HWPF proste dokumenty w formacie Word 97,

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Podstawy Programowania

Android, wprowadzenie do SDK

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Komponenty sterowane komunikatami

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

REST API w module kontrolera Floodlight. Implementacja kolektora statystyk OpenFlow.

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

Programowanie obiektowe

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Pakiety i interfejsy. Tomasz Borzyszkowski

Programowanie obiektowe zastosowanie języka Java SE

Git, Bitbucket, IntelliJ IDEA

Transkrypt:

Co to jest Hadoop? Trochę historii Wolna implementacja GFS, oraz Big Table Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Seminarium Systemów Rozproszonych 6 listopada 2008

Co to jest Hadoop? Trochę historii

Hadoop - części składowe Co to jest Hadoop? Trochę historii - rozproszony system plików - framework do obliczeń rozproszonych HBase - system zarzadzania baza danych Pig, ZooKeeper - dodatki

Trochę historii Co to jest Hadoop? Trochę historii The Google File System Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung, 2003 : Simplified Data Processing on Large Clusters Sanjay Ghemawat, Jeffrey Dean, 2004 BigTable: A Distributed Storage System for Structured Data Sanjay Ghemawat, Jeffrey Dean, Fay Chang, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber, 2006

Trochę historii cd. Co to jest Hadoop? Trochę historii 2006: Powstaje projekt Hadoop 2006-04-01: Wersja 0.1.0 2008-01-23: Hadoop staje się głównym projektem 2008-10-30: Wersja 0.18.2

Założenia Założenia Architektura Użytkowanie Odporność na awarie żelastwa Bardzo duże pliki Sekwencyjny dostęp do plików Prosty model dostępu do danych (zapisz raz, czytaj wiele razy) "Przenoszenie obliczeń jest prostsze niż przenoszenie danych" Przenośność

Cechy Założenia Architektura Użytkowanie Replikacja danych (domyślnie trzykrotna) Dostęp przez bibliotekę (trwaja prace nad FUSE) Nie spełnia specyfikacji POSIX Sa quota, ale na liczbę plików Standardowe drzewo katalogów Prawa dostępu typu rwx/ugo Nie ma snapshotów (trwaja prace)

Ogólny schemat Założenia Architektura Użytkowanie

Rodzaje węzłów Założenia Architektura Użytkowanie NameNode Punkt dostępowy dla klienta Zarzadza metadanymi (przestrzeń nazw, rozmieszczenie replik) Single point of failure (ale może być hot backup) DataNode Obsługuje zlecenia odczytu/zapisu bloków od klienta Okresowo wysyła do NameNode listę przechowywanych bloków

Założenia Architektura Użytkowanie Organizacja i replikacja danych Metadane na NameNode, dane na DataNode Metadane w formie dziennika transakcji, tzw. EditLog Może być zreplikowany Pliki podzielone na bloki wielkości 64MiB Bloki trzymane jako pliki w lokalnym systemie plików na DataNode ach

Założenia Architektura Użytkowanie Organizacja i replikacja danych cd. Domyślnie 3 repliki na blok, ale można zmienić NameNode decyduje o rozmieszczeniu replik Szafoświadomość Dwie repliki w jednej szafie, trzecia w innej Centroświadomość Optymalny wybór repliki do odczytu Rebalancing na podstawie ilości wolnego miejsca na dysku Staging (cache owanie po stronie klienta pierwszego bloku) Pipelining (DataNode y przy zapisie ustawiaja się w łańcuch) SafeMode

Użytkowanie Założenia Architektura Użytkowanie hadoop fs -get hdfs://nn.example.com/user/hadoop/fil hadoop fs -put localfile hdfs://nn.example.com/hadoo hadoop fs -ls hdfs://nn.example.com/user/hadoop/dir1 hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 hadoop fs -mv hdfs://nn.example.com/file1 hdfs://nn. hadoop fs -cat hdfs://nn1.example.com/file1 hadoop fs -rm hdfs://nn.example.com/file

Jak to działa Jak to działa Mapper Reducer Dodatki 1 Dane wejściowe sa dzielone na części 2 Części sa przydzielane do Mapperów 3 Mappery mapuja 4 Wyniki z Mapperów sa przesyłane do Reducerów 5 Reducery redukuja 6 Wyniki z Reducerów to wynik całego obliczenia

Jak to działa - obrazek Jak to działa Mapper Reducer Dodatki

Architektura Jak to działa Mapper Reducer Dodatki Job Tracker Przyjmuje zlecenia od użytkowników Single Point of Failure Nie ma recovery rozpoczętego obliczenia Rozdziela zadania do Task Trackerów Szafoświadomy Task Tracker Wykonuje pojedyńcze obliczenie Map lub Reduce Ma sloty, żeby sterować obciażeniem

Mapper - interfejs Jak to działa Mapper Reducer Dodatki public interface Mapper<K1,V1,K2,V2> extends JobConfigurable, Closeable { } public void map(k1 key, V1 val, OutputCollector<K2, V2> output, Reporter reporter ) throws IOException;

Mapper - przykład Jak to działa Mapper Reducer Dodatki public static class MyMapper extends Base implements Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(longwritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter ) throws IOException { } } String line = value.tostring(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasmoretokens()) { word.set(tokenizer.nexttoken()); output.collect(word, one); }

Reducer - interfejs Jak to działa Mapper Reducer Dodatki public interface Reducer<K2,V2,K3,V3> extends JobConfigurable, Closeable { } public void reduce(k2 key, Iterator<V2> values, OutputCollector<K3,V3> output, Reporter reporter ) throws IOException;

Reducer - przykład Jak to działa Mapper Reducer Dodatki public static class MyReducer extends Base implements Reducer<Text, IntWritable, Text, IntWritable> { 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));

Konfiguracja Jak to działa Mapper Reducer Dodatki JobConf InputFormat OutputKeyComparator Combiner Partitioner CompressionCodec OutputValueGroupingComparator OutputFormat

Nie lubię Javy Jak to działa Mapper Reducer Dodatki Hadoop Streaming Hadoop Pipes

HBase HBase Pig ZooKeeper HBase to dość wierna kopia BigTable.

Pig HBase Pig ZooKeeper Pig

ZooKeeper HBase Pig ZooKeeper ZooKeeper

Powered by Hadoop Powered by Hadoop Amazon S3 i EC2 Amazon A9 AOL Facebook Google :) IBM ImageShack Joost Last.fm New York Times Yahoo!

Amazon S3 i EC2 Powered by Hadoop Amazon S3 i EC2 S3 = Simple Storage Service Każdy może utworzyć swoje wiaderko Dostęp przez HTTP, REST lub SOAP Można hostować statyczna zawartość witryn WWW Opłaty per gigabajtomiesiac oraz transfer EC2 = Elastic Compute Cloud Każdy może zamówić sobie wirtualna maszynę Można robić to dynamicznie przez HTTP, REST lub SOAP Na wirtualnej maszynie można odpalać cokolwiek się chce Opłaty per maszynogodzinę

Pytania Pytania Koniec Pytania?

Koniec Pytania Koniec Koniec!