Hadoop之NameNode的工作机制

可以用下面的图来表示
在这里插入图片描述
1、首先,认识几个名词
    (1)、NameNode中读、写、以及DataNode映射等信息叫做“元数据” ,NameNode元数据存放位置有、内存、fsimage、edits log三个位置。

(2)、edits log:记录当前最新的元数据。

(3)、元数据内存:实际在用的元数据。

(4)、fsimage:元数据内存实体文件,fsimage与NameNode内容是是一样的(最全元数据)

当edits log文件大小达到阈值,会将edits log元数据写入到fsimage文件,并清除edits log中的元数据。

2、NameNode管理元数据方式

(1)、客户端上传文件时NameNode首先会向edits log文件中记录元数据信息。

(2)、客户端上传文件,完成后返回成功信息到NameNode,NameNode将本次上传操作产生新的元数据信息写入到内存中。

(3)、每当editslog文件写满时,SecondeNameNode会将editslog中的元数据同步合并到fsimage中,且清空editslog

(4)、同步数据(checkpiont)触发方式:fs.checkpoint.period 指定两次checkpoit的最大时间间隔,默认为3600秒

:fs.checkpoint.size   规定ediits文件最大值,一旦超过这个值则强制checkpoint,不管是否到最大时间间隔,默认为64M

3、SecondeNameNode对editslog、fsimage文件同步合并方式

(1)、当editslog文件写满时,NameNode向SecondeNameNode发出请求,通知SecondeNameNode进行文件editslog与fsimage合并。

(2)、SecondeNameNode做出响应,并通知NameNode创建新文件edits.new,且向edits.new文件写入元数据

(3)、SecondeNameNode下载editslog、fsimage文件到SecondeNameNode主机

(4)、SecondeNameNode将下载editslog、fsimage文件做同步合并合并文件为:fsimage.chkpoint

(5)、将合并文件fsimage.chepoint上传到NameNode中fsimage同目录

(6)、重命名fsimage.chepoint文件为fsimage

(7)、重命名edits.new为edits

4、nameNode 元数据存储格式

nameNode(FileName、replicas、block-ids、id2host。。。)

名词解释:FileName:文件名称

replicas:副本个数

block-ids:blockid

后面是文件在dataNode位置

列:/home/test.log,3,{blk_1,blk_2},[{blk_1:[h0,h1,h2]},{blk_2:[h0,h1,h2]}]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hadoop的Namenode和DatanodeHadoop分布式文件系统(HDFS)中的两个重要组件。Namenode是HDFS的主节点,负责管理文件系统的命名空间和控制数据块的复制。Datanode是HDFS的从节点,负责存储和管理数据块。Namenode和Datanode之间通过心跳机制进行通信,以确保数据块的可靠性和一致性。在Hadoop集群中,通常会有多个Datanode,但只有一个Namenode。 ### 回答2: Hadoop是一个用于帮助大规模处理海量数据的分布式系统,它包括了多个部件。其中,namenode和datanode是其中两个关键组件。 1. Namenode Namenode是HDFS中的一个非常重要的组件,它是一个主节点,主要负责管理整个HDFS中所有数据块的元数据信息。这些元数据信息包括了所有数据块的位置、大小、副本数量以及存储节点等等。因此,namenode是整个HDFS系统中的一个中央管理器。 Namenode工作原理是通过将元数据信息存储在内存中,以便快速访问。同时,namenode也会将元数据信息存储在本地磁盘上,以备份和恢复。 除此之外,namenode还负责块的复制和块大小的管理,可以通过重复多少次来确定每个块的位置. 2. Datanode Datanode是HDFS中的另一个重要组件,他是一个从节点,主要负责存储HDFS中的数据块。当客户端需要存储数据时,数据会首先被拆分成一个一个的数据块,并存储在多个datanode中。当客户端需要访问数据时,数据会从datanode中读取并传输回客户端。 与namenode不同的是,datanode存储的是实际的数据块,而不是元数据信息。此外,datanode还会定期向namenode发送心跳信息,以便namenode了解数据块的运行情况。 在HDFS中,由于数据被分散存储在多个datanode中,因此它具有很好的可扩展性和容错性。即使某个datanode出现故障,也可以从其他datanode中获取数据并恢复其完整性。 最后,namenode和datanode是HDFS中的两个非常重要的组件,它们共同协作,实现了整个HDFS的数据存储和管理。由于它们的高可用性、可扩展性和容错性,HDFS可以被广泛应用于大规模数据处理,是企业级数据存储和处理的首选技术之一。 ### 回答3: Hadoop是一个分布式计算系统,它采用了主从架构,由namenode和datanode两类组成。namenodeHadoop集群中的主节点,负责管理整个Hadoop集群的元数据信息,如文件信息、文件块信息、datanode的信息等;而datanode是集群中的工作节点,用来存储文件数据块和进行数据处理。 在Hadoop中,一般将文件分成若干个数据块保存在不同的datanode上,namenode负责维护这些数据块的信息及其所在的datanode信息,实现了文件的存储和读取。当客户端需要读取文件时,会向namenode发送请求,namenode会返回该文件的数据块所在的datanode列表,然后客户端根据返回的列表去请求对应的datanode获取数据块并组合成完整的文件。 而datanode则是集群中的工作节点,负责存储文件数据块。每个data node会包含HDFS文件系统中一部分文件的副本,当某个副本损坏或丢失时,namenode就会通知其他datanode重新复制该文件块,保证文件数据的可靠性。此外,datanode还可以进行数据处理,执行MapReduce任务或其他计算任务。 总的来说,namenodeHadoop集群的管理节点,它负责集群的元数据管理,而datanodeHadoop集群的工作节点,负责存储文件数据块及数据处理。namenode和datanode的配合协作,使得Hadoop分布式文件系统可以高效地完成文件的存储和读取,保证了整个Hadoop集群的高可用性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值