HDFS1.0

1、本质
HDFS(Hadoop Distributed File System) 是一种适合运行在通用文件上的分布式文件系统
架构图:
2、特点
  • 存储并管理PB数据
  • 处理非结构化数据
  • 高度容错
  • write-once-read-many存取模式无数据一致性问题
不适合做
  • 存储小文件(不建议)
  • 大量随机读(不建议)
  • 需要对文件进行修改(不支持)
  • 多用户写入(不支持)
3、组成部分
  • NameNode :主节点,只允许有一个
  • SecondaryNameNode:检查点节点,助手节点
  • DataNode:从节点,可以有多个
NameNode
  1. 作用
    1. 管理着文件系统命名空间
    • 维护着文件系统树中的所有文件和目录
  • 在内存中存储元数据
    • NameNode 保存源信息的种类有
      • 文件名目录名和它们之间的层级关系
      • 文件目录的所有者及其权限
      • 每个文件块的名及文件由哪些块组成
  • 元数据保存在内存中
    • NameNode 元信息并不包含每个块的位置信息
  • 保存文件、block、datanode之间的映射关系
  1. 单点问题
    1. Hadoop系统只有一个NameNode
  2. 两种解决方案
    1. 将hadoop元数据写到本地同时,在实施同步到一个远程挂载的网络文件系统
    2. 运行一个secondaryNameNode (定时更新 fsimage,edits 文件 重启时namenode加载最新信息 -当然也会有一定延迟)
SecondaryNameNode
  1. 作用
    1. 元信息持久化到磁盘
      1. 存放元信息的文件是fsimage
      2. 存放对元信息操作的文件是edits
    2. 定时到NameNode上获取最新edit logs 并更新到fsimage(SecondaryNameNode 自己的fsimage)
    3. 一旦有了新的fsimage会拷贝到NameNode中,下次NameNode重启时减少重启时间
DataNode
  1. 作用
    1. 负责存储数据块,负责为系统客户端提供数据块的读写服务
    2. 根据NameNode的指示进行,创建,删除,复制等操作
    3. 心跳机制,定期报告文件块列表信息
    4. DataNode之间进行通信,块的副本处理
  2. block
    1. Hdfs读写的基本单位,默认64M,磁盘块512B
    2. 块增大,可以减少寻址时间,文件传输时间
    3. 块过大,会导致整体任务数据过小,降低任务处理速度
三个策略
  1. 机架感知策略
第一个副本:放在客户端相同的节点上,(如果客户端是集群外的一台机器,则随机算节点,系统会调算太忙太满的节点)
第二个副本:放在不同的机架上
第三个副本:放在与第二个节点相同机架但不同节点上

  • distance(/D1/R1/H1,/D1/R1/H1)=0 相同的datanode
  • distance(/D1/R1/H1,/D1/R1/H3)=2 同一rack下的不同datanode
  • distance(/D1/R1/H1,/D1/R2/H5)=2 同一IDC下的不同datanode
  • distance(/D1/R1/H1,/D2/R3/H6)=2 不同IDC下的不同datanode
  1. 数据完整性校验
    1. 不希望在存储和处理数据时丢失或损坏任何数据
    2. HDFS 会对写入的数据计算校验和,并在读取数据时验证校验和
    3. 两种检验方法:
      1. – 校验和 • 检测损坏数据的常用方法是在第一次进行系统时计算数据的校验和,在通道传输过程中,如果新生成的校验和 不完全匹配原始的校验和,那么数据就会被认为是被损坏的。
      2. – 数据块检测程序DataBlockScanner • 在DataNode节点上开启一个后台线程,来定期验证存储在它上所有块,这个是防止物理介质出现损减情况而 造成的数据损坏。
  2. 容错可靠性措施
    1. 一个名字节点和多个数据节点 • 数据复制(冗余机制)
    2. 存放的位置(机架感知策略)
    3. 故障检测
      1. 数据节点
        1. 心跳包(检测是否宕机)
        2. 快报告(安全模式下检测)
        3. 数据完整性检测(校验和比较)
      2. 名字节点(日志文件,镜像文件)
    4. 空间回收机制 – Trash目录






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值