Hadoop生态系统
AI生成声明: 本文档由AI辅助生成,旨在提供Hadoop生态系统的完整指南。
Hadoop是大数据领域的基础框架,理解Hadoop生态系统对于掌握大数据技术至关重要。
核心问题
Hadoop核心组件
HDFS(Hadoop Distributed File System)
- 分布式文件系统
- 高容错性
- 适合大文件存储
MapReduce
- 分布式计算框架
- 批处理模型
- 适合离线分析
YARN(Yet Another Resource Negotiator)
- 资源管理器
- 统一资源调度
- 支持多种计算框架
Hadoop生态系统
- Hive:数据仓库工具,SQL on Hadoop
- HBase:NoSQL数据库,列式存储
- Spark:内存计算框架
- Flink:流处理框架
- Pig:数据流处理语言
- Sqoop:数据导入导出工具
- Flume:日志收集工具
- Kafka:消息队列(已单独介绍)
HDFS架构
核心组件
NameNode
- 管理文件系统命名空间
- 存储元数据
- 单点故障(可通过HA解决)
DataNode
- 存储实际数据
- 定期向NameNode报告
- 数据块复制
SecondaryNameNode
- 辅助NameNode
- 合并fsimage和edits
- 非高可用方案
数据存储
- 块(Block):默认128MB
- 副本(Replication):默认3个副本
- 机架感知:优化数据分布
MapReduce原理
计算模型
Map阶段
- 输入:键值对
- 处理:并行处理
- 输出:中间结果
Shuffle阶段
- 排序
- 分组
- 数据传输
Reduce阶段
- 输入:分组后的数据
- 处理:聚合计算
- 输出:最终结果
YARN架构
组件
ResourceManager
- 全局资源管理
- 应用调度
- 集群资源分配
NodeManager
- 节点资源管理
- 容器管理
- 向RM报告
ApplicationMaster
- 应用级资源管理
- 任务调度
- 故障恢复
常见面试题
Hadoop的优缺点?
- 优点:高容错、可扩展、成本低
- 缺点:延迟高、不适合实时处理
HDFS如何保证高可用?
- NameNode HA
- 数据副本机制
- 机架感知
MapReduce的执行流程?
- Map → Shuffle → Reduce
- 数据本地性优化
- 容错机制