为了账号安全,请及时绑定邮箱和手机立即绑定

Hadoop中的Staging(客户端缓存)机制

标签:
Hadoop

客户端创建文件的请求其实并没有立即发送给 NameNode,事实上,在刚开始阶段HDFS客户端会先将文件数据缓存到本地的一个临时文件。应用程序的写操作被透明地重定向到这个临时文件。当这个临时文件累积的数据量超过一个数据块的大小,客户端才会联系NameNode。
NameNode 将文件名插入文件系统的层次结构中,并且 分配一个数据块给它。然后返回 DataNode 的标识符和目标数据块给客户端。接着客 户端将这块数据从本地临时文件上传到指定的 DataNode 上。当文件关闭时,在临时文件中剩余的没有上传的数据也会传输到指定的 DataNode 上。然后客户端告诉 NameNode 文件已经关闭。此时 NameNode 才将文件创建操作提交到日志里进行存 储。如果 NameNode 在文件关闭前宕机了,则该文件将丢失。 上述方法是对在 HDFS 上运行的目标应用进行认真考虑后得到的结果。这些应用 需要进行文件的流式写入。如果不采用客户端缓存,由于网络速度和网络堵塞会对吞 估量造成比较大的影响。
这种方法并不是没有先例的,早期的文件系统,比如 AFS, 就用客户端缓存来提高性能。为了达到更高的数据上传效率,已经放松了 POSIX 标准 的要求。



作者:dpengwang
链接:https://www.jianshu.com/p/47f46bd2df7e


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消