当前位置: 首页 > news >正文

九、hdfs中Namenode元数据处理

1、元数据的由来

        在hdfs文件系统中,用户的每一次操作,都会对文件系统产生响应的影响,那么谁来记录这些影响呢?

        在hdfs文件系统中,edits文件记录了hdfs中的每一次操作,以及本次操作影响的文件其对应的block。

        但于此同时,会产生一个问题,那就是随着时间的推移,hdfs文件系统中的edits文件会越来越大,这是hdfs文件系统会将edits文件进行切分处理,以避免个别edits文件过大现象。

        那么,是那个用户来统筹和操作edits文件呢?

        答案是Namenode用户。

2、问题

(1)问题所在

        当用户想要查看某个文件的操作记录时,这里以text.txt文件为例,那么需要去查询edits文件,请问查询到的第一条相关记录就是text.txt文件的最终呈现形式吗?

        不是的,因为在此期间,用户可能对text.txt文件进行一系列操作,可能text.txt文件已经被用户删除。

(2)解决方案

        对于这种问题,hdfs文件系统也存在响应的解决方案。

        hdfs文件系统会每隔相应的时间,对edits文件进行合并处理,得到一个FSLmage文件,这个文件记录着每个被使用文件的最终结果。

3、NameNode元数据维护管理

(1)查看edits文件

hadoop@node1:~$ cd /data/nn
hadoop@node1:/data/nn$ cd ./current
hadoop@node1:/data/nn/current$ ls
edits_0000000000000000001-0000000000000000001  edits_0000000000000000030-0000000000000000030
edits_0000000000000000002-0000000000000000003  edits_0000000000000000031-0000000000000000031
edits_0000000000000000004-0000000000000000004  edits_0000000000000000032-0000000000000000032
edits_0000000000000000005-0000000000000000005  edits_0000000000000000033-0000000000000000034
edits_0000000000000000006-0000000000000000007  edits_0000000000000000035-0000000000000000067
edits_0000000000000000008-0000000000000000008  edits_0000000000000000068-0000000000000000083
edits_0000000000000000009-0000000000000000010  edits_0000000000000000084-0000000000000000096
edits_0000000000000000011-0000000000000000011  edits_0000000000000000097-0000000000000000097
edits_0000000000000000012-0000000000000000013  edits_0000000000000000098-0000000000000000119
edits_0000000000000000014-0000000000000000014  edits_0000000000000000120-0000000000000000120
edits_0000000000000000015-0000000000000000016  edits_0000000000000000121-0000000000000000134
edits_0000000000000000017-0000000000000000017  edits_0000000000000000135-0000000000000000135
edits_0000000000000000018-0000000000000000019  edits_inprogress_0000000000000000136
edits_0000000000000000020-0000000000000000020  fsimage_0000000000000000120
edits_0000000000000000021-0000000000000000022  fsimage_0000000000000000120.md5
edits_0000000000000000023-0000000000000000024  fsimage_0000000000000000134
edits_0000000000000000025-0000000000000000025  fsimage_0000000000000000134.md5
edits_0000000000000000026-0000000000000000027  seen_txid
edits_0000000000000000028-0000000000000000028  VERSION
edits_0000000000000000029-0000000000000000029

(2)元数据合并控制参数

对于元数据的合并,是一个定时过程,基于:

~dfs.namenode.checkpoint.period,默认为3600(秒)一小时。

~dfs.namenode.checkpoint.txns,默认为1000000,即100W次事务。

对于上述两个条件,只要有一个达到条件就执行。

那hdfs文件系统多长时间检查一次是否满足条件呢?基于:

dfs.namenode.checkpoint.check.period,默认为60秒来决定。

4、secondaryNameNode的作用

        在这里,可能会很疑惑,为什么要将secondaryNameNode的作用,对于整个hdfs文件系统来讲,Namenode负责不断的生成edits文件,但Namenode并不会处理edits(edits和fsimage)文件,这些edits文件会被SecondaryNameNode通过http协议进行拉取,经SecondaryNameNode合并完成后使用。

相关文章:

  • SDN核心技术与内容
  • 34970A 数据采集 / 数据记录仪开关单元
  • 黑马点评笔记 redis缓存三大问题解决
  • 【深度学习】神经网络训练过程中不收敛或者训练失败的原因
  • 【实战详解】如何快速搭建接口自动化测试框架?Python + Requests
  • Verilator 用法
  • 轻量封装WebGPU渲染系统示例<39>- emissive和arm纹理支持(源码)
  • 智能优化算法应用:基于水循环算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 编译器设计02-前端概述
  • Android JNI 异常定位(2)—— addr2line
  • springboot 使用脚本进行启动部署
  • 7-2 输出大写英文字母
  • 园区智能配电系统(电力智能监控系统)
  • 算法基础之KMP算法
  • Jmeter 压测保姆级入门教程
  • SegmentFault for Android 3.0 发布
  • Angular数据绑定机制
  • CAP理论的例子讲解
  • EventListener原理
  • Gradle 5.0 正式版发布
  • java2019面试题北京
  • JSDuck 与 AngularJS 融合技巧
  • Linux下的乱码问题
  • Redis在Web项目中的应用与实践
  • Spark RDD学习: aggregate函数
  • 从零搭建Koa2 Server
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 分享几个不错的工具
  • 技术胖1-4季视频复习— (看视频笔记)
  • 判断客户端类型,Android,iOS,PC
  • 正则与JS中的正则
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 容器镜像
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ( 10 )MySQL中的外键
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (11)MSP430F5529 定时器B
  • (4.10~4.16)
  • (C语言)二分查找 超详细
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (三分钟)速览传统边缘检测算子
  • (一)RocketMQ初步认识
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .dwp和.webpart的区别
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Framework杂记
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET企业级应用架构设计系列之开场白
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • /bin、/sbin、/usr/bin、/usr/sbin
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理