Hadoop是一个基于Apache开源协议、使用Java语言开发的大数据处理平台,支持在多台计算机组成的集群中实现海量数据的分布式存储与计算。
其核心架构由HDFS和MapReduce两大组件构成:HDFS负责大规模数据的可靠存储,MapReduce则提供高效的并行计算能力。
通过Hadoop集群,原始数据经过分布式处理流程最终生成结果,如下图所示:
HDFS:分布式文件系统
HDFS(Hadoop Distributed File System)将大文件切分为默认64MB的数据块,并以多副本形式分布存储于不同节点,确保高可用性和容错性。例如,文件data1被分割为3个数据块,并冗余存储在多个DataNode中。
MapReduce:分布式计算模型
MapReduce处理流程包括两个阶段:Map阶段对输入分片逐条处理,输出键值对;Hadoop自动按键排序并分组,作为Reduce任务的输入。最终结果由Reduce任务整合后写入HDFS。
Hadoop集群架构组成
Hadoop集群主要包含以下组件:

- NameNode:管理文件系统的元数据,记录文件分块情况及各数据块所在DataNode位置,同时维护文件系统运行状态。
- DataNode:实际存储数据块的节点,负责数据的读写和复制。
- Secondary NameNode:协助NameNode合并编辑日志,辅助恢复系统状态信息。
- JobTracker:负责作业调度与监控,协调多个TaskTracker执行任务。
- TaskTracker:在本地节点上运行具体的Map或Reduce任务。

