Деталі електронної книги

Hadoop. Komplety przewodnik. Analiza i przechowywanie danych

Hadoop. Komplety przewodnik. Analiza i przechowywanie danych

Tom White

Eлектронна книга

Analiza danych z Hadoopem — i wszystko staje się prostsze!

  • Podstawy Hadoopa i model MapReduce
  • Praca z Hadoopem, budowa klastra i zarządzanie platformą
  • Dodatki zwiększające funkcjonalność Hadoopa
Platforma Apache Hadoop to jedno z zaawansowanych narzędzi informatycznych. Dzięki niej można przeprowadzać różne operacje na dużych ilościach danych i znacznie skrócić czas wykonywania tych działań. Wszędzie tam, gdzie potrzebne jest szybkie sortowanie, obliczanie i archiwizowanie danych — np. w dużych międzynarodowych sklepach internetowych, serwisach społecznościowych lub wyszukiwarkach, takich jak Amazon, Facebook, Yahoo!, Apache Hadoop sprawdza się znakomicie. Jeśli potrzebne Ci narzędzie do poważnej analizy dużych zbiorów danych, nie znajdziesz lepszego rozwiązania!

Tę książkę napisał wytrawny znawca i współtwórca Hadoopa. Przedstawia w niej wszystkie istotne mechanizmy działania platformy i pokazuje, jak efektywnie jej używać. Dowiesz się stąd, do czego służą model MapReduce oraz systemy HDFS i YARN. Nauczysz się budować aplikacje oraz klastry. Poznasz dwa formaty danych, a także wykorzystasz narzędzia do ich pobierania i transferu. Sprawdzisz, jak wysokopoziomowe narzędzia do przetwarzania danych współdziałają z Hadoopem. Zorientujesz się, jak działa rozproszona baza danych i jak zarządzać konfiguracją w środowisku rozproszonym. Przeczytasz również o nowinkach w Hadoopie 2 i prześledzisz studia przypadków ilustrujące rolę Hadoopa w systemach służby zdrowia i przy przetwarzaniu danych o genomie.
  • Hadoop i model MapReduce
  • Systemy HDFS i YARN
  • Operacje wejścia – wyjścia w platformie Hadoop
  • Typy, formaty, funkcje i budowa aplikacji w modelu MapReduce
  • Zarządzanie platformą Hadoop
  • Avro, Parquet, Flume i Sqoop — metody pracy z danymi
  • Pig, Hive, Crunch i Spark — wysokopoziomowe narzędzia do przetwarzania danych
  • HBase i ZooKeeper — praca w środowisku rozproszonym
  • Integrowanie danych w firmie Cerner
  • Nauka o danych biologicznych
  • Cascading

Hadoop — rozwiązanie na miarę wyzwań globalnych!



Tom White — jeden z czołowych ekspertów w zakresie obsługi platformy Hadoop. Członek organizacji Apache Software Foundation, inżynier oprogramowania w firmie Cloudera.

Przedmowa (17)

Wprowadzenie (19)

  • Kwestie porządkowe (20)
  • Co nowego znajdziesz w wydaniu czwartym? (20)
  • Konwencje stosowane w tej książce (21)
  • Korzystanie z przykładowego kodu (21)
  • Podziękowania (22)

CZĘŚĆ I. PODSTAWY PLATFORMY HADOOP (25)

Rozdział 1. Poznaj platformę Hadoop (27)

  • Dane! (27)
  • Przechowywanie i analizowanie danych (29)
  • Przetwarzanie w zapytaniach wszystkich danych (30)
  • Poza przetwarzanie wsadowe (30)
  • Porównanie z innymi systemami (31)
    • Systemy RDBMS (32)
    • Przetwarzanie sieciowe (33)
    • Przetwarzanie z udziałem ochotników (34)
  • Krótka historia platformy Apache Hadoop (35)
  • Zawartość książki (38)

