hadoop(四)——hdfs基本架构

hdfs基本架构:
    nameNode
    dataNode
    secondaryNameNode
    
    运作方式:
        第一步:客户端向nameNode请求上传文件
        第二步:nameNode向客户端返回分配的dataNode
        第三步:客户端将文件分块,写入对应的dataNode
        问题:假如存入的文件都很小,会浪费nameNode的元数据空间,且对于mapreduce的数据分析来说也会降低运算效率
        ps:nameNode中一条元数据大概占150个byte
    

    nameNode管理元数据策略:
        磁盘存在一份:fsimage(写)
        内存也存在一份元数据(读)
        以日志文件记录新追加的元数据:edits log
        运作方式:
            1、客户端访问nameNode
            2、nameNode将元数据记入edits log中
            3、nameNode返回分配的dataNode
            4、客户端写入dataNode
            5、dataNode返回写入成功
            6、客户端告诉nameNode写入成功
            7、nameNode将信息更新到内存中
            8、每当edits log中的文件写满时,要将这一段时间edits log中的元数据刷新到fsimage中
                8.1、当edits log中的数据写满是,nameNode同时secondaryNameNode进行checkpoint操作
                8.2、secondaryNameNode告知nameNode停止往edits log中写入数据
                8.3、nameNode停止写入edits log,并生成一个edits.new,继续接收数据
                8.4、secondaryNameNode将edits log和fsimage下载下来,并进行合并,生成fsimage.checkpoint
                8.5、secondaryNameNode将fsimge.checkpoint上传个nameNode
                8.6、nameNode进行重命名操作
        如果nameNode节点宕机虽然可以在修复后恢复元数据,但在这一段时间中集群无法对外提供服务,可以部署备用nameNode
        这两个nameNode不能同时为客户端提供服务,一个active,一个standby,即highavalability,ha机制

    元数据格式:
        虚拟路径,副本数量,分片id,分片id+主机名
        示例:/test/a.log,3,{blk_1,blk_2},[{blk_1:[h0,h1,h3],{blk_2[h0,h2,h4]}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值