大家好,我是脚丫先生 (o^^o)

前面介绍了HDFS的API操作,那么接下来就对HDFS原理之核心设计工作机制进行详细的分析。

好了,我们开始今天的正文。

文章目录

  • 一、HDFS心跳机制
  • 二、HDFS安全模式
  • 三、HDFS副本存放策略
  • 四、HDFS负载均衡

一、HDFS心跳机制

在网络环境中,一定会存在数据丢失和延迟的可能。

如果DataNode节点一上线,就直接向NameNode汇报,下线也汇报。但是,很多时候由于网络环境问题,DataNode下线的时候根本来不及报告。

因此在设计中,就模仿了动物的心跳,每隔一段时间跳动一次。

DataNodeNameNode汇报也采取心跳模式,那么从DataNode一上线开始,就每隔一段时间汇报,如果隔了一段时间NameNode还没有接受到DataNode的汇报信息的话,就可以猜测,它是不是挂了。

NameNode去判断DataNode到底是死了还是活呢?

  • 1 心跳:DataNode每隔一段时间向NameNode发送一个心跳数据包
  • 2 检查:当某个DataNode达到一定时间的时候, NameNode也没有收到心跳数据NameNode就默认它已经挂掉了。但是还不能确认。所以启动检查机制:检查两次, 每次间隔五分钟。

在这里,必须要先说明下

HDFS文件系统里的进程启动顺序:

先启动namenode
再启动所有的datanode
然后启动secondarynamenode

总结 :

  • 1 Hadoop 中包含了两个独立的主从架构(Master / Slave)的集群:HDFS 和 YARN。HDFS的主节点的守护进程是:NameNode,从节点的守护进程是 DataNode。YARN的主节点的守护进程是:ResourceManager,从节点的守护进程是 NodeManager。(以下Master为NameNode,slave为DataNode)
  • 2 Master 启动的时候会启动一个 IPC(Inter-Process Comunication,进程间通信)Server 服务,等待 Slave 的链接。
  • 3 Slave 启动时,会主动链接 Master 的 IPC 服务,并且每隔3秒链接一次 Master,这个间隔时间是可以调整的,参数为 dfs.heartbeat.interval,这个每隔一段时间去连接一次的机制,我们形象的称为心跳。Slave 通过心跳汇报自己的信息给 Master,Master 也通过心跳给Slave下达命令。
  • 4 NameNode 通过心跳得知 DataNode 的状态,ResourceManager 通过心跳得知 NodeManager 的状态。 如果 master 长时间都没有收到 slave 的心跳,就认为该slave挂掉了。

注意: Namenode感知到Datanode掉线死亡的时长计算:

HDFS 默认的超时时间为 10分钟+30秒,也就是 630s。 这里暂且定义超时时间为 timeout 计算公式为:

timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval

默认的 heartbeat.recheck.interval 大小为5分钟,dfs.heartbeat.interval 默认的大小为3秒。

需要注意的是 hdfs-site.xml配置文件中的 heartbeat.recheck.interval 的单位为毫秒,dfs.heartbeat.interval 的单位为秒 所以,举个例子,如果heartbeat.recheck.interval设置为5000(毫秒),dfs.heartbeat.interval设置为3(秒,默认),则总的超时时间为40秒。

<property><name>heartbeat.recheck.interval</name><value>5000</value>
</property>
<property><name>dfs.heartbeat.interval</name><value>3</value>
</property>

二、HDFS安全模式

HDFS的安全模式的进入条件有两种情况:

  • 1 刚启动的时候,还没有接受到所有的datanode的汇报所以不确定哪些文件齐全,哪些文件由数据丢失。等待所有的datanode都汇报了达到一个效果 所有的数据都都还在,HDFS的安全会自动退出。反之,也是自动进入的。
  • 2 当HDFS的数据块丢失达到一定比例时:0.1% 。HDFS也会自动进入安全模式。
  • 3 可以通过手动的方式让HDFS进入安全模式。

在 HDFS 集群正常冷启动时,NameNode 也会在 SafeMode 状态下维持相当长的一段时间,此时你不需要去理会,等待它自动退出安全模式即可

正常启动的时候进入安全的原理:

  • 1、NameNode的内存元数据中,包含文件存储目录的路径、副本数、blockid,及每一个block所在DataNode的信息,而fsimage中,不包含block所在的DataNode信息。

  • 2、当NameNode冷启动时,此时内存中的元数据只能从fsimage中加载而来,从而就没有block所在的DataNode信息,就会导致NameNode认为所有的block都已经丢失从而HDFS会自动进入安全模式

  • 3、伴随着每个DataNode启动后,会定期向NameNode汇报自身所持有的blockid信息,随着DataNode陆续启动,从而陆续汇报block信息,NameNode就会将内存元数据中的block所在DataNode信息补全更新 ,当HDFS集群中的每个文件都找到了所有block的位置,从而自动退出安全模式。

安全模式常用操作命令:

hdfs dfsadmin -safemode leave       //强制NameNode退出安全模式
hdfs dfsadmin -safemode enter       //进入安全模式
hdfs dfsadmin -safemode get         //查看安全模式状态
hdfs dfsadmin -safemode wait        //等待,一直到安全模式结束

