hdfs服务

75 阅读2分钟

「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战

HDFS服务

是hadoop中的一个服务

分布式文件存储服务

层级目录结构 /itcast/zookeeper.out

HDFS设计目标

  • 故障检测和自动恢复功能
  • 存储大文件数据
  • 高吞吐量
  • 一次写入多次读取
  • 兼容性

HDFS的特性

  • 主从管理结构
    • 主服务 namenode 所有请求都要经过namenode 负责管理从服务datanode
    • 从服务 datanode 负责数据存储
  • 块存储(block)
    • 在磁盘上开辟一块一块空间存储数据,每一块存储空间大小是128m
  • 副本机制
    • 存储数据时不止存储一份,会根据指定副本数量存储相应个数据的数据内容,默认情况副本数量是3
  • 一次写入多次读取
  • 命名空间
    • 层级目录结构 /itcast/zookeeper.out
    • 存储数据时需要常见一个目录空间
    • 可以通过命名空间对数据进行区分 /user/ /order/

HDFS的核心服务

  • NameNode
    • 负责管理datanode
    • 所用请求交给namenode处理
    • 保存了元数据
      • 元数据:
        • 文件数据 文件路径,文件大小,文件名称,文件权限
        • 块数据 块在磁盘上的位置,块所属的datanode
        • datanode数据 datanode服务的状态,所有在服务器,
      • 元数据保存在内存上的
      • 持久化:将内存上的元数据,写入到磁盘上
    • namenode进行运行在内存较大的服务器上
    • 单点故障:一旦namenode出现问题,整个hdfs服务停止运行
  • datanode
    • 负责数据存储
    • 记录存储块的位置
    • 定时的将信息同步给namenode
      • 状态 心跳机制 默认3s
      • 块数据 默认6h

保存数据流程

获取数据流程

读取数据和写入数据第一步请求namenode,获取相关datanode信息

读数据 从返回的就近的运行状态的datanode中获取相应信息,如果多块数据,依次读取每块数据后同意合并多块数据存入本地文件

写数据 将数据写入就近机器,多个副本按照顺序依次写入数据,每次传递写入64kb数据

一个块内只有一个文件信息