HDFS写详解 block、packet与chunk

剖析大数据 HDFS 的数据传输协议与流程 HDFS的数据传输依赖两类协议:RPC(元数据交互)、BlockTransferProtocol(数据传输);写流程的核心是Pipeline:客户端通过链式连接将Packet传输给多个DataNode,保证副本同步;读流程的核心是选择最优DataNode:优先读本地Block、同一机架的Block,减少网络延迟;副本复制是NN的主动行为:当副本数不足时,NN会触发DataNode之间的Block传输,恢复副本数。 阅读详情

block、packet与chunk

在DFSClient写HDFS的过程中,有三个需要搞清楚的单位:block、packet与chunk;

  • block是最大的一个单位,它是最终存储于DataNode上的数据粒度,由dfs.block.size参数决定,默认是64M;注:这个参数由客户端配置决定;
  • packet是中等的一个单位,它是数据由DFSClient流向DataNode的粒度,以dfs.write.packet.size参数为参考值,默认是64K;注:这个参数为参考值,是指真正在进行数据传输时,会以它为基准进行调整,调整的原因是一个packet有特定的结构,调整的目标是这个packet的大小刚好包含结构中的所有成员,同时也保证写到DataNode后当前block的大小不超过设定值;
  • chunk是最小的一个单位,它是DFSClient到DataNode数据传输中进行数据校验的粒度,由io.bytes.per.checksum参数决定,默认是512B;注:事实上一个chunk还包含4B的校验值,因而chunk写入packet时是516B;数据与检验值的比值为128:1,所以对于一个128M的block会有一个1M的校验文件与之对应;

写过程中的三层buffer
写过程中会以chunk、packet及packet queue三个粒度做三层缓存;

  • 首先,当数据流入DFSOutputStream时,DFSOutputStream内会有一个chunk大小的buf,当数据写满这个buf(或遇到强制flush),会计算checksum值,然后填塞进packet;
  • 当一个chunk填塞进入packet后,仍然不会立即发送,而是累积到一个packet填满后,将这个packet放入dataqueue队列;
  • 进入dataqueue队列的packet会被另一线程按序取出发送到datanode;(注:生产者消费者模型,阻塞生产者的条件是dataqueue与ackqueue之和超过一个block的packet上限)
三层buf


作者:jackLee
链接:https://www.jianshu.com/p/0fe0b1d2ff09
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
从零构建简历智能匹配系统:AI技术助力高效招聘 本文详细介绍了简历智能匹配系统的开发过程,从数据收集、预处理、特征提取到模型匹配和结果展示,每一步都提供了详细的代码实例。通过使用TF-IDF、Word2Vec和BERT等技术,我们能够有效地将求职者的简历与职位描述进行匹配,从而提高招聘效率。未来,随着自然语言处理技术的进一步发展,简历智能匹配系统将变得更加智能和高效,为企业和求职者提供更好的服务。 阅读详情

相关推荐

STM32进入HardFault_Handler时,如何找到问题所在?

当STM32进入HardFault_Handler时,定位问题发生的点

m0_60831979的博客 2152

hadoop包简介-HDFS的概念

Hadoop的package的介绍: Package Dependences tool 提供一些命令行工具,如DistCp,archive mapreduc...

241

Sentinel-1 Burst数据处理避坑实录:从aria2c报错到wget脚本救场

本文详细介绍了Sentinel-1 Burst数据处理的完整解决方案,从下载困境到高效处理技巧。针对aria2c报错等常见问题,提供了增强版wget脚本和智能分组方法,显著提升下载成功率和处理效率,特别适合科研机构和企业级网络环境下的哨兵数据处理需求。

weixin_42641998的博客 284

HDFS写流程

先上图: 现在客户端要上传一个200M的文件t1.txt到HDFS中: 1.客户端先创建和NameNode进行通信的对象DistributedFileSystem和获得能够与DataNode进行I/O操作的流对象FSDataOutputStream(FSDataOutputStream还封装了一个DFSoutPutstream对象来负责处理DataNode和NameNode之间的通信) 2.客户端请求NameNode上传文件 t1.txt(客户端向NameNode发送请求) 3.NameNode收到请求

qq_40031581的博客 242

从零构建XVC协议栈:FPGA+W5300的跨界调试架构实战

本文详细介绍了如何从零构建XVC协议栈,通过FPGA与W5300以太网控制器的创新组合实现跨界调试架构。重点解析了JTAG时序逆向、TCP/IP协议栈集成与XVC协议实现,提供了硬件设计优化和性能加速技术,为嵌入式开发者和FPGA工程师提供实用的远程调试解决方案。

raspberrypi5的博客 251

kettle9.0+ 连接Hadoop报错

kettle bug

x²+(y-√³x²)²=1的博客 1562

一文搞懂HDFS分布式文件系统

HDFS的介绍、主从节点功能、HDFS架构图、HDFS读写流程、HDFS元数据安全、HDFS客户端管理操作、HDFS的HA架构和联邦机制等等。

