DataNode 和 NameNode

2024-08-28 06:52
文章标签 namenode datanode

本文主要是介绍DataNode 和 NameNode,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在 Apache Hadoop 的分布式文件系统 (HDFS) 中,DataNodeNameNode 是两个核心组件,它们共同协作以实现大规模数据存储和管理的功能。下面我将详细介绍这两个组件的作用和职责。

NameNode

NameNode 是 HDFS 的主节点 (Master node),负责管理文件系统的命名空间和元数据。它的主要职责包括:

  1. 元数据管理:

    • NameNode 存储文件系统的元数据,包括文件和目录的名称、权限以及文件块的位置信息。
    • 它不存储实际的数据块,而是跟踪每个文件的块列表和每个块所在的数据节点列表。
  2. 命名空间管理:

    • NameNode 负责文件系统的命名空间操作,如创建、删除文件或目录,重命名文件等。
  3. 客户端请求处理:

    • NameNode 处理来自客户端的文件系统元数据操作请求,如打开、关闭、重命名文件或目录等。
  4. 数据节点管理:

    • NameNode 监控 DataNode 的状态,并负责文件块的复制和分布策略。
    • 它会根据配置文件中的设置来决定文件块应该复制多少份,以及这些副本应该分布在哪些 DataNode 上。

DataNode

DataNode 是 HDFS 的工作节点 (Worker node),负责存储实际的数据块。它的主要职责包括:

  1. 数据块存储:

    • DataNode 存储文件系统的数据块,每个数据块通常默认大小为 128 MB(Hadoop 3.x 默认设置)或 64 MB(Hadoop 2.x 默认设置)。
    • 它们按照文件块的 ID 和文件名进行组织。
  2. 数据块复制:

    • DataNode 根据 NameNode 的指令复制文件块以保证数据冗余和高可用性。
    • 它还会定期向 NameNode 发送心跳消息,报告自己的状态和所存储的数据块信息。
  3. 客户端数据读写:

    • 当客户端请求读取或写入数据时,DataNode 与客户端直接交互以执行实际的数据传输。
    • NameNode 会告诉客户端从哪个 DataNode 读取数据或向哪个 DataNode 写入数据。
  4. 数据完整性检查:

    • DataNode 会定期检查存储的数据块,如果发现损坏的数据块,会通知 NameNode 以便进行修复。

总结

  • NameNode 是 HDFS 的核心管理和控制中心,负责维护文件系统的元数据和命名空间信息。
  • DataNode 负责存储实际的数据块,并响应客户端的读写请求。

这种设计使得 HDFS 能够在大量廉价硬件上构建大规模的分布式文件系统,同时保持数据的可靠性和高可用性。

这篇关于DataNode 和 NameNode的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114039

相关文章

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

【Hadoop|HDFS篇】NameNode和SecondaryNameNode

1. NN和2NN的工作机制 思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访 问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在 内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在磁盘中备份元数据的 Fslmage。 这样又会带来新的问题,当在内存中的元数据更新时,如

【Hadoop|HDFS篇】DataNode

1. DataNode的工作机制 1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。 2)DataNode启动后向NameNode注册,通过后,周期性(6h)的向NameNode上报所有块信息。 DN向NN汇报当前解读信息的时间间隔,默认6小时。 DN扫描自己节点块信息列表的时间,默认为

Hadoop Namenode元数据持久化机制与SecondaryNamenode的作用详解

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 我们都知道namenode是用来存储元数据的,他并不是用来存储真正的数据。 那么他的元数据怎么进行持久化呢! FsImage 文件系统的镜像文件叫fsImage,它包括了文件和块信息的映射,还有文件系统的属性信息。 datan

NameNode 的 Web 界面

http://127.0.0.1:50070/ 图片显示的是Hadoop的Web界面导航栏。导航栏包含以下选项: Hadoop:Hadoop的主页。Overview:集群的概览信息。Datanodes:数据节点的状态和信息。Datanode Volume Failures:数据节点的卷故障信息。Snapshot:快照信息。Startup Progress:启动进度信息。Utilit

Trino大量查询会导致HDFS namenode主备频繁切换吗?

会,且肯定会 一、背景 今天还没起床就被智能运维叫醒了,说通过namenode审计日志查看访问源ip有我们的trino集群,并且访问量比较大,起床气范了,这不很正常吗,早上一般都是跑批高峰,也不一定是我们trino的问题,必须按时上班。 到了工位联系运维,被告知也不一定是我们的trino引起的namenode主备节点切换,因为那个时间段,有很多系统会访问大数据平台,不管怎样,既然有警告就得排查,

handoop0.20.2:名字节点namenode的启动

注:分析到的主要代码在 org.apache.hadoop.hdfs.server.namenode.NameNode和org.apache.hadoop.hdfs.server.namenode.FSNamesystem中 1.NameNode.main()是名字节点启动的入口,主要就是通过createNameNode方法创建一个namenode对象,创建成功后再等待它执行结束(nam

Hadoop运行中NameNode闪退和运行mapreducer时卡在Running job.....

开始安装Hadoop时 第一次成功启动 包括MapReducer程序也能成功运行。后来不知道什么原因 进入了Safe mode 即使退出了安全模式照样不能对HDFS进行任何修改操作,索性hdfs namenode -format格式化一下,连启动都无法启动了,修改NameNode和DataNode的clusterID一致后 虽然修改HDFS问题解决了,但是运行任务时总是卡在了Running jo

namenode启动失败 。 : Cannot assign requested address

Cannot assign requested address 我部署hadoop 格式化后 , start-all.sh . 通过 jps 命令发现 datanode 可以启动 。 然而那么namenode启动失败。 网上找了好多博客贴吧 。 1  有的是 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Faile