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文件系统 nameNode出现的问题 nameNode无法打开

    1,修改core-site.xml文件,先改成localhost,将所有进程关闭stop-all.sh(或者是先关闭所有进程,然后再修改文件),然后重启,在修改core-site.xml文件成ip地址 ...

  2. hadoop之hdfs及其工作原理

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

  3. Hadoop中HDFS工作原理

    转自:http://blog.csdn.net/sdlyjzh/article/details/28876385 Hadoop其实并不是一个产品,而是一些独立模块的组合.主要有分布式文件系统HDFS和 ...

  4. Hadoop之HDFS及NameNode单点故障解决方案

    Hadoop之HDFS 版权声明:本文为yunshuxueyuan原创文章.如需转载请标明出处: http://www.cnblogs.com/sxt-zkys/QQ技术交流群:299142667 H ...

  5. Hadoop 中HDFS、MapReduce体系结构

    在网络环境方面,作为分布式系统,Hadoop基于TCP/IP进行节点间的通信和传输. 在数据传输方面,广泛应用HTTP实现. 在监控.通知方面,Hadoop等分布式大数据软件则广泛使用异步消息队列等机 ...

  6. Hadoop(9)-HDFS的NameNode和SecondaryNameNode详解

    1.NN和2NN工作机制 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低.因此,元数据需要存放在内存中.但如果只存在内存中,一旦 ...

  7. 【Hadoop】HDFS的运行原理

    博文已转移,请借一步说话http://www.weixuehao.com/archives/596 简介 HDFS(Hadoop Distributed File System )Hadoop分布式文 ...

  8. Hadoop中HDFS的管理

    本文讲述怎么在Linux Shell中对HDFS进行操作. 三种命令格式: hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统 hadoop dfs只能适用于HDFS文件系 ...

  9. Hadoop中HDFS 的相关进程以及工作流程图(详细流程图)

随机推荐

  1. mybatis框架-resultMap的自动映射级别-partial 和full的探讨

    现在我们做一个小实验,输出一下上一个案例中没有匹配的属性,注意哦,现在user类中是有内部嵌套的复杂数据类型的 运行结果: 注意到:现在居然连userPassword都打印不出来了,原因就是user类 ...

  2. 把antd的组件源码搬到Ant Design Pro中使用

    把组件源码搬过来后,样式死活不生效,经过1天的努力,有说less-loader的,有说webpack配置,还有说babel配置的,最后,我自己找到了方法 就是在global.less中使用@impor ...

  3. 原题链接在这里:980. Unique Paths III

    原题链接在这里:https://leetcode.com/problems/unique-paths-iii/ 题目: On a 2-dimensional grid, there are 4 typ ...

  4. python paramiko与linux的连接

    两种使用paramiko连接到linux服务器的代码 方式一: 1 ssh = paramiko.SSHClient() 2 ssh.set_missing_host_key_policy(param ...

  5. linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)

    单客户端和服务端的通信(基于UDP)   代码 服务端代码socket3.c #include<sys/types.h> #include<sys/socket.h> #inc ...

  6. web服务本质

    目录 django 框架引入: web框架本质 HTTP协议 多功能web服务 封装,分发处理 django 框架引入: web框架本质 web框架本质: 软件开发架构: c / s ; b/ s - ...

  7. ros ap 的无线中继

    https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless#Repeater Wireless repeater will allow to re ...

  8. 苹果 appstore 上架 ipv6 服务 配置

    前言 好久之前的事了,苹果审核突然要求ipv6,一片哀嚎. 研究了好久找到了基于阿里云经典网络Windows Server的配置方法. https://bbs.aliyun.com/read/2849 ...

  9. JAVA锁的膨胀过程和优化(阿里)

    阿里的人问什么是锁膨胀,答不上来,回来做了总结: 关于锁的膨胀,synchronized的原理参考:深入分析Synchronized原理(阿里面试题) 首先说一下锁的优化策略. 1,自旋锁 自旋锁其实 ...

  10. 【技术博客】nginx服务器的https协议实现

    在本学期软件工程的Alpha和Beta阶段,我们的服务器部署都是使用基础的http协议,http在网络路由间的信息转发都为明文,这对我们网站的账户密码登录来说很不安全,因此在Gamma阶段我们实现了h ...