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,一经查实,立即删除!

相关文章

表单验证的初步实现和省市级联

1.表单验证的初步实现 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html xmlns"http://www.w3.org/1999/xhtml" lang"en"><head><meta http-equiv"Conte…

抓包软件: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实现复杂查询逻辑开发难…

数据结构实验之排序七:选课名单

数据结构实验之排序七&#xff1a;选课名单 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 随着学校规模的扩大&#xff0c;学生人数急剧增加&#xff0c;选课名单的输出也成为一个繁重的任务&#xff0c;我校目前有在校生3万多名&#xff0…

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

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

关于国内厂商的国际版杀毒软件

很多国内软件公司的杀毒软件都分为国内版和国际版&#xff0c;这二者有什么区别呢&#xff1f; 首先&#xff0c;这两个的团队是不一样的。国际版的团队大多收购&#xff0c;国内版为自研。例如百度杀毒的国际版就是原超级巡警的团队做的&#xff0c;而国内版是自己另起炉灶。…

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;用法一致…

大数据面试题总结(附答案)

文章目录前言hadoop相关试题Hive相关试题Hbase相关试题Storm相关试题Spark相关试题Java基础试题其他前言 最近由于要准备面试就开始提早看些面试、笔试题。以下是自己总结的一些经常出现、有价值的试题&#xff0c;包含hadoop、hive、hbase、storm、spark等。答案仅供参考&…

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;所以比传统的数据库快许多&…

Django中模型类 属性-学习笔记

定义属性 Django根据属性的类型确定以下信息&#xff1a; 当前选择的数据库支持字段的类型渲染管理表单时使用的默认html控件在管理站点最低限度的验证 django会为表创建自动增长的主键列&#xff0c;每个模型只能有一个主键列&#xff0c;如果使用选项设置某属性为主键列后d…

Angular Redux

Angular Redux 转载于:https://www.cnblogs.com/skating/p/6185878.html

AtomicInteger相关类

在java6以后我们不但接触到了Lock相关的锁&#xff0c;也接触到了很多更加乐观的原子修改操作&#xff0c;也就是在修改时我们只需要保证它的那个瞬间是安全的即可&#xff0c;经过相应的包装后可以再处理对象的并发修改&#xff0c;以及并发中的ABA问题&#xff0c;本文讲述At…

Storm入门简介

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

项目完成

完成示例项目 现在还需要的代码包括三个方面&#xff0c;三个方面顺序不分先后。 1.定义视图2.定义URLconf3.定义模板 定义视图 编写booktest/views.py文件如下&#xff1a; from django.shortcuts import render from booktest.models import BookInfo#首页&#xff0c;展…

前端模板预编译技术

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

Python如何生成windows可执行的exe文件

打包工具 pyinstaller 安装pyinstaller 如果你的网络稳定&#xff0c;通常直接使用下面的命令安装即可&#xff1a; pip install pyinstaller 当然了&#xff0c;你也可以下载pyinstaller源码包&#xff0c;然后进入包目录执行下面的命令&#xff0c;同样可以安装&#xff…

招商银行信用卡中心华泰证券暑期实习软开笔试小结

白菜自动化小硕一枚&#xff0c;18届&#xff0c;下学期就正式要找工作了&#xff0c;没有实习经验&#xff0c;感觉心慌慌。现在学校里已经开始各种提前招实习&#xff0c;内推了&#xff0c;so暑假想提前试试水&#xff0c;投一投暑期实习。 看到心水的单位就投一投&#xff…

理想的程序猿

出处 | http://guoze.me 最近看到的一篇不错的文章&#xff0c;分享一下。 我算是靠坑蒙拐骗进了程序员的门&#xff0c;然后一路狂奔。26岁之前几乎没有任何写代码的经验&#xff0c;研究生毕业却意外选择了一家不可能提供培训的初创公司&#xff0c;在每日担忧公司倒闭、害…