Secondary Namenode的Check point机制以及Namenode、Datanode工作机制说明

  • 目录
    • 前言:
    • 1、NameNode的工作机制
    • 2、DataNode的工作机制
    • 3、Secondary Namenode的Check point机制

目录

前言:

在说明checkpoint机制之前,先要了解下namenode、datanode的一些功能和职责。

1、NameNode的工作机制

问题场景:
1、集群启动后,可以查看文件,但是上传文件时报错,打开web页面可看到namenode正处于safemode状态,怎么处理?(safemode是由于当前的namenode和大部分的datanode未建立完全的链接<即namenode不清楚有些数据的存储位置造成的>)
2、Namenode服务器的磁盘故障导致namenode宕机,如何挽救集群及数据?(多种方法:1、早起设置集群时配置HA机制。2、在配置文件hdfs.site中将dfs.namenode.name.dir属性配置多个目录,就相当于对namenode数据做了多份备份,这样做的好处是当其中一个目录损坏了,也不会影响到Hadoop的元数据,特别是当其中一个目录是NFS(网络文件系统Network File System,NFS)之上,即使你这台机器损坏了,元数据也得到保存。)
3、Namenode是否可以有多个(是,后面问题根据实际情况来具体分析)?namenode内存要配置多大?namenode跟集群数据存储能力有关系吗?
4、文件的blocksize究竟调大好还是调小好?
……
诸如此类问题的回答,都需要基于对namenode自身的工作原理的深刻理解。(目前的话个人件建议只需要了解以下的主要内容就行了,后续如果遇到问题再深入了解相关内容)

1. namenode的职责:
负责客户端请求的响应;
元数据的管理(查询,修改);
2. 对元数据管理:
namenode对数据的管理采用了三种存储形式:
A、内存元数据(NameSystem):内存中有一份完整的元数据(内存meta data)。
B、磁盘元数据镜像文件:磁盘有一个“准完整”的元数据镜像(fsimage)文件(在namenode的工作目录中)。
C、数据操作日志文件(可通过日志运算出元数据):用于衔接内存metadata和持久化元数据镜像fsimage之间的操作日志(edits文件)。
注:当客户端对hdfs中的文件进行新增或者修改操作,操作记录首先被记入edits日志文件中,当客户端操作成功后,相应的元数据会更新到内存meta.data中。

2、DataNode的工作机制

问题场景:
1、集群容量不够,怎么扩容?
2、如果有一些datanode宕机,该怎么办?
3、datanode明明已启动,但是集群中的可用datanode列表中就是没有,怎么办?

以上这类问题的解答,有赖于对datanode工作机制的深刻理解(目前的话个人件建议只需要了解以下的主要内容就行了,后续如果遇到问题再深入了解相关内容)
1、Datanode工作职责:
存储管理用户的文件块数据
定期向namenode汇报自身所持有的block信息(通过心跳信息上报)
(这点很重要,因为,当集群中发生某些block副本失效时,集群如何恢复block初始副本数量的问题)

3、Secondary Namenode的Check point机制

了解了以上知识,接下来再来理解元数据的checkpoint机制是怎么一回事的时候就很容易了。
什么叫checkpoint?
每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge(这个过程称为checkpoint)
checkpoint机制如下图所示:
这里写图片描述

  1. 客户端发送更新元数据的请求。
  2. namenode在内存中更新元数据。
  3. edits记录更新的操作日志
  4. namenode滚动当前正在写的edits。
  5. 将生成的fsimage和edtis下载到secender namenode.
  6. 将下载到secender namenode的fsimage和edtis放入内存进行合并。
  7. 合并更新后的元数据dump成新的image文件
  8. 然后secender namenode请求namenode是否需要checkpoint
  9. 如果需要就将edtis正在写的那条日志进行滚动(即重复4步骤的操作)并将secender namenode生成的新的fsimage上传到namenode并重命名为fsimage。

checkpoint的附带作用
namenode和secondary namenode的工作目录存储结构完全相同,所以,当namenode故障退出需要重新恢复时,可以从secondary namenode的工作目录中将fsimage拷贝到namenode的工作目录,以恢复namenode的元数据。

