HDFS 简介 设计目标 特点 架构

8 篇文章 0 订阅

Hadoop Distributed File System

易于扩展的分布式文件系统

运行在大量普通廉价机器上,提供容错机制

为大量用户提供性能不错的文件存取服务

HDFS设计目标

  1. 自动快速检测应对硬件错误
  2. 流式访问数据
  3. 移动计算比移动数据本身更划算
  4. 简单一致性模型
  5. 异构平台可移植

优点

高可靠性:Hadoop存储和处理数据的能力强

高扩展性: 有效的分布数据计算,在不同节点上

高效性:动态的移动数据,可以保证各个节点之间的数据平衡

高容错: Hadoop能自动保存文件副本,执行计算任务失败会自动重新分配

缺点:

无法高效存储大量小文件(因为HDFS文件存储机制问题)

不支持多用户写入以及任意修改文件

不适合低延迟数据访问 

HDFS三个服务

  1. NameNode       metadata元数据
  2. SecondaryNameNode
  3. DataNode

NameNode

  • Namenode 是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的名字空间(namespace)以及客户端对文件的访问
  • 文件操作,NameNode 负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过NameNode,只会询问它跟那个DataNode联系,否则NameNode会成为系统的瓶颈。
  • 副本存放在哪些DataNode上由 NameNode来控制,根据全局情况做出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低带块消耗和读取时延。
  • Namenode 全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)。接收到心跳信号意味着该Datanode节点工作正常。块状态报告包含了一个该Datanode上所有数据块的列表。

DataNode

  • 一个数据块在DataNode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳
  • DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。
  • 心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode 的心跳,则认为该节点不可用。
  • 集群运行中可以安全加入和退出一些机器

文件

  • 文件切分成块(默认大小128M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3)
  • NameNode 是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表以及块所在的DataNode等等
  • DataNode 在本地文件系统存储文件块数据,以及块数据的校验和。
  • 可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值