Hadoop之HDFS

HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,用于对海量数据的存储和管理,可以运行于廉价的服务器上,它的出现解决了海量非关系型的数据存储问题。

HDFS的优点

  1. 支持超大文件:将文件进行切块分别放到不同的节点上
  2. 检测和快速应对硬件故障:心跳机制
  3. 流式数据访问
  4. 简化的一致性模型:只要一个文件块写好,那么这个文件块就不允许在进行改动,只能读取。
  5. 高容错性:多复本。
  6. 可构建在廉价机器上:HDFS具有较好的扩展性。

HDFS的缺点

  1. 高延迟数据访问:不适合于交互式,也就意味着Hadoop不适合做实时分析,而是做的离线分析。
  2. 大量的小文件:文件的存储要经过namenode,namenode中要记录元数据,元数据是存储在内存中。大量的小文件会产生大量的元数据,导致内存被大量占用,降低namenode的处理效率。
  3. 多用户写入文件、修改文件:在hadoop2.0版本中,不支持修改,但是支持追加。
  4. 不支持超强的事务。

HDFS的结构
在这里插入图片描述

  • DataNode: 存储数据的节点 ,并且是以数据块的形式来存储。
    1)datanode存储namenode对应的clusterID以确定当前的datanode归哪一个namenode管理
    2)datanode每隔一段时间(3s)会主动向namenode发送心跳信息(节点状态,节点数据)
    3)如果namenode超过了10min没有收到datanode的心跳,则认为这个datanode产生lost,那么namenode就会将这个datanode上的数据copy到其他节点上。
  • NameNode: 管理数据的节点,负责datanode的管理以及存储元数据。
  • HDFS存储数据的时候会将文件进行切块,并且给每一个文件块分配一个递增的编号。
  • HDFS存储数据的时候会对数据进行备份,每一个备份称之为是一个复本。在伪分布式下,复本设置为1,但是在全分布式下,复本默认是3个。3个复本是放到不同的datanode中,复本放置策略 - -机架感知策略:
    1)第一个复本:客户端连接的是哪一个datanode,复本就放到哪一个datanode上。
    2)第二个复本:要放到另一个机架的datanode上。
    3)第三个复本:放到和第二个复本同机架的另一个datanode上。
    4)如果有更多的复本数量,其他的复本随机放到其他的datanode。
  • 如果某一个datanode宕机,那么这个时候namen
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值