最后重点陈述下Secondary Namenode与Namenode的HA机制的区别,有许多人认为Secondary Namenode其实就是namenode一个HA机制,其实不是这样的。Secondary Namenode相当于Namenode的一个热备份(比如电脑的一键还原),只是定期将合并的image文件通过checkpoint机制传给Namenode,并不具备HA机制中当namenode挂了之后直接接管namenode的能力。更深层来说,HA机制中备份的namenode是对namenode内存、edtis、image的实时的备份,而Secondary Namenode只是对image定时的备份。所以两者不是同一个东西。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抓包软件:Charles

修正&#xff1a;手机不必一定连接电脑分享的热点&#xff0c;只需要手机和电脑在同一个局域网下就可以了&#xff0c;手机代理IP设置为电脑的IP。 之前写过一篇通过Wireshark进行抓包&#xff0c;分析网络连接的文章《通过WireShark抓取iOS联网数据实例分析》&#xff1a;htt…

Hive的相关介绍

目录前言&#xff1a;1、Hive简介2、Hive架构3、Hive与Hadoop的关系4、Hive与传统数据库对比5、Hive的数据存储总结&#xff1a; 目录 前言&#xff1a; 为什么使用Hive 直接使用hadoop所面临的问题 人员学习成本太高 项目周期要求太短 MapReduce实现复杂查询逻辑开发难…

Java第五次作业--面向对象高级特性(抽象类和接口)

一、学习要点 认真看书并查阅相关资料&#xff0c;掌握以下内容&#xff1a; 掌握抽象类的设计掌握接口的设计理解简单工厂设计模式理解抽象类和接口的区别掌握包装类的应用掌握对象的比较方法和比较器的使用学习使用日期操作类学习匿名内部类的使用二、作业要求 发布一篇随笔&…

gulp教程之gulp-minify-css【gulp-clean-css】

原文&#xff1a;http://www.ydcss.com/archives/41 简介&#xff1a; 使用gulp-minify-css压缩css文件&#xff0c;减小文件大小&#xff0c;并给引用url添加版本号避免缓存。重要&#xff1a;gulp-minify-css已经被废弃&#xff0c;请使用gulp-clean-css&#xff0c;用法一致…

win7 IE11卸载后无法上网

今天某同事需要访问一个银行网站&#xff0c;必须使用IE8,我在win7中降级IE11,直接卸载了IE11和其语言包&#xff0c;发现IE8再也打不开网页了&#xff0c;每次打开都提示保存html网页。测试Google Chrome上网完全没有问题。IE8的internet选项等任何工具菜单点击均无反应&#…

关于django的模板

模板 问题 如何向请求者返回一个漂亮的页面呢&#xff1f; 肯定需要用到html、css&#xff0c;如果想要更炫的效果还要加入js&#xff0c;问题来了&#xff0c;这么一堆字段串全都写到视图中&#xff0c;作为HttpResponse()的参数吗&#xff1f;这样定义就太麻烦了吧&#x…

Hbase简介及常用命令相关知识总结

文章目录目录前言&#xff1a;1.Hbase简介1.1、什么是Hbase1.2、与传统数据库的对比1.3、Hbase集群中的角色2、Hbase数据模型3、Hbase命令总结&#xff1a;目录 前言&#xff1a; 对于Hbase来说&#xff0c;由于其是基于列的数据库&#xff0c;所以比传统的数据库快许多&…

Storm入门简介

目录前言&#xff1a;1、Storm简介2、Storm与Hadoop的区别3、Storm核心组件4、Storm编程模型5、流式计算一般架构图&#xff08;重要&#xff09;总结&#xff1a; 目录 前言&#xff1a; 在介绍Storm之前&#xff0c;先介绍下离线计算。 离线计算&#xff1a;批量获取数据…

前端模板预编译技术