Rozdział 2. Model MapReduce (41)

  • Zbiór danych meteorologicznych (41)
    • Format danych (41)
  • Analizowanie danych za pomocą narzędzi uniksowych (42)
  • Analizowanie danych za pomocą Hadoopa (44)
    • Mapowanie i redukcja (44)
    • Model MapReduce w Javie (45)
  • Skalowanie (51)
    • Przepływ danych (51)
    • Funkcje łączące (55)
    • Wykonywanie rozproszonego zadania w modelu MapReduce (56)
  • Narzędzie Streaming Hadoop (57)
    • Ruby (57)
    • Python (59)

Rozdział 3. System HDFS (61)

  • Projekt systemu HDFS (61)
  • Pojęcia związane z systemem HDFS (63)
    • Bloki (63)
    • Węzły nazw i węzły danych (64)
    • Zapisywanie bloków w pamięci podręcznej (65)
    • Federacje w systemie HDFS (65)
    • Wysoka dostępność w systemie HDFS (66)
  • Interfejs uruchamiany z wiersza poleceń (68)
    • Podstawowe operacje w systemie plików (69)
  • Systemy plików w Hadoopie (70)
    • Interfejsy (71)
  • Interfejs w Javie (74)
    • Odczyt danych na podstawie adresu URL systemu Hadoop (74)
    • Odczyt danych za pomocą interfejsu API FileSystem (75)
    • Zapis danych (78)
    • Katalogi (80)
    • Zapytania w systemie plików (80)
    • Usuwanie danych (84)
  • Przepływ danych (85)
    • Anatomia odczytu pliku (85)
    • Anatomia procesu zapisu danych do pliku (87)
    • Model zapewniania spójności (90)
  • Równoległe kopiowanie za pomocą programu distcp (91)
    • Zachowywanie równowagi w klastrach z systemem HDFS (92)

Rozdział 4. System YARN (95)

  • Struktura działania aplikacji w systemie YARN (96)
    • Żądania zasobów (97)
    • Czas życia aplikacji (97)
    • Budowanie aplikacji systemu YARN (98)
  • System YARN a implementacja MapReduce 1 (99)
  • Szeregowanie w systemie YARN (101)
    • Dostępne programy szeregujące (101)
    • Konfigurowanie programu szeregującego Capacity (103)
    • Konfigurowanie programu szeregującego Fair (105)
    • Szeregowanie z opóźnieniem (109)
    • Podejście Dominant Resource Fairness (109)
  • Dalsza lektura (110)

Rozdział 5. Operacje wejścia-wyjścia w platformie Hadoop (111)

  • Integralność danych (111)
    • Integralność danych w systemie HDFS (112)
    • Klasa LocalFileSystem (112)
    • Klasa ChecksumFileSystem (113)
  • Kompresja (113)
    • Kodeki (114)
    • Kompresja i podział danych wejściowych (118)
    • Wykorzystywanie kompresji w modelu MapReduce (120)
    • Serializacja (122)
    • Interfejs Writable (123)
    • Klasy z rodziny Writable (125)
    • Tworzenie niestandardowych implementacji interfejsu Writable (132)
    • Platformy do obsługi serializacji (137)
  • Plikowe struktury danych (138)
    • Klasa SequenceFile (138)
    • Klasa MapFile (145)
    • Inne formaty plików i formaty kolumnowe (146)

CZĘŚĆ II. MODEL MAPREDUCE (149)

Rozdział 6. Budowanie aplikacji w modelu MapReduce (151)

  • API do obsługi konfiguracji (151)
    • Łączenie zasobów (152)
    • Podstawianie wartości zmiennych (153)
    • Przygotowywanie środowiska programowania (154)
    • Zarządzanie konfiguracją (155)
    • GenericOptionsParser, Tool i ToolRunner (158)
  • Pisanie testów jednostkowych za pomocą biblioteki MRUnit (161)
    • Mapper (161)
    • Reduktor (164)
  • Uruchamianie kodu lokalnie na danych testowych (164)
    • Uruchamianie zadania w lokalnym mechanizmie wykonywania zadań (165)
    • Testowanie sterownika (166)
  • Uruchamianie programów w klastrze (167)
    • Tworzenie pakietu z zadaniem (168)
    • Uruchamianie zadania (169)
    • Sieciowy interfejs użytkownika modelu MapReduce (171)
    • Pobieranie wyników (174)
    • Debugowanie zadania (175)
    • Dzienniki w Hadoopie (178)
    • Zdalne diagnozowanie (180)
  • Dostrajanie zadania (181)
    • Profilowanie operacji (181)
  • Przepływ pracy w modelu MapReduce (182)
    • Rozbijanie problemu na zadania w modelu MapReduce (183)
    • JobControl (184)
    • Apache Oozie (185)

