hadoop及NameNode和SecondaryNameNode工作机制
hadoop及NameNode和SecondaryNameNode工作机制
1.hadoop组成
Common
MapReduce
Yarn
HDFS
(1)HDFS
namenode:存放目录,最重要的(主机)
datanode:存放数据。(从机)
2namenode:“助手”
(2)YARN
ResourceManager
NodeManager
ApplicationMaster
Container
NameNode和SecondaryNameNode工作机制
思考:NameNode中的元数据是存储在哪里的?
首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。那么我们就需要把内存中的数据写到磁盘上。
那么问题来了,如何写呢?如果一次性写入磁盘的话,粗略算一下,如果128G内存的namenode,如果把内存中的数据一次性全部写入磁盘的话大概需要3分钟的时间,那么意味着这三分钟之内,集群不能再接收任何的数据,只能完成写磁盘操作后才能执行其他功能,这无疑不可取。
所以HDFS选择了一种持久化措施,类似于Redis的AOF持久化过程。
工作过程:
每进行一次写磁盘操作,将这个操作追加到edits文件中,然后将内存作为一个状态(内存镜像)保存在硬盘中,然后2nn根据edits中记录的写操作,逐条执行,把edits中的写操作和磁盘中保存的内存镜像FsImage进行合并然后保存下来。
具体过程为:
首先namenode启动,启动的同时,首先将之前的edits.log和FsImage合并加载到内存中,至此namenode启动完毕。如果此时从客户端发来一个增删改请求,首先namenode会记录操作日志、更新滚动日志,先在磁盘中edits文件中追加这条增删改的请求,然后在到内存中进行数据的增删改。
然后2nn定时向namenode请求是否需要CheckPoint,(2nn帮忙完成edits合并成FsImage,CheckPoint类似于“存档”。)
CheckPoint的触发条件:
(1)定时时间到;
(2)Edits中的数据达到一定数量。
如果namenode需要CheckPoint(触发了CheckPoint),那么,2nn向nn请求执行CheckPoint,NameNode收到CheckPoint请求之后,将日志edits重命名,并且建立一个新的正在写的Edits文件,将重命名之后的edits文件拿给2nn去进行合并操作,建立的新的Edits文件用来记录当前客户端发来的写请求。
2nn将之前namenode重命名之后的edits文件和FsImage拷贝到自己的节点上,先将FsImage(内存状态)加载到内存中,然后将edits加载到内存中,进行合并。此时内存恢复的状态就恢复到了当时namenode重命名的日志edits日志结束时候的位置,然后2nn将内存中的数据全部写到磁盘上生成新的FsImage,这里我们称其为FsImage.chkpoint,然后将FsImage.chkpoint拷贝发送到nn节点。这是第一次合并,从第二次开始,2nn就不会加载FsImage了,只需要加载edits就够了。
hadoop及NameNode和SecondaryNameNode工作机制的更多相关文章
- NameNode和SecondaryNameNode工作原理剖析
NameNode和SecondaryNameNode工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode中的元数据是存储在那里的? 1>.首先,我 ...
- Hadoop(五)—— HDFS NameNode、DataNode工作机制
一.NN与2NN工作机制 NameNode(NN) 1.当HDFS启动时,会加载日志(edits)和镜像文件(fsImage)到内存中. 2-4.当元数据的增删改查请求进来时,NameNode会先将操 ...
- 【Hadoop】namenode与secondarynamenode的checkpoint合并元数据
Checkpoint Node(检查点节点) NameNode persists its namespace using two files: fsimage, which is the latest ...
- HDFS中NameNode工作机制
引言 NameNode: 存储元数据 管理整个HDFS集群 DataNode: 存储数据的block SecondaryNameNode: 辅助HDFS完成一些事情 NameNode和Secondar ...
- Hadoop系列009-NameNode工作机制
本人微信公众号,欢迎扫码关注! NameNode工作机制 1 NameNode & SecondaryNameNode工作机制 1.1 第一阶段:namenode启动 1)第一次启动namen ...
- 大数据学习之HDFS的工作机制07
1:namenode+secondaryNameNode工作机制 2:datanode工作机制 3:HDFS中的通信(代理对象RPC) 下面用代码来实现基本的原理 1:服务端代码 package it ...
- 图文详解 HDFS 的工作机制及其原理
大家好,我是大D. 今天开始给大家分享关于大数据入门技术栈--Hadoop的学习内容. 初识 Hadoop 为了解决大数据中海量数据的存储与计算问题,Hadoop 提供了一套分布式系统基础架构,核心内 ...
- NameNode 与 SecondaryNameNode 的工作机制
一.NameNode.Fsimage .Edits 和 SecondaryNameNode 概述 NameNode:在内存中储存 HDFS 文件的元数据信息(目录) 如果节点故障或断电,存在内存中的数 ...
- Hadoop的namenode的管理机制,工作机制和datanode的工作原理
HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...
随机推荐
- 分布式事务MSDTC使用时,需要的配置
服务器最终配置 DTC服务 组件 防火墙 这里,跟下面的解决方案有点差异,在添加2个规则之后,原本就有分布式相关的规则,也给开启了. 网上的解决办法 在服务里打开 Distributed Transa ...
- MySQL误删除用户怎么解决
前言:在不考虑到原来用户对关联数据库的授权问题的情况下,有以下两种思路解决 #1.安全模式修改 第一步:关闭数据库服务: [root@db01 ~]#/etc/init.d/mysqld stop 第 ...
- (十五)、linux软件的安装与查询-rpm与yum命令
一.RPM软件管理程序:rpm 1.RPM安装软件(install) rpm命令的选项超级多,安装话直接使用-ivh即可,其余做了解即可 命令格式:rpm -ivh package_name.rp ...
- 简单的xml数据库设计
我的需求 有时候系统需要存储一些简单的关系型属性,不考虑并发,不考虑性能(一次操作在几ms),数据库没有其他依赖引用,拿过来就可以用 为什么选xml作为数据库? 可读性好 实体的对应关系不严格 , 二 ...
- JAVA顺序结构和选择结构
顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则按顺序一句一句执行 顺序结构是最简单的算法结构 语句和语句直接,框与框直接就是按从上到下的顺序执行的,它是由若干个依次执行的处理步骤组成的, ...
- centosl7简洁版配置
生产环境安装了精简版的centos7需要进行相关配置,添加相关组件才能更好的使用! 由于不同的安装方式欠缺的组件不尽相同,本例尽可能满足一般的生产环境的需要!!! 一.安装ifconfig服务 在没有 ...
- LInux之Shell工具:Cut、Sed、Awk、Sort
一. cut cut的工作就是"剪",具体的说就是在文件中负责剪切数据用的.cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段输出. 1.基本用法 cut [选 ...
- Spring--AOP、通知的执行顺序
AOP执行顺序 如果我们在同一个方法自定义多个AOP,我们如何指定他们的执行顺序呢? 可以通过指定order,order越小越是最先执行. 配置AOP执行顺序的三种方式: 通过实现Ordered接口 ...
- 用python+sklearn(机器学习)实现天气预报数据 模型和使用
用python+sklearn机器学习实现天气预报 模型和使用 项目地址 系列教程 0.前言 1.建立模型 a.准备 引入所需要的头文件 选择模型 选择评估方法 获取数据集 b.建立模型 c.获取模型 ...
- linux系统修改Swap分区【转】
在装完Linux系统之后自己去修改Swap分区的大小(两种方法) 在安装完Linux系统后,swap分区太小怎么办,怎么可以扩大Swap分区呢?有两个办法,一个是从新建立swap分区,一个是增加swa ...