大数据系统的核心问题是:数据太大,单机放不下或算不动,所以需要分布式存储和分布式计算。
Hadoop
Hadoop 是大数据生态的基础框架,主要组件包括:
- HDFS:分布式文件系统
- MapReduce:分布式计算模型
- YARN:资源调度
HDFS 把大文件拆成块,分散存储到多台机器上,并通过副本保证容错。
MapReduce 把计算拆成 Map 和 Reduce 两阶段:
- Map:每个节点处理自己负责的数据块
- Reduce:聚合中间结果
优点是可靠、可扩展;缺点是批处理延迟较高。
Spark
Spark 是大规模数据计算框架,通常比 Hadoop MapReduce 更快,因为它大量使用内存计算。
常见组件:
- Spark Core
- Spark SQL
- Spark Streaming
- MLlib
- GraphX
Spark 适合迭代计算、机器学习、交互式分析和流处理。
Spark 与 Hadoop MapReduce
MapReduce 更偏传统批处理,每一步会频繁落盘。
Spark 把中间数据尽量放在内存中,适合需要多轮计算的任务。
Hive
Hive 是数据仓库工具,可以用类 SQL 的方式查询 HDFS 上的数据。
它适合:
- 离线分析
- 报表
- 数据仓库
- 让熟悉 SQL 的人查询大数据
Hive 不是传统 OLTP 数据库,不适合高频低延迟事务查询。
总结
- Hadoop:分布式存储和批处理基础
- Spark:更快的大规模计算引擎
- Hive:面向分析的数据仓库 SQL 层