Hadoop的HDFS概述

HadoopHDFS

HDFS设计思想

  将数据存储到若干台单独的计算机上。

HDFS特点

1.存储超大文件

2.廉价硬件之上

3.一次写入,多次读取

HDFS架构

1.唯一的NameNode,唯一的SecondaryNameNode,都运行在主节点(master)

2.大于等于“1”个DataNode,运行在从节点(slave

3.所有的数据均存放在DataNode里面

4.可以有若干个客户端(Client

HDFS

  默认为128 MB,小于一个块大小的文件不会占据整个块的空间。

HDFSNameNode

  HDFS的“大脑”,运行在master(主节点)中,唯一,掌握整个文件系统的目录树,以及目录树中的所有文件和目录。目录树被存储在FSImageEdit Log中。FSImageHDFS元数据的完整快照(Snapshot)。每次NameNode启动的时候,会默认加载最新的FSImage

HDFSSecondaryNameNode

  NameNode的守护进程,定期合并FSImageEdit Log。在生产环境中,SecondaryNameNode运行在独立的一台服务器上。

NameNodeSecondaryNameNode交互

1.SecondaryNameNode引导NameNode滚动更新Edit Log,并将修改文件名为Edit Log.new

2.SecondaryNameNodeNameNodeFSImageEdit Log复制到SecondaryNameNode的本地检查点中目录。

3.SecondaryNameNode将本地检查点中的复制而来的FSImageEdit Log.new合并,形成新的FSImage文件,压缩,写入磁盘。

4.SecondaryNameNode将新的FSImage发送到NameNodeNameNode直接加载和应用该文件。

5.NameNodeEdit Log.new更名为Edit Log

HDFSDataNode

  DataNodeHDFS中扮演着从节点(slave)的角色,它在Name Node的指导下完成I/O流任务。所有文件块(block)都存于DataNode中,DataNode存放块的目录为:$(dfs.data.dir)/current下,块的文件名为blk_blkID

HDFS的容错

  1.心跳机制

  NameNodeData Node维持心跳检测,确保NameNode与健康的DataNode之间的通信。

  2.文件检测

  HDFS会在文件存储的时候记录每个文件校验和,用来之后对文件进行I/O操作提供文件是否完整的检验标准。如果在一个DataNode中,一个文件在读取时的大小与NameNode所记录的该文件的校验和不一致,则判断该文件已经损坏,不再在该DataNode中取文件,从其他DataNode的上面存放的这份文件的副本(replication)。

  3.集群(Cluster)负载均衡

  HDFSNameNode会根据目前现有的DataNode的负载情况,合理分配各个DataNode的负载。

  4.SecondaryNameNode冷备份NameNode上的FSImageEdit Log

  NameNode 的目录树依赖NameNode上的FSImageEdit Log,若NameNode上的FSImageEdit Log丢失或失效,NameNode的目录树功能也将失效,最终导致HDFS分布式文件系统失效。因此,SecondaryNameNode会定期备份FSImageEdit Log,确保NameNode的目录树可用和处于最新状态。

  5.回收站机制

  客户端想HDFS发出删除一个文件的命令,HDFSNameNode并不是马上将该文件从FSImage删除,而是将文件移动到/trash目录,随时可以恢复,直到超过设置的删除时间才会正式被删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop HA(High Availability)是指为了提高Hadoop集群的可用性和容错性,采取一系列措施来保证在某个节点或服务出现故障时,其他节点或服务能够接管工作并继续提供服务。 Hadoop的HA主要涉及两个关键组件:NameNode和ResourceManager。 对于HDFSHadoop Distributed File System),NameNode是其关键组件,负责存储文件系统的元数据信息。在单节点模式下,如果NameNode节点发生故障,整个HDFS将无法使用。为了解决这个问题,Hadoop引入了NameNode HA机制。通过配置一个Active NameNode和一个Standby NameNode,实现了对元数据的冗余备份和自动切换。Active NameNode负责处理客户端的读写请求,而Standby NameNode则复制Active NameNode的元数据信息,并接收心跳信号以检测Active NameNode的状态。一旦Active NameNode出现故障,Standby NameNode会接管其角色成为Active NameNode,并继续提供服务。 对于YARN(Yet Another Resource Negotiator),ResourceManager是其关键组件,负责资源调度和任务分配。在单节点模式下,如果ResourceManager节点发生故障,整个YARN集群将无法正常运行。为了提高可用性,Hadoop引入了ResourceManager HA机制。通过配置一个Active ResourceManager和一个Standby ResourceManager,实现了对资源调度和任务分配的冗余备份和自动切换。Active ResourceManager负责处理客户端的资源请求和任务调度,而Standby ResourceManager则复制Active ResourceManager的状态,并接收心跳信号以检测Active ResourceManager的状态。一旦Active ResourceManager出现故障,Standby ResourceManager会接管其角色成为Active ResourceManager,并继续提供服务。 通过实现NameNode HA和ResourceManager HA,Hadoop集群能够在某个节点或服务出现故障时实现自动切换,并保证数据的可用性和任务的正常执行。这大大提高了Hadoop集群的可靠性和容错性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值