Rozdział 7. Jak działa model MapReduce? (191)

  • Wykonywanie zadań w modelu MapReduce (191)
    • Przesyłanie zadania (192)
    • Inicjowanie zadania (193)
    • Przypisywanie operacji do węzłów (194)
    • Wykonywanie operacji (194)
    • Aktualizowanie informacji o postępie i statusu (196)
    • Ukończenie zadania (197)
  • Niepowodzenia (198)
    • Niepowodzenie operacji (198)
    • Niepowodzenie zarządcy aplikacji (199)
    • Niepowodzenie menedżera węzła (200)
    • Niepowodzenie menedżera zasobów (201)
  • Przestawianie i sortowanie (202)
    • Etap mapowania (202)
    • Etap redukcji (203)
    • Dostrajanie konfiguracji (206)
  • Wykonywanie operacji (208)
    • Środowisko wykonywania operacji (208)
    • Wykonywanie spekulacyjne (209)
    • Klasy z rodziny OutputCommitter (210)

Rozdział 8. Typy i formaty z modelu MapReduce (213)

  • Typy w modelu MapReduce (213)
    • Domyślne zadanie z modelu MapReduce (216)
  • Formaty wejściowe (222)
    • Wejściowe porcje danych i rekordy (222)
    • Tekstowe dane wejściowe (232)
    • Binarne dane wejściowe (236)
    • Różne dane wejściowe (237)
    • Dane wejściowe (i wyjściowe) z bazy (238)
  • Formaty danych wyjściowych (238)
    • Tekstowe dane wyjściowe (239)
    • Binarne dane wyjściowe (239)
    • Wiele danych wyjściowych (240)
    • Leniwe generowanie danych wyjściowych (243)
    • Dane wyjściowe dla bazy (244)

Rozdział 9. Funkcje modelu MapReduce (245)

  • Liczniki (245)
    • Liczniki wbudowane (245)
    • Zdefiniowane przez użytkowników liczniki Javy (249)
    • Zdefiniowane przez użytkownika liczniki narzędzia Streaming (252)
  • Sortowanie (253)
    • Przygotowania (253)
    • Częściowe sortowanie (254)
    • Sortowanie wszystkich danych (255)
    • Sortowanie pomocnicze (259)
  • Złączanie (264)
    • Złączanie po stronie mapowania (265)
    • Złączanie po stronie redukcji (265)
  • Rozdzielanie danych pomocniczych (268)
    • Wykorzystanie konfiguracji zadania (268)
    • Rozproszona pamięć podręczna (269)
  • Klasy biblioteczne modelu MapReduce (273)

CZĘŚĆ III. PRACA Z PLATFORMĄ HADOOP (275)

Rozdział 10. Budowanie klastra opartego na platformie Hadoop (277)

  • Specyfikacja klastra (278)
    • Określanie wielkości klastra (279)
    • Topologia sieci (280)
  • Przygotowywanie i instalowanie klastra (282)
    • Instalowanie Javy (282)
    • Tworzenie kont użytkowników w Uniksie (282)
    • Instalowanie Hadoopa (282)
    • Konfigurowanie ustawień protokołu SSH (282)
    • Konfigurowanie Hadoopa (283)
    • Formatowanie systemu plików HDFS (283)
    • Uruchamianie i zatrzymywanie demonów (284)
    • Tworzenie katalogów użytkowników (285)
  • Konfiguracja Hadoopa (285)
    • Zarządzanie konfiguracją (286)
    • Ustawienia środowiskowe (287)
    • Ważne właściwości demonów Hadoopa (289)
    • Adresy i porty demonów Hadoopa (296)
    • Inne właściwości Hadoopa (298)
  • Bezpieczeństwo (299)
    • Kerberos i Hadoop (300)
    • Tokeny do delegowania uprawnień (302)
    • Inne usprawnienia w zabezpieczeniach (303)
  • Testy porównawcze klastra opartego na Hadoopie (305)
    • Testy porównawcze w Hadoopie (305)
    • Zadania użytkowników (307)

