分享

HDFS数据传输的组织形式

oYaoXiang1 发表于 2013-10-25 10:46:16 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 7549
HDFS传输数据时是发送数据包(Packet)的形式,而Packet = Header + Checksum + Data.每个数据包(Packet)包含很多个Chunk,每次向Packet中写数据的时候是一次写一个Chunk,然后把Chunk的checksum和实际数据分别写入Checksum部分和Data部分,直到Packet写满为止。
:为什么按照每次写入一个Chunk的形式写数据吗?一次写入所有数据并计算checksum不可以么吗?
请大虾解答下,thx~~

已有(3)人评论

跳转到指定楼层
shihailong123 发表于 2013-10-25 10:46:16
回复 1# appletreer
看到有人这样解释:
[color=]1、实际是接收到了一个完整的packet在写磁盘的。不是每个chunk就写;
[color=]2、不集中校验的目的,应该是为了及早发现,正常情况下应该是没有区别的, 主要应该是为了避免异常情况下的额外数据传输。
回复

使用道具 举报

when30 发表于 2013-10-25 10:46:16
回复 2# hadoopor
    从Client向Datanode写数据的时候,也是把chunk写到Packet里,等Packet写满后把Packet放倒dataQueue里面,然后发送出去。那这里分chunk写入Packet也是为了校验的时候能早点发现异常吗?如果发现异常的话,是不是该Packet就放弃然后重新写了呢吗?
    thx~
回复

使用道具 举报

mexiang 发表于 2013-10-25 10:46:16
回复 3# appletreer
我理解应当是这样,不过一个packet只有64K,而一个chunk只有512字节,所以如果以packet为单位进行checksum是不是更好了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条