Hadoop NameNode元数据相关文件目录解析

Hadoop源码分析之NameNode元数据的存储 在对NameNode节点进行格式化时,调用了FSImage的saveFSImage()方法和FSEditLog.createEditLogFile()存储当前的元数据,启动NameNode节点时,又要从镜像和编辑日志中读取元数据。所以先分析FSImage是如何存储元数据到镜像文件和如何加载元数据到内存的。 存储元数据到镜像文件 在NameNode运行时会将内存中的元数据信息存储到所指定的文件, 阅读详情

在第一次部署好Hadoop集群的时候,我们需要在NameNode(NN)节点上格式化磁盘:

1 [wyp@wyp hadoop-2.2.0]$  $HADOOP_HOME/bin/hdfs namenode -format

  格式化完成之后,将会在$dfs.namenode.name.dir/current目录下如下的文件结构

1 current/
2 |-- VERSION
3 |-- edits_*
4 |-- fsimage_0000000000008547077
5 |-- fsimage_0000000000008547077.md5
6 `-- seen_txid

其中的dfs.namenode.name.dir是在hdfs-site.xml文件中配置的,默认值如下:

01 <property>
02   <name>dfs.namenode.name.dir</name>
03   <value>file://${hadoop.tmp.dir}/dfs/name</value>
04 </property>
05  
06 hadoop.tmp.dir是在core-site.xml中配置的,默认值如下
07 <property>
08   <name>hadoop.tmp.dir</name>
09   <value>/tmp/hadoop-${user.name}</value>
10   <description>A base for other temporary directories.</description>
11 </property>

  dfs.namenode.name.dir属性可以配置多个目录,如/data1/dfs/name,/data2/dfs/name,/data3/dfs/name,....。各个目录存储的文件结构和内容都完全一样,相当于备份,这样做的好处是当其中一个目录损坏了,也不会影响到Hadoop的元数据,特别是当其中一个目录是NFS(网络文件系统Network File System,NFS)之上,即使你这台机器损坏了,元数据也得到保存。
  下面对$dfs.namenode.name.dir/current/目录下的文件进行解释。
  1、VERSION文件是Java属性文件,内容大致如下:

1 #Fri Nov 15 19:47:46 CST 2013
2 namespaceID=934548976
3 clusterID=CID-cdff7d73-93cd-4783-9399-0a22e6dce196
4 cTime=0
5 storageType=NAME_NODE
6 blockpoolID=BP-893790215-192.168.24.72-1383809616115
7 layoutVersion=-47

其中
  (1)、namespaceID是文件系统的唯一标识符,在文件系统首次格式化之后生成的;
  (2)、storageType说明这个文件存储的是什么进程的数据结构信息(如果是DataNode,storageType=DATA_NODE);
  (3)、cTime表示NameNode存储时间的创建时间,由于我的NameNode没有更新过,所以这里的记录值为0,以后对NameNode升级之后,cTime将会记录更新时间戳;
  (4)、layoutVersion表示HDFS永久性数据结构的版本信息, 只要数据结构变更,版本号也要递减,此时的HDFS也需要升级,否则磁盘仍旧是使用旧版本的数据结构,这会导致新版本的NameNode无法使用;
  (5)、clusterID是系统生成或手动指定的集群ID,在-clusterid选项中可以使用它;如下说明

a、使用如下命令格式化一个Namenode:

1 $ $HADOOP_HOME/bin/hdfs namenode -format [-clusterId <cluster_id>]

选择一个唯一的cluster_id,并且这个cluster_id不能与环境中其他集群有冲突。如果没有提供cluster_id,则会自动生成一个唯一的ClusterID。

b、使用如下命令格式化其他Namenode:

1 $ $HADOOP_HOME/bin/hdfs namenode -format -clusterId <cluster_id>

c、升级集群至最新版本。在升级过程中需要提供一个ClusterID,例如:

1 $ $HADOOP_PREFIX_HOME/bin/hdfs start namenode       \
2           --config $HADOOP_CONF_DIR  -upgrade -clusterId <cluster_ID>

如果没有提供ClusterID,则会自动生成一个ClusterID。

  (6)、blockpoolID:是针对每一个Namespace所对应的blockpool的ID,上面的这个BP-893790215-192.168.24.72-1383809616115就是在我的ns1的namespace下的存储块池的ID,这个ID包括了其对应的NameNode节点的ip地址。
  
  2、$dfs.namenode.name.dir/current/seen_txid非常重要,是存放transactionId的文件,format之后是0,它代表的是namenode里面的edits_*文件的尾数,namenode重启的时候,会按照seen_txid的数字,循序从头跑edits_0000001~到seen_txid的数字。所以当你的hdfs发生异常重启的时候,一定要比对seen_txid内的数字是不是你edits最后的尾数,不然会发生建置namenode时metaData的资料有缺少,导致误删Datanode上多余Block的资讯。

  3、$dfs.namenode.name.dir/current目录下在format的同时也会生成fsimage和edits文件,及其对应的md5校验文件。fsimage和edits是Hadoop元数据相关的重要文件,我打算在下一篇文章中fsimage和edits存储的内容和他们之间的关系进行说明,请关注本博客。

Hadoop迁移namenode 由于集群中namenode节点的资源太小,想将其中一个datanode跟namenode互换。集群中还安装有hive,impala,主要修改两个地方: 1. namenode元数据 2. hive数据库 3. 将hadoop和hive的配置文件同步到impala 一、namenode元数据 NameNode主要被用来管理整个分布式文件系统的命名空间(是目录和文件)的元数据信息,同 阅读详情

相关推荐

hadoop中NameNode、DataNode、Secondary、NameNode、ResourceManager、NodeManager 介绍

1:NameNode 2:SecondNameNode 3:DataNode 4:ResourceManager 5:NodeManager ----------------------------------------------------------------------------------------------------------------------------...

FREEDOM 1937

【Hadoop源码】一篇文章带你熟悉解读 Namenode启动加载FsImage的过程

NameNode是HDFS中负责元数据管理的组件,它保存着整个文件系统的元数据信息,并且充当着指挥调度DataNode的作用。NameNode不仅在内存中保存着文件系统元数据信息,还会定期将文件系统的元数据(文件目录树、文件/ 目录元信息) 持久化到本地 fsImage 文件中, 以防止Namenode掉电或者进程异常崩溃。 如果Namenode实时地将内存中的元数据同步到fsimage文件中, 将会非常消耗资源且造成Namenode运行缓慢。 所以Namenode会先将元数据的修改操作保存在editlog

如切如磋,如琢如磨,臻于至善。 1354

如何使你的直流电机闭环?(PID讲解)

看了看很多大佬写的PID讲解很全面也很复杂,实在是不适合很多萌新入坑,所以想按自己的理解写一篇通俗易懂的PID算法讲解

a2001444的博客 1万+

八、NameNode多目录配置

我这里演示的是已经使用的集群,所以需要删除data与log文件;如果是初次配置集群不用。 为什么要配置多目录? NameNode的本地目录配置成多个,且每个目录存放内容相同,增加了可靠性。 具体配置调整如下: (1)在hdfs-site.xml文件中增加如下内容 <property> <name>dfs.namenode.name.dir</name>...

风子的博客 624

Python 驱动 CAD 二次开发:从零搭建自动化绘图环境

本文详细介绍了如何利用Python进行CAD二次开发,实现自动化绘图。通过win32com库建立Python与CAD软件的通信,文章从环境搭建、连接CAD、操作文档到核心绘图与批量处理,提供了完整的实战指南。该方法能显著提升机械设计、建筑绘图等领域的重复性工作效率,将创造力从繁琐劳动中解放出来。

weixin_29093169的博客 1226

如何用python开发“跳一跳”游戏【附源码】

jump_start_time = pygame.time.get_ticks() # 记录跳跃开始时间。jump_duration = current_time - jump_start_time # 计算跳跃持续时间。current_time = pygame.time.get_ticks() # 获取当前时间。jump_velocity = -15 # 设置跳跃的初始速度。# 如果小球跳跃结束,重置跳跃状态。# 根据跳跃持续时间计算跳跃高度。# 移除超出屏幕的障碍物。

helloshili2011的博客 2495

Hadoop深入学习:HDFS主要流程——NameNode节点上的文件和目录操作

上节中我们已经学习了HDFS的体系结构及其优缺点,本节我们将着重学习HDFS的几个主要流程。 [color=blue][b]客户端在NameNode上的文件与目录操作[/b][/color] [b]创建文件目录[/b] 客户端命令:[code="java"] hadoop fs -mkd...

飞翔的荷兰人 494

MATLAB实战:手把手教你用三频四步相移法搞定结构光三维重建(附完整代码)

本文详细介绍了如何使用MATLAB实现三频四步相移法进行高精度结构光三维重建。通过光栅图像预处理、相位计算、多频外差与相位解包裹等步骤,结合完整代码示例,帮助读者掌握从二维图像到三维点云的关键技术。该方法在工业检测和逆向工程中具有抗干扰能力强、高分辨率和鲁棒性等优势。

weixin_29201933的博客 338

Hadoop生态圈(十三)- Namenode元数据管理及各组件工作机制

Namenode元数据管理,namenode和SecondaryNamenode工作机制,DataNode工作机制,DataNode数据完整性,DataNode掉线时限参数设置,Namenode元数据恢复,SecondaryNamenode checkpoint机制,fsimage内存镜像文件,Edits log编辑日志,Namenode存储多目录,元数据管理相关目录文件,内存元数据,磁盘元数据

程序园@大Null 3795

以太网硬件核心:MAC、PHY、MII与交换机原理与实战排查

计算机网络通信的基础依赖于一套完整的硬件协议栈。在OSI模型中,数据链路层和物理层是实现设备间可靠、高效数据传输的基石。其核心原理在于将上层数据包封装成帧,并通过特定的介质访问控制与物理信号转换机制进行传输。这一过程的技术价值在于为上层应用提供了透明、稳定的通信信道,是互联网和所有局域网通信的物理承载。在嵌入式系统、网络设备开发及运维等应用场景中,深入理解底层硬件交互至关重要。本文将聚焦于以太网硬件的两大核心组件:负责逻辑成帧与流量控制的MAC控制器,以及负责数模转换与链路协商的PHY芯片。它们通过MII、

dgqvhtlwq472235338的博客 420

win11怎么安装dosbox和masm来运行汇编程序(小白,萌新篇)

一文教会你如何部署dosbox和masm环境

m0_73279193的博客 4699

转载-Hadoop NameNode元数据相关文件目录解析

在第一次部署好Hadoop集群的时候,我们需要在NameNode(NN)节点上格式化磁盘:[wyp@wyp hadoop-2.2.0]$ $HADOOP_HOME/bin/hdfs namenode -format格式化完成之后,将会在$dfs.namenode.name.dir/current目录下如下的文件结构 current/ |– VERSION |–

haoran_gao的博客 639

uniapp - 实现扫码功能自定义扫描二维码/条码界面+手电筒轻触照亮+扫码屏幕添加手动输入框,手机扫描二维码并跳转过程,调用手机原生摄像头进行扫码且自动识别执行事件(uniApp安卓苹果App端)

uniapp,app端,安卓app,苹果ios,uniapp扫码识别,二维码展示和扫码,uniapp如何实现扫码功能,uni-app实现扫码功能,二维码和一维码/条码扫描,UniApp实现扫描二维码,uniapp开发原生app页面的扫码功能,自定义扫码界面,uniapp怎么调用扫一扫功能,app自定义扫码界面,uniapp 自定义扫一扫页面,扫码手电筒功能,自定义扫描框,扫码报错怎么办,扫码黑屏,扫一扫摄像头黑屏,uniapp扫码原生插件,最新扫码组件,连续扫码,uniapp APP扫码,扫码后如何处理跳转

✅ 精选推荐文章 1万+

【总结】Hadoop NameNode元数据相关文件目录解析

原文:https://www.iteblog.com/archives/967.html 在第一次部署好Hadoop集群的时候,我们需要在NameNode(NN)节点上格式化磁盘: [wyp@wyp hadoop-2.2.0]$  $HADOOP_HOME/bin/hdfs namenode -format   格式化完成

一寒惊鸿 2万+

性能调优秘籍——让OpenClaw运行速度提升10倍(2026优化版)

OpenClaw性能优化核心摘要 本文详细介绍了提升OpenClaw系统性能的关键技术,包括: 使用性能分析器进行代码级性能诊断 内存优化与高效缓存策略 并发处理优化技术 数据库查询性能提升方法 重点内容包括: 全面的性能分析工具实现(计时、内存监控、错误跟踪) 自动生成性能报告和优化建议 操作耗时与内存占用分析算法 关键性能指标(平均耗时、内存增长)计算 通过系统性的性能分析优化,可使OpenClaw运行速度提升10倍以上。

博客 899

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Hadoop之NameNode元数据相关文件目录解析

下面所有的内容是针对Hadoop 2.x版本进行说明的,Hadoop 1.x和这里有点不一样。在第一次部署好Hadoop集群的时候,我们需要在NameNode(NN)节点上格式化磁盘:ubuntu@ubuntuhadoop-2.2.0]$$HADOOP_HOME/bin/hdfsnamenode-format格式化完成之后,将会在$dfs....

weixin_33896726的博客 140

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hadoop中fsimage和edits合并问题

Hadoop 2.x中fsimage和edits合并实现 Hadoop 1.x中fsimage和edits合并实现 Hadoop NameNode元数据相关文件目录解析 Hadoop文件系统元数据fsimage和编辑日志edits

cloud-2014的专栏 828

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Hadoop文件系统元数据fsimage和编辑日志edits

在《Hadoop NameNode元数据相关文件目录解析》文章中提到NameNode的$dfs.namenode.name.dir/current/文件夹的几个文件: 1 current/ 2 |-- VERSION 3 |-- edits_*

发展是曲折的但也是前进的 1675

Namenode 元数据管理

在HDFS中文件相关元数据具有两种类型文件自身属性信息文件名称、权限,修改时间,文件大小,复制因子,数据块大小。文件块位置映射信息记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上。按存储形式分为内存元数据和元数据文件两种,分别存在内存和磁盘上。

金州饿霸吃不饱的博客 1016

namenode维护元数据

一、NameNode启动时如何维护元数据: 1、概念介绍: Edits文件: 编辑日志的作用 编辑日志是记录对文件或者目录的修改信息,比如删除目录,修改文件等信息。编辑日志一般命名规则是“edits_*”,它在NameNode启动后,记录对文件系统的改动序列。 edits文件存放的是hadoop文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到edits文件中。 FsIma...

LALALA3_3的博客 3323
上一篇: Hadoop文件系统元数据fsimage和编辑日志edits
下一篇: hadoop dfsadmin
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值