什么是前端模板预编译 前端模板预编译通过预编译技术让前端模板突破浏览器限制&#xff0c;实现后端模板一样的同步“文件”加载能力。它采用目录来组织维护前端模板&#xff0c;从而让前端模板实现工程化管理&#xff0c;最终保证前端模板在复杂单页 web 应用下的可维护性。同…

node08-express

目录&#xff1a;node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-express node09-cookie express模块&#xff1a; 1 /*2 * express是一个应用框架3 * 1、路由4 * 2、中间件5 * 3、模板引擎6 * */7 8 var express requ…

Java基础常见笔试题总结

以下是自己总结的一些Java常见的基础知识题&#xff0c;答案仅供参考&#xff0c;如有异议请指出。一直保持更新状态。 1.什么是Java虚拟机&#xff1f;为什么Java被称作是“平台无关的编程语言”&#xff1f; Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编…

各种机器学习开源项目精选TOP30

8800个机器学习开源项目为你精选TOP30&#xff01; 授权自AI科技大本营&#xff08;ID: rgznai100) 本文共图文结合&#xff0c;建议阅读5分钟。 本文为大家带来了30个广受好评的机器学习开源项目。 最近&#xff0c;Mybridge发布了一篇文章&#xff0c;对比了过去一年中机…

Tomcat控制台输出到文件

为什么80%的码农都做不了架构师&#xff1f;>>> 修改startup.bat call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\test.log 转载于:https://my.oschina.net/cccyb/blog/886047

常见算法详解(原理及代码实现Python版本)

文章目录前言1、冒泡排序2、选择排序3、插入排序4、希尔排序5、快速排序6、归并排序7、二分法查找总结前言 最近复习了下常见的算法&#xff0c;在这里手动再写一遍&#xff0c;权当加深自己的印象。代码实现用的是python3.6版本。 1、冒泡排序 原理&#xff1a; 冒泡排序&a…

[转载] 全方位提升网站打开速度:前端、后端、新的技术

原文地址&#xff1a;Building a Shop with Sub-Second Page Loads: Lessons Learned原文作者&#xff1a;Erik Witt译文出自&#xff1a;掘金翻译计划译者&#xff1a;luoyaqifei校对者&#xff1a;Romeo0906&#xff0c;L9m全方位提升网站打开速度&#xff1a;前端、后端、新…

20个顶级大数据软件应用程序

目录1. Domo2. Teradata Database3. Hitachi Vantara4. TIBCO公司的Statistica5. Panoply6. IBM Watson Analytics7. SAS Visual Analytics8. Sisense商业智能软件9. Talend的大数据工作室10. Cloudera11. MongoDB12. Vertica Analytics Platform13. SAP Vora14. Oracle Big Da…

MapTask、ReduceTask并行度决定机制

目录前言:1、mapTask并行度的决定机制2、ReduceTask并行度的决定总结&#xff1a; 目录 前言: MapTask的并行度决定map阶段的任务处理并发度&#xff0c;进而影响到整个job的处理速度。那么&#xff0c;MapTask并行实例是否越多越好呢&#xff1f;其并行度又是如何决定呢&am…

6大主流开源SQL引擎总结,遥遥领先的是谁?

根据 O’Reilly 2016年数据科学薪资调查显示&#xff0c;SQL 是数据科学领域使用最广泛的语言。大部分项目都需要一些SQL 操作&#xff0c;甚至有一些只需要SQL。本文就带你来了解这些主流的开源SQL引擎&#xff01;背景介绍 本文涵盖了6个开源领导者&#xff1a;Hive、Impala、…

Yarn在MapReduce中的工作机制

目录前言:1、YARN概述2、mapreduce&yarn的工作机制总结&#xff1a; 目录 前言: 在了解Yarn在MR中的作用的时候需要先了解Yarn是什么。 1、YARN概述 Yarn是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&…

长连接心跳机制理解

近期使用go 开发聊天室&#xff0c;使用到websocket常链接。 if err websocket.JSON.Receive(ws,&reply); err ! nil {log.Println(err)return } 我发现当连接断开的时候会走if里面&#xff0c;输出eof 这样就知道&#xff0c;客户端断开了连接。 但在之前使用workerman …