HDFS总结

1. 设计思想

  • 目的: 实现海量数据存储
  • 设计思想
    1)切块存储:避免namenode压力过大
    2)备份存储:避免节点压力过大宕机导致文件丢失

2. 架构

  • 主从架构

    • namenode:
      1)存储元数据
      2)接收客户端的读写请求
    • datanode:
      1)存储文件
      2)处理客户端读写请求
    • secondarynamenode:
      1)备份主节点,在主节点宕机时进行数据恢复保证集群正常运行
      2)帮助主节点减轻压力
  • 架构优缺点

    • 优点:
      可由廉价机构成、容错高、批处理、流式访问
    • 缺点:
      数据访问延时高(慢)、不擅长存储大量小文件(寻址时间长、namenode压力大)、不支持数据修改(多副本,修改成本高)

3. 两大核心——文件上传、下载

  • 文件上传:
    在这里插入图片描述

    • 上传注意问题:
      1)切片过程便上传边切片,有客户端负责
      2)pipline构建问题: 客户端—>副本1—>副本2—>副本3,当某一个节点出现问题便申请重连,多次申请出问题便将该节点踢出pipline,重建pipline
      3)上传过程中存在最低保障:至少有一个副本上传成功、第一个副本存放在客户端所在节点是本地复制,之后的副本复制为网络传输
  • 文件下载:
    在这里插入图片描述

  • 文件下载注意事项:
    1)下载失败时重试,依旧不成功更换副本下载,并汇报给namenode
    2)文件下载时每一个数据块读取都会进行crc文件效验
    什么是crc,见https://blog.csdn.net/d_leo/article/details/73572373

  • 元数据合并:
    在这里插入图片描述

    • 触发条件:时间:1小时 、日志条数:100w条

4. 4大机制

  • 心跳机制
    namenode获取datanode存活状况 ——datanode定期向namenode发送心跳状况,报告存活状况
    其过程: 3s检查一次,10次没连上后为宕机 此时namenode对datanode进行主动两次检查5min,判断宕机死亡

  • 机架策略

    • 副本存放策略(节点、机架、机房、数据中心)
    • 副本1:优先服务端节点,若服务端无节点任意节点
    • 副本2:不同机架任意节点
    • 副本3:副本2相同机架不同节点(便于写数据)
  • 负载均衡

    • 每一个datanode存储数据和硬件相关
    • 小集群:自动负载均衡
    • 大集群:自动速度过慢,需手动负载均衡(调整配置函数、调整带宽)
  • 安全模式

    • 概念:集群的安全模式是集群的一个自我保护的一种模式,在集群的安全模式下不允许用户对集群进行部分操作的。

    • 什么时候进入安全模式

      • 1、集群启动时
        • 启动namenode
          读取存储数据源(抽象目录树、数据和块的映射、数据块和节点的映射)
        • 启动datanode
          启动datanode进程、并发送心跳报告、接受心跳报告返回元数据位置信息
        • 启动secondearynamenode
          检查每一个数据块副本数
          检查符合标准数据块占比
          检查存活datanode个数
          保证标准状态维持30s后
      • 2、集群运行时也会检查
    • 安全模式可进行操作:只能查询,无法增删改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值