菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
213
0

HDFS快速入门

原创
05/13 14:22
阅读数 79691

一.简介

  HDFS【Hadoop Distributed File System】是Hadoop组件中的分布式存储系统,提供高可靠性、高扩展性和高吞吐率的数据存储服务。

二.存储模型

  1.文件线性切割成块【Block】,块分散存储在集群的各个节点中。

  2.单一文件Block大小一致,不同的文件可以设置的不一样。

  3.Block可以设置副本数,副本分散在不同的节点【副本数不要超过节点数,这样副本设置才有意义】。

  4.文件上传可以设置Block大小和副本数,已上传的文件Block副本数可以调整,大小不变。

  5.只支持一次写入多次读取,同一时刻只有一个写入,可以追加数据。

三.架构模型

  1.NameNode【主】节点保存文件元数据,DataNode节点保存文件Block数据。

  2.DataNode和NameNode之间通过心跳确认各个节点的健康情况,以及是否需要重启节点。

  3.HDFSClient与NameNode交互元数据信息,与DataNode交互文件Block数据【需先访问NameNode】。

  

四.NameNode【NN】

  特点:

  1.基于内存存储,不会和磁盘发生交换。

  2.接受客户端的读写请求,收集DataNode汇报的Block列表信息。

  3.保存metadata信息,包括:文件ownership和permissions、文件大小、时间、Block列表、Block偏移量、位置信息和Block副本位置【由DataNode上报】等。

  持久化:

  1.NameNode的metadata信息在启动后会加载到内存。

  2.metadata存储到磁盘文件名称为"fsimage"。

  3.Block的位置信息不会保存到fsimage。

  4.edits记录对metadata的操作日志。

五.DataNode【DN】

  特点:

  1.本地磁盘目录存储数据【Block】,文件形式

  2.同时存储Block的元数据信息文件

  3.启动DN时会向NN汇报block信息

  4.通过向NN发送心跳保持与其联系【3s一次】,如果NN10Minutes没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN节点

六.SecondaryNameNode【SNN】

  它不是NN的备份【但可以做备份】,它主要的工作是帮助NN合并edits log,减少NN启动时间。

  SNN执行合并时机

    》根据配置文件设置的时间间隔fs.checkpoint.period默认3600s

    》根据配置文件设置edits log大小fs.checkpoint.size规定edits文件的最大值默认是64M

  SNN合并流程图解:

  

七.优点

  1.高容错性

    》数据自动保存副本

    》副本丢失后自动恢复

  2.适合批处理

    》数据不动代码动

    》数据位置暴露给计算框架【Block偏移量】

  3.适合大数据处理

    》GB、TB、甚至PB级别数据

    》百万规模以上的文件数量

    》10k+节点

  4.可构建在廉价机器上

    》通过多副本提高可靠性

    》提供了容错和恢复机制

八.缺点

  1.小文件存取

    》占用NameNode大量内存

    》寻道时间超过读取时间

  2.并发写入、文件随机修改

    》一个文件只能有一个写者

    》仅支持append

  3.低延迟数据访问

    》数据延迟较大,比如毫秒级

    》低延迟与高吞吐率成反比

    

  

发表评论

0/200
213 点赞
0 评论
收藏