分布式文件系统HDFS

1.1简介HDFS实现目标兼容廉价的硬件设备 实现流数据读写 支持大数据集 支持简单的文件模型 强大的跨平台兼容性HDFS自身的局限性不适合低延迟数据访问 无法高效存储大量小文件 不支持多用户写入及任意修改文件2.1概念块的概念支持面向大规模数据存储 降低分布式节点的寻址开销HDFS采用这种抽象的块的概念设计好处1.支持大规模文件存储:
摘要由CSDN通过智能技术生成

1.1简介

  • HDFS实现目标

    兼容廉价的硬件设备
    实现流数据读写
    支持大数据集
    支持简单的文件模型
    强大的跨平台兼容性

  • HDFS自身的局限性

    不适合低延迟数据访问
    无法高效存储大量小文件
    不支持多用户写入及任意修改文件

2.1概念

  • 块的概念

    支持面向大规模数据存储
    降低分布式节点的寻址开销

  • HDFS采用这种抽象的块的概念设计好处

    1.支持大规模文件存储: 文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上,因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量

    2.简化系统设计: 首先,大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理元数据

    适合数据备份: 每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性

  • 两大组件
    NameNode | DataNode

存储元数据 | 存储文件内容
元数据保存在内存中 | 文件内容保存在磁盘
保存文件,block,datanode之间的映射关系 | 维护了block id 到datanode本地文件的映射关系

  • NameNode
    提供元数据服务
    1.文件是什么
    2.文件被分成多少块
    3.每个块和文件是怎么映射的
    4.每个块被存储到在哪个服务器上面

  • 名称节点
    包含FsImage 和 EditLog

这里写图片描述

这里写图片描述

这里写图片描述

名称节点运行期间EditLog不断变大的问题

SecondaryNameNode的工作情况:
(1)SecondaryNameNode会定期和NameNode通信,请求其停止使用EditLog文件,暂时将新的写操作写到一个新的文件edit.new上来,这个操作是瞬间完成,上层写日志的函数完全感觉不到差别;
(2)SecondaryNameNode通过HTTPGET方式从NameNode上获取到FsImage和EditLog文件,并下载到本地的相应目录下;
(3)SecondaryNameNode将下载下来的FsImage载入到内存,然后一条一条地执行EditLog文件中的各项更新操作,使得内存中的FsImage保持最新;这个过程就是EditLog和FsImage文件合并;
(4)SecondaryNameNode执行完(3)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值