Rozdział 11. Zarządzanie platformą Hadoop (309)

  • System HDFS (309)
    • Trwałe struktury danych (309)
    • Tryb bezpieczny (314)
    • Rejestrowanie dziennika inspekcji (315)
    • Narzędzia (316)
  • Monitorowanie (320)
    • Rejestrowanie informacji w dziennikach (320)
    • Wskaźniki i technologia JMX (321)
  • Konserwacja (322)
    • Standardowe procedury administracyjne (322)
    • Dodawanie i usuwanie węzłów (324)
    • Aktualizacje (327)

CZĘŚĆ IV. POWIĄZANE PROJEKTY (331)

Rozdział 12. Avro (333)

  • Typy danych i schematy systemu Avro (334)
  • Serializacja i deserializacja w pamięci (337)
    • Specyficzny interfejs API (338)
  • Pliki danych systemu Avro (340)
  • Współdziałanie języków (341)
    • Interfejs API dla Pythona (341)
    • Narzędzia systemu Avro (342)
  • Określanie schematu (343)
  • Porządek sortowania (344)
  • Avro i model MapReduce (346)
  • Sortowanie za pomocą modelu MapReduce i systemu Avro (349)
  • Używanie systemu Avro w innych językach (351)

Rozdział 13. Parquet (353)

  • Model danych (354)
    • Kodowanie struktury zagnieżdżonych danych (355)
  • Format plików Parquet (356)
  • Konfiguracja dla formatu Parquet (358)
  • Zapis i odczyt plików w formacie Parquet (358)
    • Avro, Protocol Buffers i Thrift (360)
  • Format Parquet i model MapReduce (362)

Rozdział 14. Flume (365)

  • Instalowanie platformy Flume (365)
  • Przykład (366)
  • Transakcje i niezawodność (368)
    • Porcje zdarzeń (369)
  • Ujścia w systemie HDFS (369)
    • Podział na partycje i interceptory (370)
    • Formaty plików (371)
  • Rozsyłanie danych do wielu kanałów (372)
    • Gwarancje dostarczenia (373)
    • Selektory replikacji i rozsyłania (374)
  • Dystrybucja - warstwy agentów (374)
    • Gwarancje dostarczenia danych (376)
  • Grupy ujść (377)
  • Integrowanie platformy Flume z aplikacjami (380)
  • Katalog komponentów (381)
  • Dalsza lektura (382)

Rozdział 15. Sqoop (383)

  • Pobieranie Sqoopa (383)
  • Konektory Sqoopa (385)
  • Przykładowa operacja importu (385)
    • Formaty plików tekstowych i binarnych (388)
  • Wygenerowany kod (388)
    • Inne systemy serializacji (389)
  • Importowanie - dokładne omówienie (389)
  • Kontrolowanie procesu importu (391)
    • Import i spójność (392)
    • Przyrostowy import (392)
    • Importowanie w trybie bezpośrednim (392)
  • Praca z zaimportowanymi danymi (393)
    • Importowane dane i platforma Hive (394)
  • Importowanie dużych obiektów (396)
  • Eksportowanie (398)
  • Eksportowanie - dokładne omówienie (399)
    • Eksport i transakcje (401)
    • Eksport i pliki typu SequenceFile (401)
  • Dalsza lektura (402)

Rozdział 16. Pig (403)

  • Instalowanie i uruchamianie platformy Pig (404)
    • Tryby wykonywania (404)
    • Uruchamianie programów platformy Pig (406)
    • Grunt (406)
    • Edytory kodu w języku Pig Latin (407)
  • Przykład (407)
    • Generowanie przykładowych danych (409)
  • Porównanie platformy Pig z bazami danych (410)
  • Język Pig Latin (411)
    • Struktura (411)
    • Instrukcje (412)
    • Wyrażenia (417)
    • Typy (418)
    • Schematy (419)
    • Funkcje (423)
    • Makra (425)
  • Funkcje zdefiniowane przez użytkownika (426)
    • Funkcje UDF służące do filtrowania (426)
    • Obliczeniowa funkcja UDF (429)
    • Funkcje UDF służące do wczytywania danych (430)
  • Operatory używane do przetwarzania danych (433)
    • Wczytywanie i zapisywanie danych (433)
    • Filtrowanie danych (434)
    • Grupowanie i złączanie danych (436)
    • Sortowanie danych (441)
    • Łączenie i dzielenie danych (442)
  • Platforma Pig w praktyce (442)
    • Współbieżność (442)
    • Relacje anonimowe (443)
    • Podstawianie wartości pod parametry (443)
  • Dalsza lektura (444)

