HDFS 全称 Hadoop 分布式文件系统,其最主要的作用是作为 Hadoop 生态中各系统的存储服务。

HDFS

HDFS 全称 Hadoop 分布式文件系统,其最主要的作用是作为 Hadoop 生态中各系统的存储服务。


面对大规模的数据,HDFS 在设计上满足了以下目标:

  • 高度容错性: HDFS 可能由成百上千的服务器构成,任何一个组件都可能失效,因此错误检测和快速、自动的恢复时 HDFS 最核心的架构目标。
  • 支持大规模数据集: 运行在 HDFS 应用具有很大的数据集,它应该能提供整体上高的数据传输带宽,并能支撑数以千万计的文件。
  • 支持流式读取数据: HDFS 的设计更多的考虑到了数据批处理,而不是用户交互处理,比之数据访问延迟的问题,更关键的是数据访问的高吞吐量。
  • 简单的一致性模型: “ 一次写入多次读取”的文件访问模型简化了数据一致性的问题,并且是高吞吐量称为可能。
  • 移动计算而非移动数据: 一个应用的请求,离它操作的数据越近就越高效,HDFS 提供了将它们自己移动到数据附近的接口。
  • 异构软硬件平台间的可移植性: 平台的可移植性,方便用户也方便 HDFS 作为大规模数据应用平台的推广。

架构与原理

在这里插入图片描述
如上图所示,HDFS 使用单一的 NameNode 节点简化了整体的设计,同时使用 Master-Slave 模式,防止 NameNode 成为单点故障,Failover Controller(故障切换器)的工作便是负责监控 NameNode 的状态与切换主从服务器。与此同时,为了能够快速从故障中恢复,每一次的数据读写删操作都会记录在 NameNode 上的 EditLog 中并同步到每个 JournalNode 节点。而 DataNode 节点则负责存储物理数据,为了应对不确定的故障,每一份数据默认被保存为 3 份,并分散在不同的 DataNode 中,而通过 Balancer 则可以平衡集群之间各节点的磁盘利用率,以防止某一个 DataNode 节点存储已满但是其它 DataNode 节点却可能为空的情况。

最后为了方便用户操作,HDFS 提供了 HttpFS 服务,用以通过 HTTP 方式访问 HDFS 服务的功能。默认的,你可以通过 http://[master namenode host]:50070/ 访问这个功能。

总的来说,HDFS 主要包含了 6 个服务,它们主要的功能如下:

  1. NameNode:负责管理文件系统的 namespace 以及客户端对文件的访问;
  2. DataNode:用于管理它所在节点上的存储;
  3. FailoverController:故障切换控制器,负责监控与切换 Namenode 服务;
  4. JournalNode:用于存储 EditLog;
  5. Balancer:用于平衡集群之间各节点的磁盘利用率;
  6. HttpFS:提供 HTTP 方式访问 HDFS 的功能。

通常而言,在关注 HDFS 架构时,总是关注 Namenode 和 Datanode 的架构,因为它们是 HDFS 的核心,也是客户端操作数据需要依赖的两个服务,所以再来看看 Namenode & Datanode 的架构吧。

NameNode & DataNode

在这里插入图片描述
在 HDFS 中,Namenode 是 HDFS 中的主节点,用于维护和管理 Datanode 上存在的 block。它是一个高度可用的服务器,用于管理文件的 namespace 并控制客户端对文件的访问。HDFS 体系的构建方式是,用户数据永远不会驻留在 Namenode 上,数据只会驻留在 Datanode 上。

Namenode 的功能:

  • 它是维护和管理 Datanode 的主守护进程;
  • 它记录存储在集群中的所有文件的元数据,例如 block 的位置、文件大小、权限、层次结构等。有两个文件与元数据关联:
    FsImage:它包含自 Namenode 开始以来文件的 namespace 的完整状态
    EditLogs:它包含最近对文件系统进行的与最新 FsImage 相关的所有修改。
  • 它记录了发生在文件系统元数据上的每个更改。例如,如果一个文件在 HDFS 中被删除&#
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop分布式文件系统HDFS)是Hadoop核心组件之一,用于解决大数据存储的问题。它是一个横跨多台计算机的存储系统,采用了master/slave(主从)架构。一个HDFS集群由一个Namenode和一定数量的Datanode组成。Namenode是HDFS集群的主节点,负责协调和管理文件系统的元数据,而Datanode是从节点,负责存储实际的数据块。\[1\]\[2\] HDFS的设计目标之一是能够在面对硬件错误时继续运行而不让用户感知到明显的断。因此,HDFS使用商用硬件,并且具备错误检测和快速、自动恢复的能力。由于HDFS可能由成百上千个服务器组成,任何一个组件都可能发生故障,因此这种容错能力对于保证系统的可靠性至关重要。\[3\] #### 引用[.reference_title] - *1* *2* [Hadoop分布式文件系统(HDFS)](https://blog.csdn.net/Melody_12/article/details/104866522)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Hadoop分布式文件系统HDFS)](https://blog.csdn.net/XueFengPlay/article/details/78869007)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值