hadoop几个常见的面试题总结(client与hdfs读写流程交互)

1>客户端与hdfs文件系统的交互问题

              a:读流程:   1>client调用distributeFileSystem的Api的open方法,与Namenode建立通信,请求读取一个制定路径下的文件,此时NameNode会去查合并的编辑日志和镜像文件,以及会根据Namenode和Datanode之间的心跳报告,得知该数据的健康性,和完整性.,如果该文件已经损坏,则返回异常

                               2>当数据是健康的状态,Namenode会返回给客户端该数据存储在哪个对应的Datanode上

                               3>client得到数据的基本信息(存储位置信息)并调用FSDataputstram api与对应的Datanode建立对应的流数据传输通道,数据以packet(64kb)进行数据的传输,先在本地进行缓存,在传输到目标位置

               b:写流程:1>chient调用distributeFileSystem的api的create方法,与Namenode进行通信,并请求上传文件,以及文件的元数据信息 

                             2>Namenode拿到文件的元数据信息(主要是文件路径),Nomenode会读取编辑日志文件和镜像文件去查看该hdfs目录下是否已经存在该文件,如何存在返回,如果不存在

                             3>在该文件不存在的情况下  ,Namenode会根据自己切分算法。将数据切分为多个块block(128m,逻辑上的切分),并选择合适的Datanode存放数据节点返回给client

                              4>client调用FsInputStream的write方法,首先将一个block写道对应的datanode上

                               5>由已知上传的数据块,开启另一一个新的线程,进行副本的存放策略

                                                       策略:第一个副本考虑与client最接近的机器(提高读取性能,基于性能考虑)

                                                                第二个副本,跨机器存放该副本(考虑数据的安全性.可靠性策略)

                                                                第三个副本,与第一个,第二个副本都不在同一个机架上(基于数据安全性考虑)

    

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值