Rozdział 17. Hive (445)

  • Instalowanie platformy Hive (446)
    • Powłoka platformy Hive (446)
  • Przykład (448)
  • Uruchamianie platformy Hive (449)
    • Konfigurowanie platformy Hive (449)
    • Usługi platformy Hive (451)
    • Magazyn metadanych (453)
  • Porównanie z tradycyjnymi bazami danych (456)
    • Uwzględnianie schematu przy odczycie lub przy zapisie (456)
    • Aktualizacje, transakcje i indeksy (456)
    • Inne silniki obsługujące język SQL w Hadoopie (457)
  • HiveQL (458)
    • Typy danych (458)
    • Operatory i funkcje (462)
  • Tabele (463)
    • Tabele zarządzane i tabele zewnętrzne (463)
    • Partycje i kubełki (464)
    • Formaty przechowywania danych (468)
    • Importowanie danych (472)
    • Modyfikowanie tabel (473)
    • Usuwanie tabel (474)
  • Pobieranie danych (474)
    • Sortowanie i agregacja danych (475)
    • Skrypty modelu MapReduce (475)
    • Złączenia (476)
    • Podzapytania (479)
    • Widoki (480)
  • Funkcje zdefiniowane przez użytkowników (481)
    • Pisanie funkcji UDF (482)
    • Pisanie funkcji UDAF (484)
  • Dalsza lektura (488)

Rozdział 18. Crunch (489)

  • Przykład (490)
  • Podstawowe interfejsy API Cruncha (493)
    • Proste operacje (493)
    • Typy (497)
    • Źródłowe i docelowe zbiory danych (500)
    • Funkcje (502)
    • Materializacja (504)
  • Wykonywanie potoku (506)
    • Uruchamianie potoku (506)
    • Zatrzymywanie potoku (507)
    • Inspekcja planu wykonania w Crunchu (508)
    • Algorytmy iteracyjne (511)
    • Tworzenie punktów kontrolnych w potokach (512)
  • Biblioteki w Crunchu (513)
  • Dalsza lektura (515)

Rozdział 19. Spark (517)

  • Instalowanie Sparka (518)
  • Przykład (518)
    • Aplikacje, zadania, etapy i operacje w Sparku (520)
    • Niezależna aplikacja w języku Scala (520)
    • Przykład napisany w Javie (521)
    • Przykład napisany w Pythonie (522)
  • Zbiory RDD (523)
    • Tworzenie zbiorów RDD (523)
    • Transformacje i akcje (524)
    • Utrwalanie danych (527)
    • Serializacja (529)
  • Zmienne współużytkowane (530)
    • Zmienne rozsyłane (531)
    • Akumulatory (531)
  • Anatomia przebiegu zadania w Sparku (532)
    • Przesyłanie zadań (532)
    • Tworzenie skierowanego grafu acyklicznego (533)
    • Szeregowanie operacji (535)
    • Wykonywanie operacji (536)
  • Wykonawcy i menedżery klastra (536)
    • Spark i YARN (537)
  • Dalsza lektura (540)

Rozdział 20. HBase (541)

  • Podstawy (541)
    • Tło historyczne (542)
  • Omówienie zagadnień (542)
    • Krótki przegląd modelu danych (542)
    • Implementacja (544)
  • Instalacja (546)
    • Przebieg testowy (547)
  • Klienty (549)
    • Java (549)
    • Model MapReduce (552)
    • Interfejsy REST i Thrift (553)
  • Budowanie interaktywnej aplikacji do przesyłania zapytań (553)
    • Projekt schematu (554)
    • Wczytywanie danych (555)
    • Zapytania interaktywne (558)
  • Baza HBase a bazy RDBMS (561)
    • Historia cieszącej się powodzeniem usługi (562)
    • Baza HBase (563)
  • Bazy HBase w praktyce (563)
    • System HDFS (564)
    • Interfejs użytkownika (564)
    • Wskaźniki (565)
    • Liczniki (565)
  • Dalsza lektura (565)

