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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGlja2Vucw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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处理应答

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGlja2Vucw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

5)   Block传输写协议

MapReduce(十六): 写数据到HDFS的源代码分析的更多相关文章

  1. WCF技术剖析之十六:数据契约的等效性和版本控制

    原文:WCF技术剖析之十六:数据契约的等效性和版本控制 数据契约是对用于交换的数据结构的描述,是数据序列化和反序列化的依据.在一个WCF应用中,客户端和服务端必须通过等效的数据契约方能进行有效的数据交 ...

  2. mapreduce导出MSSQL的数据到HDFS

    今天想通过一些数据,来测试一下我的<基于信息熵的无字典分词算法>这篇文章的正确性.就写了一下MapReduce程序从MSSQL SERVER2008数据库里取数据分析.程序发布到hadoo ...

  3. Spring MVC 使用介绍(十六)数据验证 (三)分组、自定义、跨参数、其他

    一.概述 除了依赖注入.方法参数,Bean Validation 1.1定义的功能还包括: 1.分组验证 2.自定义验证规则 3.类级别验证 4.跨参数验证 5.组合多个验证注解 6.其他 二.分组验 ...

  4. .NET面试题系列(十六)数据库面试题

    数据库事务的四大特性 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚.因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ...

  5. HDFS的写数据过程分析

    HDFS的写数据过程分析 我们通过FileSystem类可以操控HDFS, 那我们就从这里开始分析写数据到HDFS的过程. 在我们向 HDFS 写文件的时候,调用的是 FileSystem.creat ...

  6. WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用

    原文:WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经> ...

  7. PYG5.4第十六期第一轮基础六题

    1. HYWZ-dts音效大师破解https://www.chinapyg.com/thread-135090-1-1.html(出处: 飘云阁(PYG官方论坛) ) 2. HYWZ-LopeEdit ...

  8. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  9. mapreduce 只使用Mapper往多个hbase表中写数据

    只使用Mapper不使用reduce会大大减少mapreduce程序的运行时间. 有时候程序会往多张hbase表写数据. 所以有如题的需求. 下面给出的代码,不是可以运行的代码,只是展示driver中 ...

随机推荐

  1. the rendering library is more recent than your version of android studio

    近期更新了自己Android Studio中的SDK到最新版本号,AS的一部分配置改动了. 然后 在打开布局文件的时候 会出现 渲染错误 Rendering problem the rendering ...

  2. Android Activity组件的启动过程

    0.总图 1.总图中的第一步,Laucher主线程向ActivityManagerService进程发出START_ACTIVITY_TRANSACTION 如图:第一步 ~/Android/fram ...

  3. chrome设置书签默认显示

    实用的设置! 这样已设置,就可以方便的查看一些常用的书签了!

  4. Python学习历程之模块浅识

    # =============================操作系统模块=======================# import os# 待续# ======================= ...

  5. Redis常用的命令

    常规命令查询地址: http://redisdoc.com/ 如下图:

  6. Python笔记(八)

    #-*-coding:utf-8-*- # Python内置函数 print abs(-45) # 绝对值函数 print divmod(7,2) # 返回一个包含商和余数的元组 # input(&q ...

  7. Python—使用xm.dom解析xml文件

    什么是DOM? 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口. 一个 DOM 的解析器在解析一个 XML 文档时,一次性读 ...

  8. IIS之虚拟目录学习

    从刚实习开始就了解到虚拟目录这个词,但是一直没去研究过什么意思,而且也没实际用过.一晃两年过去了,今天正好趁休息,补补脑学习下. 通过百度了解到,虚拟目录创建的目的是为了应对磁盘容量爆满,部署的网站不 ...

  9. Mysql-slowlog

    MySQL慢查询日志是MySQL提供的一种日志记录,用来记录执行时长超过指定时长的查询语句,具体指运行时间超过 long_query_time 值的 SQL 语句,则会被记录到慢查询日志中. long ...

  10. Python安装遇到的问题

    1.import MySQLdb  错误 导入MySQLdb模块时报错: >>> import MySQLdb Traceback (most recent call last): ...