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 ...
随机推荐
- [UWP] - 用Json格式来发送一个Post请求到WCF服务
测试实体类:(需要在客户端和服务端建了有相同字段名称的实体) public class CompositeType { public CompositeType() { SubCompositeTyp ...
- Winform Dock顺序调整
在布局的时候,当一个窗体内有多个控件使用了Dock属性来布局,Dock顺序的调整: 最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化 ...
- 微信小程序--关于加快小程序开发的几个小建议
加快小程序开发的几个小建议 1.使用 app.json创建页面 按照我们平常的开发习惯,创建一个新的页面,一般都会先创建文件夹,再创建对应page的形式,创建完成后,app.json中会自动注册该 ...
- replaceAll
/** * 根据正则是,替换对应内容 * @return */ public static String replaceByRegex(String regex,String src,Strin ...
- MySQL-5.7.29-winx64解压缩版安装
1.下载压缩包 https://dev.mysql.com/downloads/file/?id=491809 2.解压下载的文件(路径放在哪都可以) 3.配置环境变量 添加变量到path中 4.准备 ...
- java代理(静态代理和jdk动态代理以及cglib代理)
版权声明:本文为Fighter168原创文章,未经允许不得转载. 目录(?)[+] 说到代理,脑袋中浮现一大堆代理相关的名词,代理模式,静态代理,jdk代理,cglib代理等等. 记忆特别深刻 ...
- 身份证前6位地址码+码表+MySQL
insert into smd_address_code(add_code,address) values('110000','北京市'); insert into smd_address_code( ...
- 设计模式——从HttpServletRequestWrapper了解装饰者模式
从一个业务开始 最近项目上紧急需要,为了应付一个不知道啥的安全检测,我们要给系统追加防XSS注入的功能,这里有经验的JavaWeb开发就会想到,用过滤器或者基于项目框架的拦截器来做,但是顺着这个思路下 ...
- Redis 设计与实现 6:五大数据类型之列表
列表对象有 3 种编码:ziplist.linkedlist.quicklist. ziplist 和 linkedlist 是 3.2 版本之前的编码. quicklist 是 3.2 版本新增的编 ...
- 为什么Java中lambda表达式不能改变外部变量的值,也不能定义自己的同名的本地变量呢?
作者:blindpirate链接:https://www.zhihu.com/question/361639494/answer/948286842来源:知乎著作权归作者所有.商业转载请联系作者获得授 ...