Rozdział 21. ZooKeeper (567)

  • Instalowanie i uruchamianie systemu ZooKeeper (568)
  • Przykład (570)
    • Przynależność do grupy w systemie ZooKeeper (570)
    • Tworzenie grupy (571)
    • Dołączanie członków do grupy (573)
    • Wyświetlanie członków grupy (574)
    • Usuwanie grupy (575)
  • Usługa ZooKeeper (576)
    • Model danych (576)
    • Operacje (578)
    • Implementacja (582)
    • Spójność (583)
    • Sesje (585)
    • Stany (587)
  • Budowanie aplikacji z wykorzystaniem ZooKeepera (588)
    • Usługa do zarządzania konfiguracją (588)
    • Odporna na błędy aplikacja ZooKeepera (591)
    • Usługa do zarządzania blokadami (594)
    • Inne rozproszone struktury danych i protokoły (596)
  • ZooKeeper w środowisku produkcyjnym (597)
    • Odporność a wydajność (598)
    • Konfiguracja (599)
  • Dalsza lektura (600)

CZĘŚĆ V. STUDIA PRZYPADKÓW (601)

Rozdział 22. Integrowanie danych w firmie Cerner (603)

  • Od integracji procesorów do integracji semantycznej (603)
  • Poznaj platformę Crunch (604)
  • Budowanie kompletnego obrazu (604)
  • Integrowanie danych z obszaru opieki zdrowotnej (607)
  • Możliwość łączenia danych w różnych platformach (610)
  • Co dalej? (611)

Rozdział 23. Nauka o danych biologicznych - ratowanie życia za pomocą oprogramowania (613)

  • Struktura DNA (615)
  • Kod genetyczny - przekształcanie liter DNA w białka (616)
  • Traktowanie kodu DNA jak kodu źródłowego (617)
  • Projekt poznania ludzkiego genomu i genomy referencyjne (619)
  • Sekwencjonowanie i wyrównywanie DNA (620)
  • ADAM - skalowalna platforma do analizy genomu (621)
    • Programowanie piśmienne za pomocą języka IDL systemu Avro (621)
    • Dostęp do danych kolumnowych w formacie Parquet (623)
    • Prosty przykład - zliczanie k-merów za pomocą Sparka i ADAM-a (624)
  • Od spersonalizowanych reklam do spersonalizowanej medycyny (626)
  • Dołącz do projektu (627)

Rozdział 24. Cascading (629)

  • Pola, krotki i potoki (630)
    • Operacje (632)
  • Typy Tap, Scheme i Flow (634)
  • Cascading w praktyce (635)
    • Elastyczność (637)
  • Hadoop i Cascading w serwisie ShareThis (638)
  • Podsumowanie (642)

DODATKI (643)

Dodatek A. Instalowanie platformy Apache Hadoop (645)

  • Wymagania wstępne (645)
  • Instalacja (645)
  • Konfiguracja (646)
    • Tryb niezależny (647)
    • Tryb pseudorozproszony (647)
    • Tryb rozproszony (649)

Dodatek B. Dystrybucja firmy Cloudera (651)

Dodatek C. Przygotowywanie danych meteorologicznych od instytucji NCDC (653)

Dodatek D. Dawny i nowy interfejs API Javy dla modelu MapReduce (657)

Skorowidz (661)

  • Назва: Hadoop. Komplety przewodnik. Analiza i przechowywanie danych
  • Автор: Tom White
  • Оригінальна назва: Hadoop: The Definitive Guide, 4th Edition
  • Переклад: Tomasz Walczak
  • ISBN: 978-83-283-1460-3, 9788328314603
  • Дата видання: 2015-11-06
  • Формат: Eлектронна книга
  • Ідентифікатор видання: hadoop
  • Видавець: Helion