1. hadoop中HDFS的NameNode原理

1.1. 组成

  • 包括HDFS(分布式文件系统),YARN(分布式资源调度系统),MapReduce(分布式计算系统),等等。

1.2. HDFS架构原理

  • 比如现在要上传一个1T的大文件,提交给HDFS的Active NameNode(用以存放文件目录树,权限设置,副本数设置等),它会在指定目录下创建一个新的文件对象,比如access_20180101.log
  • 至于具体数据,它会将它拆分后进行分布式存储,分散在各个DataNode节点,且默认都会有3个副本,防止其中一台机器宕机使得数据缺失
  • 这里图之所以这么复杂,原因在于大量的请求提交给Active NameNode会不断修改元数据,而元数据是在内存的,为了防止宕机丢失,必须把它存在磁盘,但是频繁的修改磁盘数据,性能是很低的,这是大量的磁盘随机读写,所以有了上述图的方案
  • 每次操作请求Active NameNode会写一条edits log放到磁盘文件,不是直接修改磁盘文件内容,而是顺序追加,这个性能就高多了
  • 同时它会把edits log还会写入JournalNodes集群,通过JournalNodes会把操作日志传到Standby NameNode,这就相当于是个备份服务,确保了Standby NameNode内存中的元数据和Active NameNode是一样的,而Standby NameNode每隔一段时间会把内存里的元数据写一份到磁盘的fsimage文件,这个文件就是全量的元数据了,不是日志记录
  • 再然后会把这个fsimage上传到Active NameNode,替换掉内存中的元数据,再清空掉Active NameNode所在磁盘上的edits log,重新开始记录日志
  • 为什么要这么做?因为为了防止Active NameNode突然宕机后,我们需要进行恢复,它的恢复是基于磁盘上的edits log的,和redis的aof相同的道理,它需要重新运行一遍日志中的所有命令,当时间长了后日志可能会很大,重启时间也就会很长
  • 引入Standby NameNode的备份机制,就可以在节点重启时,直接从Standby NameNodefsimage读取元数据备份,这就相当于redis的rdb恢复,速度是比较快的,读取完备份再从磁盘的edits log读取少量的操作日志执行恢复,就完全恢复到宕机前的状态了

1.3. NameNode如何承载每秒上千次的高并发访问

  • 分段加锁机制+内存双缓冲机制(老实说我是没看懂,他的博客我也留言问了两个问题,有能看懂了拜托这里留言或在他博客过眼云烟本尊这个评论者下留言,Thanks♪(・ω・)ノ)
  • 我特别不懂的地方就是既要保证顺序性,为什么还能用多线程并发?

参考:
用大白话告诉你小白都能看懂的Hadoop架构原理
大规模集群下Hadoop NameNode如何承载每秒上千次的高并发访问

hadoop中HDFS的NameNode原理相关推荐

  1. hadoop之hdfs及其工作原理

    hadoop之hdfs及其工作原理 (一)hdfs产生的背景 随着数据量的不断增大和增长速度的不断加快,一台机器上已经容纳不下,因此就需要放到更多的机器中,但这样做不方便维护和管理,因此需要一种文件系 ...

  2. hadoop中hdfs文件下载

    一.不多说,按照惯例,先贴代码 还是建议粘贴到自己的eclipse中查看 package com.Lin_wj1995.bigdata.hdfs;import java.io.FileNotFound ...

  3. Hadoop HA HDFS启动 NameNode启动失败解析

    今天也要努力学习 作者大哥:me2xp  https://www.linuxidc.com/Linux/2016-03/129437.htm 看日志真的很重要!!!!!!!!!! 一.问题描述 HA按 ...

  4. Hadoop中HDFS的Shell操作(开发重点)、启动Hadoop集群、基本语法、常用命令实操、命令大全、-help、-mkdir、-moveFromLocal、-copyFromLocal

    文章目录 6.HDFS的Shell操作(开发重点) 6.1基本语法 6.2命令大全 6.3常用命令实操 6.3.1准备工作 6.3.1.1启动Hadoop集群(方便后续的测试) 6.3.1.2-hel ...

  5. Hadoop中HDFS的读写流程详解

    一.HDFS写流程示意图: (1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在,检查客户端是否有权限 ...

  6. hadoop之 Hadoop2.2.0中HDFS的高可用性实现原理

    在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障 ...

  7. Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详介AvatarNode

    2019独角兽企业重金招聘Python工程师标准>>> 正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋.本文讨 ...

  8. Hadoop详解(二):HDFS存储系统设计原理

    1. 基本概念 1.1 NameNode HDFS采用Master/Slave架构.NameNode就是HDFS的Master架构.HDFS系统包括一个NameNode组件,主要负责HDFS文件系统的 ...

  9. Hadoop中Namenode单点故障的解决方案及详细介绍

    正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋.本文讨论一下为了解决这个问题而存在的几个solution. 1. Seconda ...

  10. Hadoop基础-Hdfs各个组件的运行原理介绍

    Hadoop基础-Hdfs各个组件的运行原理介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode工作原理(默认端口号:50070) 1>.什么是NameN ...

最新文章

  1. 如何增加新站前期收录几率?
  2. 05APR2022 日期格式这样的怎么转换成日期?
  3. linux 产生50-100之内的随机数
  4. boost::log模块实现格式化程序流的测试程序
  5. PHP实现带重试功能的curl连接示例
  6. The 3n + 1 problem UVA - 100
  7. route map应用策略路由(下)
  8. [ASP.NET 控件实作 Day12] 继承 TBActiveX 重新改写 TBMediaPlayer 控件
  9. java中输出打印 num_System.out.print。 如何将打印输出编号?(JAVA)
  10. linux rm 命令删除文件恢复_rm删除文件空间就释放了吗?天真!
  11. 常用c语言函数实现,常用的C语言库函数实现
  12. LeetCode简单题目-2019.10.10-10.11-8道
  13. android编译make错误——javalib.jar invalid header field”、classes-full-debug.jar 错误 41 ...
  14. success.php
  15. 重订增广(清朝·周希陶)
  16. dcp7080d怎么加墨粉_兄弟打印机DCP 7080D提示更换墨粉该怎么办-
  17. 说说我对[lambda x: x*i for i in range(4)]的理解
  18. c语言exe木马,为啥我用c语言写成的exe文件会被360当做木马?
  19. 最新!中国大陆人口首超14亿!但我们为什么不再生孩子了?
  20. IDEA将项目打包成jar包

热门文章

  1. 如何推广网站 网站推广增加访问量的29种方法
  2. 魔百和CM201-1 线机教程 救砖(大部分情况能用)
  3. Word 公式编辑器: 公式居中,编号居右,带章节号自动更新,且可以交叉引用
  4. python:相对路径的参照物会发生变化
  5. 汽车自动变速器的共性技术
  6. web 上传文件到ftp服务器,web 上传文件到ftp服务器上
  7. 格物斯坦:机器人高手决战申城,IRM开启孩子新视界
  8. 如何设置input只能输入数字
  9. excel页码怎么设置从4开始?
  10. 用计算机为题目写作400字,以电脑为话题的作文