IT Framework Big Data

Hadoop

Definicja #

Apache Hadoop to open-source'owy framework do rozproszonego przechowywania i przetwarzania ogromnych zbiorów danych (Big Data) na klastrach serwerów. Stworzony przez Douga Cuttinga i Mike'a Caffarellę, inspirowany papierami Google (GFS i MapReduce), wydany przez Apache Software Foundation.

Cztery główne komponenty Hadoop:

  • HDFS (Hadoop Distributed File System) — rozproszony system plików dzielący duże pliki na bloki (domyślnie 128 MB) i dystrybuujący je po węzłach klastra z replikacją (domyślnie 3 kopie). Zapewnia wysoką dostępność danych.
  • MapReduce — model programistyczny do równoległego przetwarzania danych: faza Map (przetwarzanie par klucz-wartość) i faza Reduce (agregacja wyników). Działa na danych przechowywanych w HDFS.
  • YARN (Yet Another Resource Negotiator) — zarządca zasobów klastra; planuje joby i alokuje CPU/RAM dla aplikacji (MapReduce, Spark, Hive i inne)
  • Hadoop Common — wspólne biblioteki i narzędzia używane przez pozostałe moduły

Ekosystem Hadoop:

  • Apache Hive — warstwa SQL nad HDFS (HiveQL), dla analityków bez znajomości MapReduce
  • Apache HBase — kolumnowa baza NoSQL na HDFS dla dostępu do danych w czasie rzeczywistym
  • Apache Spark — szybszy, in-memory następca MapReduce; działa z YARN i HDFS
  • Apache Pig — język skryptowy do przetwarzania danych (Pig Latin)
  • Apache Oozie — harmonogramowanie workflow'ów Hadoop

Zastosowania #

Hadoop stosuje się do:

  • Przetwarzania wsadowego (batch processing) ogromnych zbiorów danych — analiza logów web na milionach rekordów, ETL do hurtowni danych
  • Budowy data lake — HDFS jako tania, skalowalna warstwa przechowywania surowych danych (structured, semi-structured, unstructured)
  • Analizy danych niestrukturalnych — przetwarzanie plików JSON, XML, Avro, Parquet na HDFS
  • Machine learning na dużych danych — Spark ML Library z YARN jako resource manager na klastrze Hadoop
  • Archiwizacji i przechowywania danych historycznych — koszt HDFS na commodity hardware wielokrotnie niższy niż tradycyjny DWH

Ścieżka nauki #

Hadoop wymaga znajomości Linuksa i co najmniej jednego języka (Java, Python, SQL). Ekosystem jest rozległy — zacznij od fundamentów.

Zacznij od:

  • Koncepcja Big Data i architektura klastra Hadoop — Master (NameNode, ResourceManager) i Worker (DataNode, NodeManager)
  • Uruchomienie Hadoop w trybie pseudo-distributed (jeden węzeł na lokalnej maszynie lub Docker)
  • Podstawy HDFS: hadoop fs -ls, -put, -get, -cat — operacje na plikach w HDFS
  • Apache Hive — zacznij od SQL-owego interfejsu zamiast surowego MapReduce; HiveQL to dobry punkt wejścia

Następnie:

  • Apache Spark — Spark API (PySpark) jest nowocześniejszy i szybszy niż MapReduce; zdecydowanie zalecany do nowych projektów
  • Formaty danych: Parquet, ORC, Avro — optymalizacja storage i query performance
  • Dystrybucje zarządzane: Cloudera CDP, Amazon EMR, Azure HDInsight — eliminują ręczną administrację klastrem
  • Nowoczesne alternatywy: Delta Lake (Databricks), Apache Iceberg — zastępują surowy HDFS w nowych architekturach

FAQ #

Czy Hadoop jest nadal używany?
Tak, ale jego rola ewoluuje. Surowy MapReduce i HDFS są wypierane przez nowocześniejsze narzędzia (Spark, Delta Lake, cloud object storage). Jednak ekosystem Hadoop (YARN, HDFS, Hive) pozostaje w wielu dużych enterprise'ach. Na rynku pracy znajomość Spark jest bardziej poszukiwana niż MapReduce.
Czym różni się Hadoop od Spark?
Hadoop MapReduce przetwarza dane wsadowo, zapisując wyniki pośrednie na dysk — jest wolniejszy, ale tani. Apache Spark przetwarza dane w pamięci (in-memory), co daje 10-100x szybsze obliczenia dla algorytmów iteracyjnych (ML). Spark może działać na klastrze YARN Hadoop, korzystając z HDFS jako storage.
Co to jest HDFS?
HDFS (Hadoop Distributed File System) to rozproszony system plików Hadoop. Dzieli duże pliki na bloki (128 MB) i dystrybuuje je po węzłach DataNode klastra z replikacją (domyślnie 3 kopie). NameNode przechowuje metadane (lokalizację bloków). HDFS jest zoptymalizowany pod sekwencyjny odczyt dużych plików.
Ile zarabia Data Engineer znający Hadoop?
Data Engineer w Polsce zarabia od 12 000 do 24 000 zł brutto. Znajomość ekosystemu Hadoop (Spark, Hive, HDFS) i platform chmurowych (AWS EMR, Azure HDInsight, Databricks) znacząco podnosi wycenę. Senior Data Engineer z Spark i cloud zarabia od 20 000 do 32 000 zł.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z Hadoop w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.