Hadoop03

日志级别

        info (多)

        warn(偏少)

        error(更少,需要解决)

1、HDFS写流程

        对用户操作是无感知的

        1、client调用FileSystem.create去对namenode进行rpc通信

        namenode检查文件是否存在,是否有权限创建文件;如果都可以,

        不存在则创建一个新文件,此时还没有写数据,不关联任何block。

        根据上传文件的大小,块大小和副本数,决定上传多少块和块存储的

        DataNode的位置,最终将这些信息发送个FSDataOutputStream对象。

2、client调用FSDataOutputStream对象

        write方法

        第一个块的副本数写第一个 DataNode节点

        写完去第二个DataNode节点写入第二个副本

        写完去第三个DataNode节点写入第三个副本

        第三个写完后,就返回一个ack packet确认包个第二个DataNode节点

        收到后也发送一个ack packet确认包个第一个DataNode节点

        第一个DataNode节点收到后自己也写完了就也发送一个ack packet确认包给

       FSDataOutputStream对象表示了一个 块的三副本写完了。

其它块以此类推

3、当所有块全部写完,client调用FSDataOutputStream对象的close方法,告诉namenode文件全部写完。

2、HDFS读流程

1、client调用fs.open与namenode进行rpc通信返回该文件部分或全部的block列表。

2、client调用FSDataInputStream对象read方法

与第一个块最近的DataNode进行读取,读取完成会chock,假如成功则关闭与DataNode通信

失败则记录DataNode + block信息,下次则不会在这个节点进行读取。那么就丛离第二个块最近的进行读取,以此类推。

假如block列表已经全部完成,文件还没有读取完继续调用fs从nn获取下一批block列表,以此类推。

3、client调用FSDataInputStream对象close方法关闭流。

3.HDFS副本放置策略

第一副本:

        放置在client上传的DN节点

        client不在节点DN上,就随机选择一个DN节点

第二副本:

        放置在第一个副本不同的机架上的某个DN节点

第三副本:

        与第二副本相同机架的不同节点上

补充:

        副本数 3

        副本数更多 则随机放置

4、HDFS安全模式

        什么时候启动安全模式?

                启动hadoop时

                hdfs故障(集群块大量丢失,集群不稳定)

                人为进入安全模式:与业务有关

                        命令:

                                

hdfs dfsadmin -safemode get
hdfs dfsadmin -safemode enter

        安全模式对业务有什么影响:

                可以读文件

                不可以写文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值