Files
knowledge-base/BIG-DATA.md
Stanislav Hubacek ef3c2f75b1 18.6.2026
2026-06-18 16:25:33 +02:00

11 KiB
Raw Permalink Blame History

🗄️ Big Data — ekosystém, architektura, nástroje

Přehled

Big Data ekosystém v roce 2026: "Hadoop je mrtvý, a přitom je všude." HDFS se zmenšil, MapReduce je fakticky mrtvý, Cloudera/Hortonworks éra skončila. Ale YARN žije, Hive Metastore se převlékl do Iceberg/Delta a lakehouse pattern (levné object storage + tabulkový formát + distribuovaný engine) je dědictví, které Hadoop zanechal.

Moderní Big Data stack má 8 vrstev:

  1. Storage — HDFS, S3, GCS, ABFS, MinIO
  2. Tabulkový formát — Apache Iceberg, Delta Lake, Apache Hudi, Apache Paimon
  3. Catalog — Hive Metastore, Unity Catalog, Polaris, Nessie, AWS Glue
  4. Dávkové zpracování — Apache Spark, Trino-on-Spark, Dremio
  5. Streamové zpracování — Apache Flink, Spark Structured Streaming, Kafka Streams
  6. Distribuované SQL — Trino, Presto, StarRocks, ClickHouse
  7. Transformace — dbt, SQLMesh
  8. Orchestrace — Apache Airflow 3.0, Dagster, Prefect, Kestra

Úložiště (Storage)

HDFS (Hadoop Distributed File System)

Vlastnost Detail
Architektura Master/worker: NameNode (metadata) + DataNode (data)
Replikace Výchozí 3×, konfigurovatelná (rack-aware)
Block size Výchozí 128 MB (lze 64 MB 256 MB)
Limity NameNode memory ~ 1 GB / 1 milion bloků; ~1000 DataNode v clusteru
Use case On-prem clustery, sekvenční čtení/zápis, velké soubory
Stav 2026 Klesající podíl — většina migruje na object storage (S3, GCS, MinIO)

HDFS je stále relevantní pro on-prem prostředí, kde object storage není dostupná, nebo pro specifické use case (YARN cluster, Spark shuffle). Pro nové projekty se doporučuje object storage.

Object storage jako Data Lake

Platforma Služba Use case
AWS S3 Hlavní data lake, Iceberg/Delta na S3
Azure ADLS Gen2 / Blob Data lake pro Azure ekosystém
GCP GCS Data lake pro GCP (Dataproc, BigQuery)
On-prem MinIO S3-kompatibilní object storage na vlastním HW

Kapacitní plánování HDFS

Velikost dat Konfigurace
< 100 TB 35 DataNode, 10 GbE, replication 3×
100 TB 1 PB 520 DataNode, 25/100 GbE, rack-aware, NameNode HA
1 PB+ 20+ DataNode, 100 GbE, Federation (více NameNode)

Tabulkové formáty (Open Table Formats)

Tabulkové formáty přináší ACID transakce, schema evolution a time travel do data lake objektového úložiště.

Formát Organizace Engine kompatibilita Streaming Katalog
Apache Iceberg Apache Foundation Spark, Flink, Trino, Dremio, Athena, Snowflake Flink sink, snapshot-based REST catalog, Polaris, Glue, Hive
Delta Lake Linux Foundation (Databricks) Spark (native), Trino, Flink (limited), Athena Spark Streaming, DLT Unity Catalog (proprietary), Hive
Apache Hudi Apache Foundation Spark, Flink, Trino (connector) Built-in CDC, incremental Hive, Glue (limited)
Apache Paimon Apache Foundation Flink (native), Spark LSM-tree, changelog mode Hive, REST

Doporučení 2026:

  • Iceberg — nejširší multi-engine podpora, vendor-neutral, otevřený katalog (Polaris)
  • Delta Lake — nejlepší pro Spark/Databricks ekosystém, UniForm pro cross-format čtení
  • Hudi — ztrácí momentum, jen pokud již v produkci
  • Paimon — emerging, Flink-native, LSM architektura

Zpracování (Processing Engines)

Apache Spark

Dominantní engine pro dávkové zpracování a unifying engine (batch + streaming + SQL + ML).

Vlastnost Detail
Verze 2026 Spark 4.x (4.1.0), native Kubernetes support, Structured Streaming, Delta Lake integrace
API Scala, Java, Python (PySpark), SQL, R (SparkR)
Batch DataFrame/Dataset, RDD, SQL queries — 10100× rychlejší než MapReduce
Streaming Structured Streaming (micro-batch), latence ~100 ms 5 s
SQL Spark SQL, ANSI SQL, Hive兼容
ML MLlib, SparkML, integrace s MLflow
Scheduler YARN, Kubernetes (production-ready od Spark 3.x), standalone
Fault tolerance RDD lineage, checkpointing

Kdy použít Spark:

  • Dávkové ETL/ELT pipelines
  • Jednotný engine pro batch + streaming (team preference)
  • Machine learning pipelines (MLlib, SparkML)
  • SQL analytika na velkých datech

Nejvýkonnější engine pro true streaming (per-event zpracování).

