HDFS原理——HDFS就是一个情报组织(2)

声明:本博文图片来自于网络或者《Hadoop权威指南》,有关专业术语的标准解释参考《Hadoop权威指南》中文第二版。欢迎大家关注我的大数据专栏https://blog.csdn.net/column/details/23027.html

上一趴,简单的说明了这个情报组织的构成,客户端client,管理节点namenode,数据节点datanode。主要依靠namenode——datanode来进行文件系统的管理。这个组织有强大的容灾机制或者说容错机制,可以在任何一环出现故障时,能迅速的进行删除和替代,不让使用者发觉。
那日常这个组织怎么执行任务呢?
情报组织的任务只要分两种,第一种就是获取情报传递给上级,第二种就是及时传递上级的命令或情报。先说第一种,获取情报给上级组织client,那么从上级组织client的角度来说就是读取情报。步骤是这样的:client告知办公室主任DistributedFS我要情报,办公室主任是个厉害的角色,有自己隐秘的远程指挥基层组织的渠道(RPC)。他联系namenode,得到情报的存放地址(其实情报由每个特工存放,namenode管理)以及情报备份存放的地址。作为机要组织的办公室主任,如果再亲自去联系特工获得情报,也太掉面儿。所以主任要派一名自己的心腹FSDataInputStream(名字这么长,一看就是西域高手,笑!)去执行这项任务。情报工作想生存就要小心,这名心腹包装后化名DFSInputStream(相当于邦德,改名德邦)。
好吧暂且把DFSInputSteam称作为德邦吧,这个德邦要联系每个特工——datanode要情报啊。德邦做事有自己原则,他的原则就是就近原则啊,看起来比较懒,一次获取距离他近的特工的情报。万一有的特工正在执行任务不能亲自给,怎么办?那德邦就要自己去获取备份的情报了(副本中)。万一有的特工在送情报的路上,暴露被毙了咋办?德邦就要忍住剧痛,开心的向下一个距离近的特工获取情报(说起来,还挺感动呢!)。之后会检查被毙了那个特工的情报是否完全获取(从副本里获取),同时把这个噩耗通知给namenode。然后断开和最后一个特工的连接(每获取一个成功,都断开与之的联系)。德邦这一系列过程都在client的监视之下,当获取完毕的时候,client会发送一个终止命令close.
以下就是流程框图:
读取情报
要说明的是,这里block块的概念其实和磁盘中的存储单元块概念是一致的,只不过是对于块的大小不同。相对于磁盘块512byte来说,HDFS的块就大很多了,有128M。这么大的块也是为了减少寻址开销啊,比如找的人都在6号楼,总比10个人都不在同一栋楼省事多了。

下一趴要说说client发布命令或者分享情报给namenode时,这个情报组织是怎么运行的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值