HDFS读数据流程、NN和2NN工作机制、DataNode工作机制、数据完整性

HDFS读数据流程

      事件描述:客户端要下载一个200m的数据文件,hdfs是如何读取的。

      两个对象:一个客户端、一个集群

      流程:

              1.客户端创建一个分布式文件系统(DistributedFileSystem),向集群NameNode请求下载文件。

               2.集群判断客户端是否有权限,并判断是否有对应的文件,并返回目标文件元数据。

               3.客户端创建一个流对象,选择读取节点的原则:首先考虑节点距离最近,然后要看该节点是否数据量很大,(负载均衡问题)当达到一定的量级后访问其他节点。读取顺序:先读第一块,再读第二块。

NN和2NN工作机制

       思考:NameNode中的元数据是存储在哪里?

       回答:NameNode元数据存放在内存中。但是一旦断电,元数据丢失。因此产生在磁盘中备份元数据的FsImage。但是内存的元数据更新时,如果同时更新FsImage会导致效率低,为了能够进行更新,引入Edits文件(只进行追加操作,效率高)。每当元数据有更新或者添加元素时,修改内存中的元数据并追加到Edits中。一旦断电,可以通过FsImage和Edits的合并,合成元数据。

      工作流程:服务器一启动,将FsIamge和Edits加载到内存。服务器一关机,将Edits和FsImage合并 。若Edits追加过多,需要2NN将Edits和FsImage定期合并

       NN和2NN之间的区别是NN中记录了最新的inprogress操作。

DataNode工作机制

         工作机制

                 1.DataNode启动后向NameNode注册,并汇报DataNode中有哪些块信息

                 2.DataNode每周期上报所有块信息

                 3.DataNode每过3秒告诉NameNode还活着,若超过3秒没有回复,则再等10分钟,若再超过10分钟,再等30秒,若还是没有收到心跳,则说明该节点不可用

      掉线时限参数设置:

           如果hadoop被挂掉了,在被挂掉的hadoop中使用命令即可恢复:

hdfs --daemon start datanode

数据完整性

     对原始数据进行封装,使用奇偶校验位,若1的个数是偶数,则为0;若1的个数是奇数则为1;为防止网络传输错误,使用crc校验位,对比传输后的数据看是否一致。

       

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值