浅谈 2069

AI影像组学在结直肠癌诊疗中的应用:从特征提取到临床决策

影像组学通过高通量计算从医学影像中提取定量特征,揭示肿瘤内部的微观生物学行为,这些特征反映了纹理异质性、形状不规则度等影像表型。其核心原理在于将图像数据转化为可分析的数字特征,结合机器学习算法进行模式识别,从而实现对疾病状态的精准预测。这一技术的价值在于能够无创、定量地评估肿瘤特性,为精准医疗提供关键支持。在临床实践中,AI驱动的影像组学模型广泛应用于结直肠癌的诊疗全链条,包括肿瘤良恶性鉴别、基因突变预测、治疗反应评估和预后分析等场景。通过整合影像组学特征与临床数据,可以构建预测模型,辅助医生进行更准确的诊

weixin_28295799的博客 410

hadoop ----4 hdfs

HDFS,是Hadoop Distributed File System的简称,是Hadoop抽象文件系统的一种实现。Hadoop抽象文件系统可以与本地系统、Amazon S3等集成,甚至可以通过Web协议(webhsfs)来操作。HDFS的文件分布在集群机器上,同时提供副本进行容错及可靠性保证。例如客户端写入读取文件的直接操作都是分布在集群各个机器上的 优点 1 高可用,多副本 2 GB PB级别的数据量 3 廉价机器 缺点 1 不适合低延时 2 不适合小文件处理 3 不适合并发 4 不适合随机文件修改。

曲终人散 262

从零到一:RV1126与IMX415的硬件交响曲——深入解析Linux IPC摄像头的硬件调试艺术

本文深入解析了RV1126与IMX415组合的Linux IPC摄像头硬件调试技术,涵盖硬件接口检查、设备树配置、驱动加载验证及ISP调优等关键步骤。通过详细的操作指南和常见问题解决方案,帮助开发者快速掌握摄像头调试技巧,提升开发效率。

weixin_29161785的博客 990

解决Office 365 SMTP问题:C#邮件发送详解

本文介绍了如何在C#中使用Office 365 SMTP服务发送邮件。重点讲解了正确配置SMTP客户端的关键参数:必须使用587端口并启用TLS加密(EnableSsl=true),同时通过NetworkCredential进行身份验证。虽然SmtpClient已不推荐用于新项目,但本文提供的代码示例仍适用于临时项目或系统维护,并建议未来可考虑使用MailKit等现代邮件库。文章还包含了错误处理机制,确保程序健壮性。

2501_90323865的博客 141

HDFS读写理解

几个概念 block 一般设为128m,hdfs是按块存储的 packet packet是第二大的单位,它是client端向datanode,或者 datanode之间传输数据的基本单位,默认是 64k chunk chunk是最小的单位,它是client向DataNode,或DataNode的PipLine之间进行数据校验的基本单位,默认512Byte,因为用作校验,故每个chunk...

linqichen的博客 370

【Visual Assist X助手安装问题】Visual Assist X无法安装(双击安装包没反应) | Visual Assist X安装后在Visual Studio中找不到(亲测有效)

本文分享了Visual Assisant X助手的安装与使用问题的详细解决办法,因为网上搜集的信息比较少,所以有一定的参考价值。考虑到很多开发新手会遇到上述问题,可能对Windows系统不熟悉,所以相关操作步骤讲解的很详细!

dvlinker的技术专栏 6万+

关于HDFS的 block、packet与chunk详解

block、packet与chunk在DFSClient写HDFS的过程中,有三个需要搞清楚的单位:block、packet与chunk;block是最大的一个单位,它是最终存储于DataNode上的数据粒度,由dfs.block.size参数决定,默认是64M;注:这个参数由客户端配置决定;packet是中等的一个单位,它是数据由DFSClient流向DataNode的粒度,以dfs.write...

axjzf的博客 3936

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

hdfs 数据流单位 block、packet与chunk

block、packet与chunk在DFSClient写HDFS的过程中,有三个需要搞清楚的单位:block、packet与chunk;block是最大的一个单位,它是最终存储于DataNode上的数据粒度,由dfs.block.size参数决定,默认是64M;注:这个参数由客户端配置决定;packet是中等的一个单位,它是数据由DFSClient流向DataNode的粒度,以dfs.write...

weixin_30278311的博客 367

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

一文吃透 HDFS:从 block 到 chunk 的读写全流程

本文详细解析了HDFS文件系统的存储结构和读写机制。核心包括三个层级:128MB的block(存储调度单元)、64KB的packet(传输单元)和512B的chunk(校验单元)。写流程分七步完成,从NameNode申请到pipeline传输,通过chunk级校验确保数据安全;读流程则通过四步就近获取数据并校验完整性。系统采用文件-block-chunk三级校验机制,任何环节发现错误都会触发副本重读,确保数据零丢失。(149字)

