NameNode&Secondary NameNode 工作机制

NameNode:
1.启动时,加载编辑日志和镜像文件到内存
2.当客户端对元数据进行增删改,请求NameNode
3.NameNode记录操作日志,更新滚动日志
4.日志记录完成,在NameNode内存中对元数据进行操作
edits.001 操作日志
edits.002
edits.inprogress 正在进行的操作日志
fsimage 镜像文件
SecondaryNameNode:(其主要作用就是:合并edit和fsimage)
0.检查点(checkpoint)触发。条件是:
a.定时时间到(默认一个小时)
b.操作日志中的数据满了(100w次操作)
1.请求NameNode是否需要CheckPoint,直接带回 NameNode是否检查结果
2.执行CheckPoint请求
3.滚动正在写的操作日志,生成最新的一个操作日志
4.将操作日志和之前旧的镜像fsimage文件拷贝到SecondaryNameNode
5.在SecondaryNameNode内存中合并日志文件和fsimage文件
6.生成新的fsimage.chkpoint
7.将fsimage.chkpoint拷贝到NameNode中
8.重命名fsimage.chkpoint为fsimage

日志文件

目录结构:

$HADOOP_HOME/data/tmp/dfs/name/current
$HADOOP_DATA_HOME/tmp/dfs/name/current edits_0000000000000000000
fsimage_0000000000000000000.md5
seen_txid
VERSION 1.fsimage:
HDFS 文件系统元数据的一个永久性的检查点,其中包含 HDFS文件系统的所有目录和文件 idnode 的序列化信息
2.edits:
存放 HDFS 文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到 edits 文件中。
3.seen_txid:
文件保存的是一个数字,就是最后一个 edits_的数字 每次 Namenode 启动的时候都会将 fsimage 文件读入内存,
并从 00001 开始到 seen_txid 中记录的数字依次执行每个 edits 里面的更新操作,
保证内存中的元数据信息是最新的、同步的,可以看成 Namenode 启动的时候就将 fsimage 和 edits 文件进行了合并。

查看fsimage文件和edits文件

oiv 查看 fsimage 文件
hdfs oiv -p 文件类型 -i 镜像文件 -o 转换后文件输出路径
hdfs oiv -p XML -i fsimage_0000000000000000025 -o /opt/module/hadoop-2.7.2/fsimage.xml oev 查看 edits 文件
hdfs oev -p 文件类型 -i 编辑日志 -o 转换后文件输出路径
hdfs oev -p XML -i edits_0000000000000000012-0000000000000000013 -o /opt/module/hadoop-2.7.2/edits.xml

chkpoint 检查 时间 参数 设置

hdfs-default.xml

<!-- 默认:SecondaryNameNode 每隔一小时执行一次 -->
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value>
</property> <!-- 一分钟检查一次操作次数,当操作次数达到 1 百万时,SecondaryNameNode 执行一次。 -->
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
<description>操作动作次数</description>
</property>
<property>
<name>dfs.namenode.checkpoint.check.period</name>
<value>60</value>
<description> 1 分钟检查一次操作次数</description>
</property>

NameNode多目录配置

NameNode 的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。
配置步骤: (1)在 hdfs-site.xml 文件中增加如下内容
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value>
</property> (2)停止集群,删除 data 和 logs 中所有数据
$ rm -rf data/ logs/
(3)格式化集群并启动。
$ bin/hdfs namenode –format
$ sbin/start-dfs.sh

本博客仅为博主学习总结,感谢各大网络平台的资料。蟹蟹!!

