博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MapReduce(十六): 写数据到HDFS的源代码分析
阅读量:6577 次
发布时间:2019-06-24

本文共 557 字,大约阅读时间需要 1 分钟。

1)   LineRecordWriter负责把Key,Value的形式把数据写入到DFSOutputStream

2)   DFSOutputStream负责把LineRecordWriter写入的数据发送到Datanode中。对LineRecordWriter写入的数据首先依照一个个chunk切割,然后打包成Packet发送给datanode,datanode负责对接收的数据备份到其他datanode上。发送数据时,发送线程和结果接收线程分开,对发送队列的数据完毕发送后。转移的结果接收队列中,等待datanode对数据保存,备份是否正确的应答,假设datanode保存失败,则对datanode。包含备份datanode的数据恢复到失败的前一刻。然后继续向datanode发送数据保存。

把LineRecordWriter中写入的数据先放到缓存中: 

Buffer满了后,就把数据依照chunk封装到packet中,packet写满后就把packet放到发送队列中。等待发送线程发送给datanode

3)   DataStreamer负责把队列中放入packet的数据发送到datanode上

 

4)   ReponseProcessor负责对发送的packet数据接收datanode处理应答

5)   Block传输写协议

你可能感兴趣的文章
inno setup 打包脚本学习
查看>>
php 并发控制中的独占锁
查看>>
[Leetcode] Factor Combinations 因数组合
查看>>
APM终端用户体验监控分析(下)
查看>>
React Native 0.20官方入门教程
查看>>
JSON for Modern C++ 3.6.0 发布
查看>>
Tomcat9.0部署iot.war(环境mysql8.0,centos7.2)
查看>>
我的友情链接
查看>>
监听在微信中打开页面时的自带返回按钮事件
查看>>
第一个php页面
查看>>
世界各国EMC认证大全
查看>>
最优化问题中黄金分割法的代码
查看>>
在JS中使用Ajax
查看>>
Jolt大奖获奖图书
查看>>
android中webview空间通过Img 标签显示sd卡中 的图片
查看>>
url 的正则表达式:path-to-regexp
查看>>
ubuntu 16.04 安装PhpMyAdmin
查看>>
安卓开启多个服务
查看>>
设置分录行按钮监听事件
查看>>
C Primer Plus 第5章 运算符、表达式和语句 5.2基本运算符
查看>>