weixin_42607770的博客 632

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

HDFS------block,packet,chunk的关系

在看hdfs时,经常会碰到block,packet,chunk等概念,下面做个简要介绍: block是最大的,默认为:"fs.local.block.size", 32 * 1024 * 1024=32m packet其次, 默认为:"dfs.write.packet.siz

shuhuai007的专栏 3299

HDFS读写数据的过程

1、数据单位:   block :文件上传前需要分块,这个块就是block,一般为128MB,可以修改。因为块太小:寻址时间占比过高。块太大:Map任务数太少,作业执行速度变慢。它是最大的       一个单位。   packet :packet是第二大的单位,它是client端向DataNode,或DataNode的PipLine之间传数据的基本单位,默认64KB。   chunk :chunk是最小的单位,它是client向DataNode,或DataNode的PipLine之间进行数据校验的基

Rnan_prince的博客 4042

chunk block, packet区别

在看hdfs时,经常会碰到block,packet,chunk等概念,下面做个简要介绍: block是最大的,默认为:"fs.local.block.size", 32 * 1024 * 1024=32m packet其次, 默认为:"dfs.write.packet.size", 64*1024=64k chunksize  默认为:"io.bytes.per.checksum

cloudeagle_bupt的专栏 7712

HDFS读写流程(最新史上最详细)

Namenode 和 Datanode HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。 Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace),以及客户端对文件的访问。负责元数据(hdfs的目录结构及每一个文件的块信息【块的id,块的副本数量,块的存放位置<datanode>】)的存储,namenode的实时的完整的元数据存储在内存中;namenode还会在磁盘中(dfs.namenode

痞子磊的博客 9648

hadoop hdfs 读写流程

概述 开始之前先看看其基本属性,HDFS(Hadoop Distributed File System)是GFS的开源实现。 特点如下: 能够运行在廉价机器上,硬件出错常态,需要具备高容错性 流式数据访问,而不是随机读写 面向大规模数据集,能够进行批处理、能够横向扩展 简单一致性模型,假定文件是一次写入、多次读取 缺点: 不支持低延迟数据访问 不适合大量小文件存储(因为每条元数据占...

lsp的博客 1万+

Hadoop:文件操作过程之HDFS写流程详解(部分源码)

写流程 在创建了分布式文件系统的实例后,客户端通过调用该实例的create()方法就可以创建文件,并会发送给Namenode一个RPC调用,在文件系统的命名空间中创建一个新文件,在创建文件前namenode会做一些检查(如文件是否存在,客户端是否有权限)。检查通过后namenode会为创建文件写一条记录到本地磁盘的Editlog文件,创建成功后DFS实例会返回一个FSDataOutputStre...

Jodness' Blogs 1666

6HDFS的读写流程及多线程写问题

1、HDFS之block package chunk 了解hdfs的读写流程,首先要了解block、package、chunk的概念。 1、block 这个大家应该知道,文件上传前需要分块,这个块就是block,一般为128MB,当然你可以去改,不顾不推荐。因为块太小:寻址时间占比过高。块太大:Map任务数太少,作业执行速度变慢。它是最大的一个单位。 2、package packet是第二大的单...

yangbllove的博客 2272

hdfs读写流程_详解HDFS读写流程

关于HDFS的 block、packet与chunk详解block、packet与chunk在DFSClient写HDFS的过程中,有三个需要搞清楚的单位:block、packet与chunk;block是最大的一个单位,它是最终存储于DataNode上的数据粒度,由dfs.block.size参数决定,默认是128M;注:这个参数由客户端配置决定;packet是中等的一个单位,它是数据...

weixin_39596975的博客 265

hdfs 中chunk_HDFS写文件流程(详细必看)

HDFS(Hadoop Distributed File System)是GFS的开源实现。特点如下:能够运行在廉价机器上,硬件出错常态,需要具备高容错性流式数据访问,而不是随机读写面向大规模数据集,能够进行批处理、能够横向扩展简单一致性模型,假定文件是一次写入、多次读取缺点:不支持低延迟数据访问不适合大量小文件存储(因为每条元数据占用空间是一定的)不支持并发写入,一个文件只能有一个写入者不支持文...

weixin_39624097的博客 411

HDFS中的block、packet、chunk

chunk是最小的单位,它是client向DataNode,或DataNode的PipLine之间进行数据校验的基本单位,默认512Byte,因为用作校验,故每个chunk需要带有4Byte的校验位。这个大家应该知道,文件上传前需要分块,这个块就是block,一般为128MB,当然你可以去改,不顾不推荐。块太大Map任务数太少,作业执行速度变慢。它是最大的一个单位。packet是第二大的单位,它是client端向DataNode,或DataNode的PipLine之间传数据的基本单位,默认64KB。...

693
上一篇: 提高性能的数据库纵向分割和横向分割
下一篇: Hadoop分块与分片介绍及分片和分块大小相同的原因
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值