NameNode和SecondaryNameNode的工作机制的更多相关文章

  1. NameNode 与 SecondaryNameNode 的工作机制

    一.NameNode.Fsimage .Edits 和 SecondaryNameNode 概述 NameNode:在内存中储存 HDFS 文件的元数据信息(目录) 如果节点故障或断电,存在内存中的数 ...

  2. HDFS的NameNode与SecondaryNameNode的工作原理

    原文:https://blog.51cto.com/xpleaf/2147375 看完之后确实对nameNode的工作更加清晰一些 在Hadoop中,有一些命名不好的模块,Secondary Name ...

  3. 深刻理解HDFS工作机制

    深入理解一个技术的工作机制是灵活运用和快速解决问题的根本方法,也是唯一途径.对于HDFS来说除了要明白它的应用场景和用法以及通用分布式架构之外更重要的是理解关键步骤的原理和实现细节.在看这篇博文之前需 ...

  4. Hadoop_09_HDFS 的 NameNode工作机制

    理解NameNode的工作机制尤其是元数据管理机制,以增强对HDFS工作原理的理解,及培养hadoop集群运营中“性能调优” “NameNode”故障问题的分析解决能力 1.NameNode职责: H ...

  5. HDFS成员的工作机制

    NameNode工作机制 nn负责管理块的元数据信息,元数据信息为fsimage和edits预写日志,通过edits预写日志来更新fsimage中的元数据信息,每次namenode启动时,都会将磁盘中 ...

  6. hadoop及NameNode和SecondaryNameNode工作机制

    hadoop及NameNode和SecondaryNameNode工作机制 1.hadoop组成 Common MapReduce Yarn HDFS (1)HDFS namenode:存放目录,最重 ...

  7. NameNode和SecondaryNameNode工作原理剖析

    NameNode和SecondaryNameNode工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode中的元数据是存储在那里的? 1>.首先,我 ...

  8. Hadoop的namenode的管理机制,工作机制和datanode的工作原理

    HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...

  9. hdfs namenode/datanode工作机制

    一. namenode工作机制 1. 客户端上传文件时,namenode先检查有没有同名的文件,如果有,则直接返回错误信息.如果没有,则根据要上传文件的大小以及block的大小,算出需要分成几个blo ...

随机推荐

  1. 国家气象局 天气预报 城市代码(JSON格式)

    如题 { "城市代码": [ { "省": "北京", "市": [ { "市名": "北 ...

  2. 教你如何快速使用Github

    以前看过几篇github的使用教程,感觉还是不是很清晰,自从看到了这篇,通俗易懂,也学会基本的使用了,在此为大家推荐.(转自知乎,为了能让更多的人看到,请允许我使用 “原创”,如果侵权请联系.) Gi ...

  3. configure -help

    http://www.360doc.com/content/14/1215/17/18578054_433158382.shtml http://blog.csdn.net/mociml/articl ...

  4. [铁人赛] ASP.NET Core 2 系列- 从头开始

    来势汹汹的.NET Core似乎要取代.NET Framework,ASP.NET也随之发布.NET Core版本.虽说名称沿用ASP.NET,但相较于ASP.NET确有许多架构上的差异,可说是除了名 ...

  5. VS2010下编译配置Boost_1.53

    一.准备工作 1.下载最新版本的boost库.所在地址:boost_1_53_0.zip.官方推荐7z压缩格式的,因为其压缩效率更好,相应包的大小也比较小. 2.解压缩到指定目录,如C:\boost_ ...

  6. jquery事件和动画操作集锦

    一,事件 1,加载事件 1 2 3 4 5 6 $(document).ready(function(){   //todo }); //dom准备就绪后执行ready里面的函数,此时dom对应的相关 ...

  7. mybatis链接数据库

    DBTools类 public class DBTools { // 加载mybatis文件 public static SqlSession getSession() { //加载配置文件 Inpu ...

  8. vue.js异步上传文件前后端代码

    上传文件前端代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...

  9. mysql-5.7.24-winx64安装与Navicat_for_MySQL_10.1.7注册码

    mysql安装图解:https://blog.csdn.net/qq_38455201/article/details/83419450 Navicat注册码名:组织:注册码:均为NAVN-LNXG- ...

  10. VB程序逆向常用的函数

    本文转载!!! 原文地址:http://www.cnblogs.com/bbdxf/p/3780187.html 1) 数据类型转换: a) __vbaI2Str    将一个字符串转为8 位(1个字 ...