Hadoop. Komplety przewodnik. Analiza i przechowywanie danych - ebook
Hadoop. Komplety przewodnik. Analiza i przechowywanie danych - ebook
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
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.
Spis treści
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)
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-1460-3 |
Rozmiar pliku: | 8,5 MB |