MapReduce学习笔记 —— Map的中间结果

《Hadoop技术内幕——深入解析MapReduce架构设计与实现原理》(董西城著)一书中,第8章《Task运行过程分析》中第3小结详细介绍了Map Task的内部实现,过程如图所示:
Map Task计算流程,图片来自原书

在Spill阶段,当环形缓冲区满后,MapReduce会将数据写到本地磁盘上,生成一个临时文件。其步骤如下:

  1. 对缓冲区kvbuffer中区间[bufstart, bufend)内的数据进行排序。会先partition,然后基于key排序。
  2. 按照分区编号由小到大依次将每个分区中的数据写入任务工作目录下的临时文件output/spillN.out中。
  3. 将分区数据的元信息写道内存索引数据结构SpillRecorder中,每个元信息包含在临时文件中的偏移量、压缩前后的数据大小。

这些临时文件会在Combine阶段进行合并,最终生成一个文件,并保存到output/file.out中,同时生成响应的索引文件oiutput/file.out.index

那么问题来了,这些中间结果是否可以被第三方获取?是否可以进行加密?加密是否可逆?

在该书第11章《Hadoop安全机制》中有相关介绍。在未添加安全机制之前,任何用户可以通过URL来获取人意一个Map Task的中间输出结果。为了解决该问题,Hadoop在Reduce Task与TaskTracker之间的通信机制上添加了双向认证机制,以保证有且仅有同作业的Reduce Task才能够读取Map Task的中间结果。该双向认证是以它们之间的共享的作业令牌为基础。

过程如下:
TaskTracker对Red

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值