写在开头
Hadoop生态圈主要解决:海量数据的存储和分析计算问题。
大数据特点(4V):大量(Volume)、高速(Velocity)、多样(Variety)、低价值密度(Value)
Hadoop优点(4高):高可靠性、高拓展性、高效性、高容错性
Hadoop1.x和2.x的区别:
- 2.x组成
Common
:辅助工具HDFS
:数据存储MapReduce
:计算(1.x版本没有Yarn,MapReduce负责计算和资源调度)Yarn
:资源调度
组成
- HDFS架构组成
-
NameNode
,存储文件的元数据,如文件名、文件目录结构,文件属性信息等,以及每个文件的块列表和块所在的DataNode
等。 -
DataNode
,在本地文件系统中存储文件块数据,以及数据的校验和。 -
Secondary NameNode
,监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
-
- Yarn架构组成
ResourceManager
- 处理客户端请求
- 监控
NodeManager
- 启动或监控
ApplicationMaster
- 资源分配与调度
NodeManager
- 管理单个节点资源
- 处理来自
ResourceManager
的命令 - 处理来自
ApplicationMaster
的命令
ApplicationMaster
- 数据切分
- 为应用程序申请资源并分配内部任务
- 任务监控与容错
Container
- 资源抽象(为
ApplicationMaster
提供容器支持,CPU、网络、Disk等)
- 资源抽象(为
- MapReduce计算过程
Map阶段并行处理输入数据
Reduce阶段对Map数据处理结果进行汇总
生态体系
层级(自下向上) | 包含内容1 | 包含内容2 | 包含内容3 |
---|---|---|---|
数据来源层 | 数据库(结构化数据) | 文件日志(半结构化数据) | 视频,文件等(非结构化数据) |
数据传输层 | Sqoop数据传递 | Flume日志收集 | Kafka消息队列 |
数据存储层 | HDFS文件存储(HBase) | HDFS文件存储(HBase) | Kafka消息队列 |
资源管理层 | YARN资源管理 | YARN资源管理 | YARN资源管理 |
数据计算层 | MapReduce离线计算 | Spark Core内存计算(离线) | Spark Streaming / Storm 实时计算 |
任务调度层 | Oozie任务调度 | Azkaban任务调度 | CronTab任务调度 |
业务模型层 | 业务模型 | 数据可视化 | 业务应用 |