Vlastnost Detail
Verze 2026 Flink 2.x (streaming-first, batch jako speciální případ streamu)
API DataStream API, Table/SQL API, ProcessFunction (low-level)
Latence < 100 ms (true streaming, Chandy-Lamport checkpointing)
State management Managed state (ValueState, ListState, MapState), RocksDB backend
Event time Nativní, watermarky, out-of-order handling
Batch Batch jako bounded stream (stejný runtime)
Deployment YARN, Kubernetes, standalone
Ekonomika Vyšší paměťové nároky (managed state), nutnost pečlivého tuningu

Kdy použít Flink:

  • Fraud detection, real-time bidding, IoT (< 100 ms latence)
  • Komplexní stateful stream processing
  • CDC pipelines
  • Event-driven architektury

Trino (ex PrestoSQL)

Distribuovaný SQL query engine — federované dotazy napříč různými zdroji.

Vlastnost Detail
Architektura Coordinator + Worker (bez storage, bez scheduleru)
Konektory Iceberg, Delta, Hive, HDFS, S3, GCS, ADLS, PostgreSQL, MySQL, Kafka, Elasticsearch
Use case Interactive SQL, federované dotazy, lakehouse queries
Verze 2026 Trino 470+, Iceberg native, Delta Lake connector

Kritérium Spark Flink Trino
Primární use case Batch + unifying True streaming Interactive SQL
Latence streaming 100 ms 5 s (micro-batch) < 100 ms (true streaming) N/A
Throughput Vysoký (batch optimalizace) Vysoký (pipeline optimalizace) Střední (ad-hoc)
State management State store (external) Managed state (embedded) N/A
SQL support Spark SQL Flink SQL ANSI SQL (nejširší)
ML/AI MLlib, SparkML
Kubernetes Native (production) Native (production) Native (production)
Křivka učení Střední Vysoká Nízká
Provozní náročnost Střední Vysoká Střední

Orchestrace

Nástroj Verze 2026 Use case
Apache Airflow 3.0+ (taskflow API, dynamic tasks, deferrable operators) Univerzální orchestrace, největší ekosystém
Dagster 1.x (asset-oriented, software-defined assets) Data pipelines, observabilita, asset lineage
Prefect 3.x (native async, workers, blocks) Python-native, serverless workers
Kestra 1.x (YAML-native, declarative) Event-driven orchestration
Apache NiFi 2.x (flow-based, visual) Data ingestion, CDC, streaming

Lakehouse architektura

Lakehouse kombinuje flexibilitu data lake (object storage) s výkonem a governance data warehouse.

┌──────────────────────────────────────────────────────┐
│                    Query Engines                      │
│   Trino    Spark SQL    Flink SQL    Dremio    Athena  │
└─────────────────────────┬────────────────────────────┘
                          │
┌─────────────────────────▼────────────────────────────┐
│                  Table Format Layer                    │
│         Apache Iceberg / Delta Lake / Hudi            │
│       (ACID, time travel, schema evolution)           │
└─────────────────────────┬────────────────────────────┘
                          │
┌─────────────────────────▼────────────────────────────┐
│                    Storage Layer                       │
│           S3 / GCS / ADLS / MinIO / HDFS              │
│               (Parquet / ORC / Avro)                  │
└──────────────────────────────────────────────────────┘

Detailněji Iceberg viz DATABASES.md — Apache Iceberg Lakehouse.


Infrastruktura pro Big Data

Cluster sizing

Komponenta Spark (batch) Flink (streaming) Trino (SQL)
CPU 1664 cores/node 1632 cores/node 832 cores/node
RAM 64256 GB/node 64256 GB/node (včetně managed state) 64256 GB/node
Storage HDFS / object storage Object storage (checkpointy) Žádná (stateless)
Network 25100 GbE (shuffle-heavy) 25100 GbE (checkpointing) 25100 GbE
Disk NVMe (scratch, shuffle) NVMe (RocksDB state backend)
Cluster velikost 5200+ nodes 3100+ nodes 550 nodes

Network considerations

  • Spark shuffle — heavy network traffic mezi uzly; doporučeno 25100 GbE, ideálně bez oversubscription
  • Flink checkpointing — periodický zápis stavu na object storage; vyžaduje stabilní latenci
  • HDFS rack awareness — optimalizuje replikaci napříč racky
  • Data locality — HDFS: čtení z lokálního disku; object storage: network-bound

Kubernetes vs YARN

Kritérium YARN Kubernetes
Resource isolation Cgroups (YARN containers) Cgroups + namespaces (pods)
Ecosystem fit Hadoop-native (HDFS, Hive, Spark) Cloud-native, Spark, Flink, Trino
Operational complexity Nižší (jeden cluster manager) Vyšší (vyžaduje K8s cluster)
Multi-tenant isolation YARN queues (Capacity/Fair Scheduler) Namespaces, ResourceQuotas, LimitRanges
Stateful workloads Omezená StatefulSets, PVC, Operators
2026 trend Legacy (klesající) Standard pro nové projekty

Nasazení v cloudu

Cloud Dávkové zpracování Streaming SQL Managed K8s
AWS EMR (Spark, Hive, Flink) Kinesis, MSK (Kafka), EMR Flink Athena (Trino), Redshift EKS
Azure HDInsight (Spark, Hive), Synapse Event Hubs, HDInsight Flink Synapse SQL, Azure Data Explorer AKS
GCP Dataproc (Spark, Flink, Hive, Trino) Pub/Sub, Dataflow (Beam), Dataproc Flink BigQuery GKE

Zdroje

Odkazy, knihy a standardy: sources/infrastructure/sources.md

Poslední revize: 2026-06-18