Hadoop
文章平均质量分 92
lifallen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hadoop MapOutputBuffer:Map高性能核心揭秘
MapOutputBuffer是Hadoop MapReduce框架中负责高效收集、分区和排序Mapper输出的核心组件。它采用环形内存缓冲区设计,将序列化数据与元数据分离存储,通过指针管理实现高效内存利用。当缓冲区使用超过阈值(默认80%)时,后台SpillThread线程会触发排序和磁盘溢写。其关键机制包括:仅对元数据进行排序而非实际数据、支持可选的Combiner本地聚合、多轮溢写后合并为最终有序输出文件。这种设计实现了Mapper输出处理的高吞吐和低延迟,为Reduce阶段的高效数据拉取奠定了基础。原创 2025-09-12 21:29:20 · 721 阅读 · 0 评论 -
Hadoop MapReduce 任务/输入数据 分片 InputSplit 解析
InputSplit和InputFormat是MapReduce框架处理输入数据的核心机制。InputSplit定义了单个Mapper处理的数据逻辑分片,包含位置元信息而非数据本身,其getLocations()方法为实现数据本地化提供关键支持。InputFormat负责验证输入、切分数据和创建数据读取器,其CombineFileInputFormat实现能有效解决海量小文件问题。两者协同工作,通过逻辑分片和数据本地化实现了大规模数据的高效并行处理,是MapReduce"计算向数据移动"理念的核心体现。原创 2025-08-26 20:04:10 · 1025 阅读 · 0 评论 -
Hadoop MapReduce Task 设计源码分析
本文深入解析了Hadoop MapReduce框架中的核心组件Task及其子类MapTask和ReduceTask的实现机制。Task作为任务执行基类,封装了任务标识、状态管理、序列化等通用功能。MapTask通过环形缓冲区和多轮溢写-归并机制实现高效数据处理,ReduceTask则通过Shuffle阶段拉取数据并执行最终归并排序。文章详细剖析了ShuffleSchedulerImpl的调度算法、失败处理机制以及多层次的容错设计,包括失败计数限制和健康检查机制。这些组件构建了一个高效、健壮的分布式计算框架。原创 2025-08-25 19:47:32 · 1510 阅读 · 0 评论 -
Hadoop MapReduce过程
本文深入解析了MapReduce的执行流程。客户端负责分片计算(getSplits)和作业提交,通过InputFormat将数据逻辑切分为InputSplit;而集群(YARN)负责任务调度执行,包括启动MapTask、创建RecordReader和数据处理。文章详细介绍了MapReduce的完整流程:输入分片、Map阶段、Shuffle(分区、排序、溢写、合并)、Reduce阶段和输出,并阐述了Mapper与Reducer通过中间键值对的联系机制。此外,还探讨了Partitioner的作用。原创 2025-08-10 20:11:27 · 997 阅读 · 0 评论 -
HDFS数据流式读写解析
HDFS读写流程解析 HDFS采用元数据与数据分离的设计理念。读取流程中,客户端首先从NameNode获取文件块位置元数据,然后直接连接最近的DataNode进行流式数据读取,数据以Packet为单位传输并进行校验。写入流程更为复杂,采用管线化写入机制:客户端将数据拆分为Packet,通过管道依次传输到多个DataNode副本,每个节点完成本地存储后继续转发,最终确认信息沿管道反向返回客户端。DFSInputStream负责文件级的逻辑定位,而BlockReader则处理单个数据块的具体读取任务原创 2025-08-03 15:39:22 · 1246 阅读 · 0 评论 -
hadoop.yarn 带时间的LRU 延迟删除
org.apache.hadoop.yarn.util.LRUCache是Hadoop YARN中基于最近最少使用(LRU)策略的缓存实现。它利用LinkedHashMap实现基础存储结构,通过accessOrder参数控制元素访问顺序,自动移除最久未使用的条目。该缓存支持容量限制和过期时间双重控制,使用CacheNode包装类记录时间戳实现过期检查。通过synchronized关键字保证线程安全,并采用延迟删除策略,在get操作时检查过期状态。这种设计既实现了经典的LRU算法,又扩展了过期功能原创 2025-08-01 16:07:23 · 572 阅读 · 0 评论
分享