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工作机制的更多相关文章

  1. NameNode和SecondaryNameNode工作原理剖析

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

  2. Hadoop(五)—— HDFS NameNode、DataNode工作机制

    一.NN与2NN工作机制 NameNode(NN) 1.当HDFS启动时,会加载日志(edits)和镜像文件(fsImage)到内存中. 2-4.当元数据的增删改查请求进来时,NameNode会先将操 ...

  3. 【Hadoop】namenode与secondarynamenode的checkpoint合并元数据

    Checkpoint Node(检查点节点) NameNode persists its namespace using two files: fsimage, which is the latest ...

  4. HDFS中NameNode工作机制

    引言 NameNode: 存储元数据 管理整个HDFS集群 DataNode: 存储数据的block SecondaryNameNode: 辅助HDFS完成一些事情 NameNode和Secondar ...

  5. Hadoop系列009-NameNode工作机制

    本人微信公众号,欢迎扫码关注! NameNode工作机制 1 NameNode & SecondaryNameNode工作机制 1.1 第一阶段:namenode启动 1)第一次启动namen ...

  6. 大数据学习之HDFS的工作机制07

    1:namenode+secondaryNameNode工作机制 2:datanode工作机制 3:HDFS中的通信(代理对象RPC) 下面用代码来实现基本的原理 1:服务端代码 package it ...

  7. 图文详解 HDFS 的工作机制及其原理

    大家好,我是大D. 今天开始给大家分享关于大数据入门技术栈--Hadoop的学习内容. 初识 Hadoop 为了解决大数据中海量数据的存储与计算问题,Hadoop 提供了一套分布式系统基础架构,核心内 ...

  8. NameNode 与 SecondaryNameNode 的工作机制

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

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

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

随机推荐

  1. MySQL如何优雅的删除大表

    前言 删除表,大家下意识想到的命令可能是直接使用DROP TABLE "表名",这是初生牛犊的做法,因为当要删除的表达空间到几十G,甚至是几百G的表时候.这样一条命令下去,MySQ ...

  2. 前置机器学习(五):30分钟掌握常用Matplitlib用法

    Matplotlib 是建立在NumPy基础之上的Python绘图库,是在机器学习中用于数据可视化的工具. 我们在前面的文章讲过NumPy的用法,这里我们就不展开讨论NumPy的相关知识了. Matp ...

  3. git文件锁定不更新和忽略

    git文件的忽略 新建未提交的文件直接添加.gitignore 提交之后的文件已被git追踪 这时需要清除git缓存 忽略文件 git rm --cached ./src/main/resources ...

  4. 渗透工具Burp Suite浅析

    Burp suite是一款Web安全领域的跨平台工具,基于Java开发.它集成了很多用于发现常见Web漏洞的模块,如Proxy,Spider,Scanner,Intruder,Repeater等.所有 ...

  5. 在wildfly 21中搭建cluster集群

    目录 简介 下载软件和相关组件 配置domain 创建应用程序 部署应用程序 集群配置 总结 简介 wildfly是一个非常强大的工具,我们可以轻松的使用wildfly部署应用程序,更为强大的是,wi ...

  6. Redis基础篇(六)数据同步:主从复制

    Redis具有高可靠性,体现在两方面: 一是数据尽量少丢失,通过前面介绍的持久化方式AOF和RDB,在宕机时可以恢复数据. 二是服务尽量少中断,通过副本冗余来实现. 今天我们学习的就是通过主从复制实现 ...

  7. 异步技巧之CompletableFuture

    摘自--https://juejin.im/post/5b4622df5188251ac9766f47 异步技巧之CompletableFuture 1.Future接口 1.1 什么是Future? ...

  8. 手写一个RPC框架

    一.前言 前段时间看到一篇不错的文章<看了这篇你就会手写RPC框架了>,于是便来了兴趣对着实现了一遍,后面觉得还有很多优化的地方便对其进行了改进. 主要改动点如下: 除了Java序列化协议 ...

  9. 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击

    风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...

  10. 7.prometheus之查询API

    一.格式概述 二.表达式查询 2.1 Instant queries(即时查询) 2.2 范围查询 三.查询元数据 3.1 通过标签匹配器找到度量指标列表 3.2 获取标签名 3.3 查询标签值 四. ...