hadoop文档仓库 简述hadoop和opc的通信

先看下数据写入的流程图先看数据写的流程图。数据包写入过程以文字的形式梳理以上步骤。目标将一个本地文件a.txt上传到hdfs文件系统中,hdfs中默认blockSize=128M***因子默认为3详细步骤客户端根据配置信息与NameNode建立连接,并告诉NameNode,将a.txt文件上传到hdfs的/tmp/...

先看下数据写入的流程图

先看数据写的流程图。

数据包写入过程

以文字的形式梳理以上步骤。

目标

将一个本地文件a.txt上传到hdfs文件系统中,hdfs中默认blockSize=128M***因子默认为3

详细步骤

客户端根据配置信息与NameNode建立连接

,并告诉NameNode,将a.txt文件上传到hdfs的/tmp/a.txt路径

NameNode生成一个值为1的blockId(用来创建对应blockId的block文件),并根据***因子3返回对应个数的可用来存放当前block的DataNode节点到客户端

,比如(DN1、DN2、DN3)

客户端与DN1建立连接

然后将blockId、DN2、DN3等相关数据先发送给DN1

DN1接收到这个信息之后与DN2建立连接

然后将blockID、DN3等相关数据发送给DN2

DN2接收到这个数据之后与DN3建立连接

然后将blockID发送给DN3

客户端读取本地文件内容并放入内存缓冲区中

,当缓冲区满,开始将缓冲区中的数据取出,并计算校验和(每512字节的实际数据会计算出一个4字节的校验和,这512字节的数据和校验和称为一个chunk),然后这个chunk写入到一个dataPacket中,

当dataPacket中chunk的数量或实际数据大小达到一定阈值后将这个dataPacket发送给DN1

并将这个dataPacket放入到一个ackQueue队列中

(当客户端接收到DN1的确认写入的信息之后才将这个dataPacket从队列中移除)

DN1接收到客户端发送的数据之后

,将dataPacket中的数据和校验和写入本地文件中,然后将dataPacket发送给DN2

DN2接收到DN1发送的数据之后

,将dataPacket中的数据和校验和写入本地文件中,然后dataPacket发送给DN3

DN3接收到DN2发送的数据之后

,将dataPacket中的数据和校验和写入本地文件中,然后发送确认信息给DN2

DN2接收到DN3的确认消息之后将DN2自己的确认信息和DN3的确认信息发送给DN1

DN1接收到DN2发来的确认信息后(包含DN2和DN3的确认信息),将DN1自己的确认信息和DN2、DN3的确认信息一起响应给客户端

客户端接收到信息之后对DN1、DN2、DN3的确认信息进行验证,验证成功,则将ackQueue中的dataPacket移除

客户端继续执行同样的操作,直到发送出的真实数据量达到blockSize大小,此时一个block的写入完毕

注意

当客户端发送数据的字节数量达到一个blockSize之后,会向NameNode重新请求一个新的blockId及相关的DataNode信息哦

下面的流程图用于加深对将数据写入DataNode的过程的理解。

图(以数据包写入为例)

本文来自墨尔本·晴投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/585387.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 06-10
下一篇 06-10

相关推荐

  • 通信大数据行程卡没有找到行程数据解决方法

    1.大数据中找不到出行信息的原因有以下几点:1。用户过去14天的常驻通话有效数据不足,用户需要记录过去14天内单日在一个城市的数据。最早和最晚的间隔可以超过4小时,以显示旅行路线。2.中国电信、中国移动联通三家运营商任意一家的用户都是;请问您最近14天是否在XX逗留超过

    2023-07-19 19:44:01
    771 0
  • c#串口通信 opencv入门教程

    用于串行端口操作的类,包括写和读操作。类可以设置串口参数,设置接收函数,打开串口资源,关闭串口资源。操作完成后,它必须关闭串口,接收串行数据事件,接收数据错误事件,获取所有当前串口,并将字节类型转换为十六进制字符串。此串行端口类已经过调试,可以使用:使用系

    2023-07-14 17:05:01
    959 0
  • 通信运营是做什么的 附其通信运营近况

    近日,市工信局组织通信运营企业召开全国文明城市创建工作推进会和约谈会,对近期创建工作进行了安排部署。兰州电信、兰州移动、兰州联通创建工作负责人及各测点营业厅负责人80余人参加了会议。本次会议再次强调了创建城市工作的重要性,要求各通信运营商实测点负责人高度重视

    2023-07-13 23:07:01
    764 0
  • android线程间通信有哪些方式 android进程间通信方式讲解

    1、通过Handler机制。处理程序在主线程中定义,子线程发送消息通知处理程序完成UI更新。处理程序对象必须在主线程中定义。如果多个类直接互相调用,不是很方便,需要通过接口传递内容对象或者调用。private void one() { handler=new Handler(){ @Override public void handl

    2023-07-04 05:54:01
    452 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信