Hadoop的三大核心组件及其作用如下:
1. HDFS(Hadoop Distributed File System)
作用:分布式文件存储系统,负责数据的分布式存储和高可靠性管理。
关键特性:
分块存储:将大文件分割成固定大小的块(默认128MB/256MB),分散存储在多台机器上。
冗余备份:每个块默认保存3个副本,确保数据容错。
主从架构:
NameNode(主节点):管理文件系统的元数据(如目录树、块位置)。
DataNode(从节点):存储实际数据块,定期向NameNode汇报状态。
应用场景:适用于海量数据的低成本、高可靠存储(如日志、视频等非结构化数据)。
2. MapReduce
作用:分布式计算框架,用于并行处理大规模数据集。
工作原理:
1. Map阶段:将输入数据拆分并并行处理,生成键值对(`<key, value>`)中间结果。
2. Reduce阶段:对中间结果按key聚合,生成最终输出。
关键特性:
离线批处理:适合高延迟、高吞吐量的场景(如统计分析、ETL)。
容错机制:任务失败后自动重新调度。
局限性:计算过程中需频繁读写磁盘,性能较低(后续被Spark等内存计算框架优化)。
3. YARN(Yet Another Resource Negotiator)
作用:资源管理和作业调度系统,解耦Hadoop的计算与资源管理功能。
核心组件:
ResourceManager(RM:全局资源调度器,分配集群资源(CPU、内存)。
NodeManager(NM:单个节点上的资源代理,负责容器(Container)的生命周期管理。
ApplicationMaster(AM):每个应用(如MapReduce作业)独有的进程,向RM申请资源并协调任务执行。
优势:
支持多计算框架(如MapReduce、Spark、Flink)共享集群资源。
提升集群利用率和扩展性。