Hadoop NameNode 元数据以及查看元数据的方式
HDFS中NameNode工作机制
1.NameNode的主要功能
(1)负责客户端请求的响应;
(2)负责元数据的管理。
2.元数据管理
namenode对数据管理采用了三种存储形式:
(1)内存元数据;
(2)磁盘元数据镜像文件;
(3)数据操作日志文件(可以通过日志运算出元数据)。
2.1元数据的存储机制
(1)内存中有一份完整的元数据(meta data);
(2)磁盘中有一个元数据镜像文件(fsimage),fsimage是HDFS文件系统存于硬盘中的元数据检查点,里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息;
(3)用于衔接内存meta data和持久化元数据镜像fsimage之间的操作日志(edits文件);edits保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等等。
这两种文件存放在${dfs.namenode.name.dir}/current/目录下,文件名以edits_和fsimage_命名,该目录为NameNode上的本地目录。为了保证这两种元数据文件的高可用性,一般的做法,将dfs.namenode.name.dir设置成以逗号分隔的多个目录,这多个目录至少不要在一块磁盘上,最好放在不同的机器上。
2.2手动查看元数据
由于这fsimage和edits是经过序列化的,非文本的,因此无法直接查看,Hadoop2.X中,hdfs提供了查看这两种文件的工具。
(1)命令hdfs oiv用于将fsimage文件转换成其他格式的,如文本文件、XML文件。
该命令需要以下参数:
必须参数:-i 输入fsimage文件,-o 输出文件路径,如果该路径已存在,则覆盖.
可选参数:-p 将fsimage转换成哪种格式,有Ls/XML/FileDistribution,默认为Ls。
-h 显示帮助信息。
(2)命令hdfs oev用于查看edits文件
该命令需要以下参数:
必须参数:-i 输入edits文件,如果是xml后缀,表示XML格式,其他表示二进制。
可选参数:-p 将edits转换成哪种格式,有Ls/XML/FileDistribution,默认为Ls。
-h 显示帮助信息。
-f 重置输入edits文件中的transaction IDs。
-r 使用recovery模式,跳过edits中的错误记录。
-v 打印处理时的输出。
2.3 元数据的checkpoint
每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge,这个过程称为checkpoint。
checkpoint操作的触发条件配置参数,在hdfs-site.xml文件配置
dfs.namenode.checkpoint.check.period= #检查触发条件是否满足的频率,60秒
dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary // 配置从Active namenode 下载的镜像文件临时存放的节点。
dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir} // 配置从Active namenode 下载的编辑日志临时存放的节点。
dfs.namenode.checkpoint.max-retries= #最大重试次数
dfs.namenode.checkpoint.period= #两次checkpoint之间的时间间隔3600秒
dfs.namenode.checkpoint.txns= #两次checkpoint之间最大的操作记录
checkpoint的作用
namenode和secondary namenode或者 standby namenode的工作目录存储结构完全相同,所以,当namenode故障退出需要重新恢复时,可以从 secondary namenode的工作目录中将fsimage拷贝到namenode的工作目录,以恢复namenode的元数据。
参考文章
https://blog.csdn.net/qq_34715484/article/details/80166665
Hadoop NameNode 元数据以及查看元数据的方式的更多相关文章
- Hadoop NameNode元数据相关文件目录解析
在<Hadoop NameNode元数据相关文件目录解析>文章中提到NameNode的$dfs.namenode.name.dir/current/文件夹的几个文件: 1 current/ ...
- MongoDB导入bson文件(元数据),mongorestore命令行方式导入
MongoDB导入bson文件(元数据),mongorestore命令行方式导入 不推荐使用MongoDB Compass等图形化数据库管理软件,例如MongoDB Compass只能导入json和c ...
- NameNode是如何存储元数据的?
1.NN的作用 保存HDFS上所有文件的元数据! 接受客户端的请求! 接受DN上报的信息,给DN分配任务(维护副本数)! 2.元数据的存储 元数据存储在fsiamge文件+edits文件中! fsim ...
- hadoop namenode HA集群搭建
hadoop集群搭建(namenode是单点的) http://www.cnblogs.com/kisf/p/7456290.html HA集群需要zk, zk搭建:http://www.cnblo ...
- hadoop namenode启动过程详细剖析及瓶颈分析
NameNode中几个关键的数据结构 FSImage Namenode 会将HDFS的文件和目录元数据存储在一个叫fsimage的二进制文件中,每次保存fsimage之后到下次保存之间的所有hdfs操 ...
- Hadoop记录-Hadoop NameNode 高可用 (High Availability) 实现解析
Hadoop NameNode 高可用 (High Availability) 实现解析 NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDF ...
- Hadoop namenode启动瓶颈分析
NameNode启动过程详细剖析 NameNode中几个关键的数据结构 FSImage Namenode会将HDFS的文件和目录元数据存储在一个叫fsimage的二进制文件中,每次保存fsimage之 ...
- 通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置
通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置 配置H ...
- hadoop一些常见报错的解决方式
Failed to set setXIncludeAware(true) for parser 遇到此问题通常是jar包冲突的问题. 一种情况是我们向java的lib文件夹加入我们自己的jar包导致h ...
随机推荐
- kubernetes第五章--创建资源的两种方式
- vue+vant-UI框架写的购物车的复选框全选和反选
购物车页面的设计图 商品的列表 代码: <ul v-if="shoppingListData.rows.length"> <li v-for="(ite ...
- 6.transform?animation?区别?animation-duration【CSS】
1.Transform:它和width.left一样,定义了元素很多静态样式实现变形.旋转.缩放.移位及透视等功能,通过一系列功能的组合我们可以实现很炫酷的静态效果(非动画). 2.Animatio ...
- django admin日期变为可以修改
Django - 日期.时间字段 阅读目录 DateTimeField.auto_now DateTimeField.auto_now_add admin中的日期时间字段 如何将创建时间设置为“默 ...
- Python学习日记(十二) 匿名函数
匿名函数: 未解决一些简单的需求而设计的函数 语法: func = lambda x : x**2 func:函数名 lambda:类似def的关键字 x:参数 x**2:返回值表达式 适用内置函数: ...
- Linux正则表达式,grep总结,sed用法
原文: 1.sed 流编辑器,实现对文字的增删改替换查(过滤.取行),能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件 输入到屏幕,可以把只匹配到模式的内容输入到屏幕上.还可以对原文件 ...
- 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
- oracle 删除表空间
第一步,删除表空间前如果忘记表空间名称和用户名,可以通过以下命令进行查询. ---查找用户select * from dba_users; --查找工作空间的路径select * from dba_d ...
- 2013.4.29 - KDD第十一天
今天上午在图书馆写FIrst集,真心没写出来,算法是昨天找好的,不过实现的话还是需要很大的代码量,然后就打算用郑茂或者韩冰的代码了. 晚上图书馆快关门的时候开始思考KDD的问题, 我一开始打算给中秋发 ...
- Can you answer these queries? (线段树
题目 题意: 初始给你n个数,通过m个操作, 操作0是使区间范围内的每一个a[i]都变成 根号a[i] ,操作1是查询区间范围内数字的和. 思路: 如果一个节点sum[rt]是1的话,根号1还是1, ...