1 Hadoop生态圈概述

Hadoop生态圈是以 HDFS(分布式存储) 和 YARN(资源调度) 为核心,围绕大数据存储、计算、管理、分析等需求发展出的一系列开源工具集合。
核心特点:
- 模块化:各组件专注解决特定问题(如HBase负责实时查询,Spark负责高速计算)
- 可扩展:支持多种计算框架(MapReduce/Spark/Flink)和存储系统(HDFS/HBase)
- 高容错:自动处理节点故障,保证数据可靠性
2 Hadoop生态核心组件
2.1 存储层
|-------|-------------|------------------------|--------------|
| 组件 | 定位 | 关键特性 | 适用场景 |
| HDFS | 分布式文件系统 | 高吞吐、顺序读写、数据分块(默认128MB) | 离线批处理(日志存储) |
| HBase | 分布式NoSQL数据库 | 低延迟随机读写、强一致性 | 实时查询(用户画像) |
| Kudu | 列式存储引擎 | 兼顾实时更新与分析查询 | 时序数据(IoT传感器) |
2.2 计算层
|-----------|---------|-------------------|-------------|
| 组件 | 计算模型 | 优势 | 典型案例 |
| MapReduce | 批处理 | 高容错、适合超大规模数据 | ETL数据清洗 |
| Spark | 内存计算 | DAG执行、比MR快10-100倍 | 机器学习(MLlib) |
| Flink | 流计算 | 低延迟(毫秒级)、精确一次语义 | 实时风控 |
| Tez | DAG优化引擎 | 减少中间数据落盘,提升Hive性能 | 交互式查询 |
2.3 资源管理层
- YARN:统一资源调度系统,可同时运行MR/Spark/Flink等计算框架
- ZooKeeper:分布式协调服务,保障集群一致性(如HBase依赖ZK)
2.4 数据仓库与SQL
|--------|-----------------------------|------------|
| 组件 | 特点 | 查询引擎 |
| Hive | 将SQL转为MapReduce/Tez/Spark作业 | 批处理(分钟级延迟) |
| Impala | 内存计算,免MR启动开销 | 交互式查询(秒级) |
| Presto | 多数据源联邦查询(HDFS/MySQL等) | 即席分析 |
2.5 数据采集与传输
- Flume:高可靠日志收集(如服务器日志 → HDFS)
- Kafka:分布式消息队列(实时数据缓冲)
- Sqoop:关系数据库 ↔ HDFS双向数据传输
2.6 机器学习与高级分析
- Mahout:基于MapReduce的机器学习库
- Spark MLlib:支持分类、回归、推荐等算法
- H2O:深度学习集成
3 Hadoop生态技术选型指南
|----------|--------------------------|---------------|
| 需求 | 推荐组件 | 原因 |
| 海量日志存储 | HDFS + Parquet | 高压缩比,列式存储优化查询 |
| 实时用户行为分析 | Kafka + Flink | 低延迟流处理 |
| 交互式报表 | Hive on Spark + Superset | 平衡速度与成本 |
| 高并发点查询 | HBase | 毫秒级响应 |
4 Hadoop生态发展趋势
云原生转型:
- 存储计算分离(HDFS → S3/OBS)
- 容器化部署(YARN → Kubernetes)
实时化演进:- 批流统一(Spark Structured Streaming/Flink)
AI融合:
- 大数据+机器学习Pipeline(TensorFlow on YARN)