注意:

  • 1 安全模式下用户可以进行的操作(不修改元数据的操作):ls查询、cat查看文件内容、get下载
  • 2 安全模式下用户不可以进行的操作(修改了元数据的操作):创建目录、上传、修改文件名、文件追加

三、HDFS副本存放策略

四、HDFS负载均衡

大数据Hadoop(五)HDFS的原理之核心设计(1)相关推荐

  1. 从零开始大数据--Hadoop、HDFS、MapReduce、HBase、Hive

    文章目录 概述 Hadoop HDFS HBase 实现原理 Regin服务器原理 HBase安装与使用 NoSQL数据库 MapReduce Hive 概述 IT领域每隔十五年就会迎来一次重大变革: ...

  2. 大数据Hadoop之HDFS和MapReduce_02_01

    Hadoop 主要由HDFS和MapReduce 引擎两部分组成.最底部是HDFS,它存储hadoop集群中所有存储节点上的文件.HDFS 的上一层是MapReduce 引擎,该引擎由JobTrack ...

  3. java基础巩固-宇宙第一AiYWM:为了维持生计,大数据Hadoop之HDFS分布式文件系统(HDFS读写流程、主从集群两种问题“单点故障”及“压力过大内存受限”、HDFS的架构设计)~整起

    Hadoop之HDFS 目录 一.大数据 二.HADOOP 三.HDFS 1.HDFS基本概念 2.HDFS的架构设计 3.HDFS自己对于上面两种数据持久化技术的实现: 4.HDFS读写流程 5.H ...

  4. (超详细)大数据Hadoop之HDFS组件

    一. HDFS简介 1.1 HDFS的概述 在Hadoop生态圈中,HDFS属于底层基础,负责存储文件. 1.2 HDFS产生背景 HDFS全称为Hadoop Distributed File Sys ...

  5. 大数据Hadoop底层技术和原理

    mapreduce原理: 分而治之,一个大任务分成多个小的子任务(map)并行执行后,合并结果(reduce) 比如说我们有一千副扑克牌,不含大小王,混在一起,但是其中一副少了一张牌,所以总数是 51 ...

  6. 大数据Hadoop之——Kafka Streams原理介绍与简单应用示例

    文章目录 一.Kafka Streams概述 1)Kafka Streams是什么 2)流式计算与批量计算区别 3)Kafka Streams特点 二.Kafka Streams流处理拓扑 1)相关概 ...

  7. 大数据Hadoop之——总结篇

    文章目录 一.前言 二.Hadoop 1)HDFS常见操作 1.HDFS服务启停命令 2.常见文件操作命令 3.安全模式操作命令 4.数据平衡常见操作命令 5.处理小文件常见操作命令 6.HDFS N ...

  8. Python +大数据-hadoop生态-hadoop(三)--Hadoop HDFS

    Python +大数据-hadoop生态-hadoop(三)–Hadoop HDFS 今日课程学习目标 理解分布式文件存储的概念与实现 掌握HDFS分块存储.副本机制等特性 学会shell操作HDFS ...

  9. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 YARN通俗介绍和基本架构 Yarn通俗介绍 Yarn基本 ...

最新文章

  1. 解决sdk manager 下载API失败的问题
  2. 软件测试可分为哪几种
  3. C++知识点7——函数传参
  4. Sklearn(v3)——朴素贝叶斯(3)
  5. 线性时间查找固定频率的元素
  6. 易货Beta版本发布说明
  7. GitLab 小组中的项目访问权限赋予给用户
  8. java接口允许ajax访问_服务允许AJAX请求,允许跨域请求
  9. 收藏 | PyTorch 单机多卡操作总结
  10. [分享]如何开机后直接进入桌面
  11. 计算机初级基础知识教程,计算机基础知识教程 适合初学者的计算机入门知识...
  12. MySQL 源码下载教程
  13. UE for Mac 破解方法
  14. 论文查重颜色分别代表什么含义?
  15. Lookup 组件用法全解
  16. easyui treegrid
  17. 凯捷面试(2):JavaWeb、框架
  18. 计算机毕业设计ssm科技类产品众筹系统9x420系统+程序+源码+lw+远程部署
  19. Python玩耍:一个小小的爬虫,在一堆公司列表里筛选出总部位于中国的公司
  20. 用Python爬取大火的《海王》豆瓣评论

热门文章

  1. 移动推送:灵活、高效、精准的App消息推送
  2. ELK高级搜索四之Mapping映射和分词器
  3. ensp搭建dhcp服务
  4. java练习之输入一个字母,如果是小写,转换成大写并输出,如果是大写就不变化并输出。
  5. 换手机了备忘录怎么恢复?专家为你解答数据恢复问题
  6. win10笔记本合盖无法睡眠(风扇依然在转动)(开盖后不是锁屏状态)
  7. php只取时间的下士_闲来无聊,用python抓取天气信息,简单就是美啊
  8. 计算机操作透明化,win10系统如何设置透明化效|win10电脑透明化功能怎么开启
  9. C语言求字母的全部组合
  10. cscd期刊是c刊吗_核心期刊和C刊有什么区别