分享

MapReduce shuffle时,map端溢写的小文件是存在HDFS上的吗

chenyui 2019-5-18 16:50:25 发表于 疑问解答 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 5453
从环形缓冲区溢写到本地磁盘 ,这个本地磁盘说的是HDFS吗

已有(4)人评论

跳转到指定楼层
bioger_hit 发表于 2019-5-18 18:04:49
mapreduce是跑在hadoop的,使用的存储系统是hdfs.

源码分析可以参考这篇
https://blog.csdn.net/weixin_42028303/article/details/80102587
更详细的楼主可以自己阅读下hadoop源码。
回复

使用道具 举报

chenyui 发表于 2019-5-19 14:38:51
bioger_hit 发表于 2019-5-18 18:04
mapreduce是跑在hadoop的,使用的存储系统是hdfs.

源码分析可以参考这篇

谢谢。
Path filename = this.mapOutputFile.getSpillFileForWrite(this.numSpills, size);//确认将数据溢出到那个文件中
out = this.rfs.create(filename);
但是还没看懂这个filename是创建在哪(HDFS还是Linux本地磁盘)

回复

使用道具 举报

bioger_hit 发表于 2019-5-19 16:32:37
本帖最后由 bioger_hit 于 2019-5-19 16:39 编辑
chenyui 发表于 2019-5-19 14:38
谢谢。
Path filename = this.mapOutputFile.getSpillFileForWrite(this.numSpills, size);//确认将数据 ...

个人认为这个要看怎么配置了。
比如我们本地配置使用的是本地磁盘,比如file:///,那么在shuffle的时候使用就是本地磁盘
如果配置的时候使用的hdfs,那么shuffle的时候,使用就是hdfs.
当然楼主最好下载hadoop源码看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条