HDFS 架构、组件【重要】

简介: HDFS 架构、组件【重要】

HDFS 是分布式文件系统,它默认的存储单元是 128MB 的数据块(hadoop1.x 为 64MB)。

HDFS 架构:

HDFS 的体系框架是 Master-Slave 主备结构,一个典型的 HDFS 通常由单个 NameNode 和多个 DataNode 组成,但是为备份元数据,一般还有一个 secondary namenode(HA 模式没有,standby namenode 代替 secondary namenode)。

 

1. Client:客户端

  • 会切分文件。文件上传 HDFS 的时候,Client 将文件切分成一个一个的 Block,然后进行存储。
  • 与 NameNode 交互,获取文件的位置信息。
  • 与 DataNode 交互,读取或者写入数据。
  • Client 提供一些命令来管理 HDFS,比如启动关闭 HDFS、访问 HDFS 目录及内容等

2. NameNode:名称节点,也称主节点

  • 整个 hadoop 集群中只有一个 namenode,它是整个系统的 “总管”,用来管理数据的元数据信息,不存储具体的数据。
  • 配置副本策略,Namenode 负责监控各个 DataNode 的健康状态,一旦发现某个 DataNode 宕掉,则将该 DataNode 移出 HDFS 并重新备份其上面的数据。
  • 处理客户端读写请求。

3. DataNode:数据节点,也称从节点。NameNode 下达命令,DataNode 执行实际的操作

  • datanode 是真正存储数据的地方,存储实际的数据块。
  • 执行数据块的读写操作。

4. Secondary NameNodesecondary namenode 用来辅助 namenode,但并不是 namenode 的热备,宕机时不能代替 namenode 进行工作。(测试环境用 secondary namenode,生产环境用集群高可用)

  • 辅助 NameNode,分担其工作量
  • 定期地将 namenode 的 fsimage 和 Edits 文件进行合并,并传输给 NameNode,防止日志文件过大。
  • 合并之后的 fsimage 会在 secondary namenode 中保存一份,当 namenode 节点挂掉时可辅助恢复 NameNode。

 

相关问题:

1.Secondary NameNode 工作机制

SecondaryNameNode 是 HDFS 分布式文件系统中的一个辅助组件,它的主要作用是定期合并 Fsimage 和 Edits 文件,当 NameNode 发生故障时,Secondary NameNode 可以将从 NameNode 中下载的最新的 FSimage 和 Edits 文件合并到本地,来保证 HDFS 元数据的一致性和完整性。

SecondaryNameNode 的工作机制包括以下几个方面:

1. 接收 NameNode 的 checkpoint 请求:

SecondaryNameNode 会接收来自 NameNode 的 checkpoint 请求,并向 NameNode 发送 checkpoint 请求。在这个过程中,SecondaryNameNode 会对 NameNode 的 edits 日志进行回滚,以保证元数据的一致性和完整性。

2. 定期合并 Fsimage 和 Edits 文件:

SecondaryNameNode 会定期地从 NameNode 下载最新的 Fsimage 和 Edits 文件,并将它们合并到本地。在这个过程中,SecondaryNameNode 会检查 Fsimage 和 Edits 文件的一致性和完整性,并将任何缺失的数据从 NameNode 下载到本地。

2.NN 和 2NN 有什么区别?

NameNode 是整个集群的 “大脑”,需要处理大量的元数据操作和查询请求,维护整个分布式文件系统的命名空间和元数据信息。

Secondary NameNode 是 NameNode 的一个辅助组件,并不是 NameNode 的备份结点,无法代替 NameNode 的工作。它的主要作用是定期合并 FSimage 和 Edits 文件,当 NameNode 发生故障时,Secondary NameNode 可以将从 NameNode 中下载的最新的 FSimage 和 Edits 文件合并到本地,来保证 HDFS 元数据的一致性和完整性。

因此,NameNode 和 Secondary NameNode 的主要区别在于它们的职责和作用。NameNode 负责管理文件系统的元数据和文件信息,而 SecondaryNameNode 主要用于定期合并 FsImage 和 Edits 文件,来保证 HDFS 元数据的一致性和完整性。

3.secondary namenode 什么时候拉取 namenode 的数据进行合并

NameNode 启动时会加载之前未合并的 FSImage 和 Edits 文件进行合并,之后 SecondaryNameNode 每隔一小时执行一次,这个时间间隔可以通过参数自定义设置。

相关文章
|
1月前
|
存储 Kubernetes 负载均衡
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(下)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
2月前
|
SQL 存储 缓存
MySQL - 一文了解MySQL的基础架构及各个组件的作用
MySQL - 一文了解MySQL的基础架构及各个组件的作用
|
29天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
33 0
|
6月前
|
Go 数据中心 微服务
Golang 语言微服务的服务发现组件 Consul 的系统架构介绍
Golang 语言微服务的服务发现组件 Consul 的系统架构介绍
59 0
|
6月前
|
存储 Kubernetes Cloud Native
【云原生】k8s组件&架构介绍与K8s最新版部署
【云原生】k8s组件&架构介绍与K8s最新版部署
183 0
|
4月前
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
124 0
|
29天前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
15 0
|
16天前
|
存储 数据库 Android开发
构建高效安卓应用:采用Jetpack架构组件优化用户体验
【4月更文挑战第12天】 在当今快速发展的数字时代,Android 应用程序的流畅性与响应速度对用户满意度至关重要。为提高应用性能并降低维护成本,开发者需寻求先进的技术解决方案。本文将探讨如何利用 Android Jetpack 中的架构组件 — 如 LiveData、ViewModel 和 Room — 来构建高质量的安卓应用。通过具体实施案例分析,我们将展示这些组件如何协同工作以实现数据持久化、界面与逻辑分离,以及确保数据的即时更新,从而优化用户体验并提升应用的可维护性和可测试性。
|
1月前
|
SpringCloudAlibaba Java 持续交付
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
100 1
|
1月前
|
Kubernetes API 调度
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(上)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。

热门文章

最新文章