HDFS四个核心的设计包括:心跳机制,安全模式,副本存放策略,负载均衡。

心跳机制:
Hadoop是Master/Slave结构的,Master和Slave之间就是通过心跳机制进行通信的。
具体流程:Master启动时会启动一个IPC Server等待Slave的连接。当Slave启动的时候,会自动连接IPC Server,并且以3秒(默认)为间隔向Master通讯一次。
DataNode(即Slave)会通过心跳机制将自己的状态信息传递给NameNode(即Master)。反过来,NameNode能够通过心跳机制向DataNode发送命令和检测其生存状态。
当DataNode超过timeout(10分钟30秒(默认))没有向NameNode通讯,则认为该DataNode已经挂掉。(DataNode挂掉,不一定是DataNode所在的节点宕机,网络通讯失败也会导致DataNode的通讯请求失败。)
关于心跳机制重要的配置参数(hdfs-site.xml中):
dfs.heartbeat.interval:心跳间隔,默认为3秒(单位:秒)
timeout = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval
在这里,timeout就是超时时长。dfs.namenode.heartbeat.recheck-interval 默认为5分钟,但需要注意的是,在hdfs-site.xml配置文件中,该参数的单位为毫秒。

安全模式:
安全模式是NameNode的一种状态。
NameNode的三种状态包括:active,standby,safemode;
NameNode进入安全模式的原因:block块的丢失率达到0.1%(默认),为了防止数据的进一步丢失以及防止大批量宕机的情况,NameNode会自动进入安全模式。另外,在HDFS集群正常冷启动的时候,NameNode也会在安全模式下维持相当长的一段时间,这种情况不用担心,因为,在正常运行的HDFS集群中,NameNode的内存中的元数据包括文件路径,副本数,block块的ID,以及每一个block块所在DataNode的信息。但是,在HDFS集群冷启动的时候,此时NameNode内存中的元数据只能从fsimage文件中加载过来,然而,fsimage文件中并没有每一个block块所在DataNode的信息,就会导致,NameNode认为所有的block块都已经丢失,所以会自动进入安全模式。在DataNode启动之后,会通过心跳机制向NameNode汇报自身所持有的block块的信息,在HDFS集群正常启动完成之后,所有DataNode向NameNode汇报完毕之后,NameNode就会自动退出安全模式。
关于安全模式的重要参数:
dfs.namnode.safemode.threshold-pct = 0.999f :最小副本数要求的block占比超过99.9%
安全模式常用的操作命令:
hdfs dfsadmin -safemode leave:强制Namenode退出安全模式
hdfs dfsadmin -safemode enter:使Namenode进入安全模式
hdfs dfsadmin -safemode get:查看安全模式的状态
hdfs dfsadmin -safemode wait:一直等待到安全模式结束

副本存放策略:
为了保证集群的可靠性,将每一个文件的数据进行分块存储,每一个block块都需要保存3个副本(加上本身一共3个副本(默认)),这些数据块副本分布存储在不同的节点上。又为了保证集群的高性能,就要用到副本存放策略来决定每一个副本存在哪一个节点上。
作用:数据分块存储和副本的存放,是保证集群的可靠性和高性能的关键。
有两个前提:安全性(block块不能丢失,保证至少有一个副本存在。),高性能(考虑带宽问题,不能让寻址时间过长,尽量不浪费带宽。)
副本存放策略遵循:
1. 第一个副本尽量放置在客户端所在的节点上;
2. 第二个副本存放在不同的机架上;
3. 第三个副本和第一个副本尽量在同一个机架上;
关于副本存放策略重要的参数:
dfs.replication(hdfs-site.xml配置文件中):副本个数(默认为3)
副本存放常用的命令:
hdfs dfs -setrep num file:设置某个文件的副本数(num为副本数,file为文件全限定名称)

负载均衡:
在HDFS集群中每个DataNode节点磁盘占用率相对平衡。在HDFS集群中,一个节点宕机或者添加一个新的节点,会导致该HDFS集群负载不均衡。
此时,我们可以手动进行负载均衡:
start-baancer.sh -t 10%($HADOOP_HOME/sbin目录下):开始进行负载均衡(-t 10%:最高和最低的磁盘占用率不能超过10%)
HDFS集群默认是不允许balance操作占用太大的网络带宽,默认该操作的速度为1M/s。如果你嫌太慢,可以手动调整:
命令:hdfs dfsadmin -setBalanacerBandwidth 10485760(单位为字节,即10M/s)
参数:dfs.balance.bandwidthPerSe(在hdfs-site.xml配置文件中)

HDFS中四个核心的设计相关推荐

  1. 用户画像系列——数据中台之OneID (ID-Mapping)核心架构设计

    一.引言 大家在上网的过程中是不是经常有这样的体验,我在百度(或者京东.淘宝)上搜索一件商品(比如说:我搜索了一台iphone 手机看了看,但是没买),奇怪的是过两天,我竟然在某视频平台或者某网页上又 ...

  2. Hadoop精华问答 | Hadoop框架中最核心的设计是什么?

    Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的角色,今天,就让我们看看关于Storm的精华问答吧. 1 Q:hadoop发展史 A: ...

  3. 学习《小学数学课堂教学中“核心问题”设计的策略探究》心得体会

    学习<小学数学课堂教学中"核心问题"设计的策略探究>心得体会 延安市新区第一小学  张婷婷 提问在教学过程中教师最常用的教学手段之一.优秀的数学教师都善于把握问题的力量 ...

  4. 浅谈java中的四个核心概念【转】

    2019独角兽企业重金招聘Python工程师标准>>> Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少.现 ...

  5. HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据、分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引

    1. Hbase高级应用 1.1建表高级属性 下面几个shell 命令在hbase操作中可以起到很到的作用,且主要体现在建表的过程中,看下面几个create 属性 1. BLOOMFILTER 默认是 ...

  6. C语言循环四要素是那些,基于信息化的c语言中循环语句的教学设计探讨

    李芙蓉 摘要:C语言是程序初学者的很好的入门语言,它功能强大,使用灵活.而循环结构是C语言中最复杂.最重要的结构.现在随着网络和手机的广泛使用,信息化越来越多的应用于教学,怎样将信息化融入教学设计中, ...

  7. 探秘HDFS —— 发展历史、核心概念、架构、工作机制 (上)| 博文精选

    戳蓝字"CSDN云计算"关注我们哦! 作者 |  Mr-Bruce 转自 | CSDN博客 责编 | 阿秃 几周前,笔者做了一个与HDFS有关的技术分享,以知识普及为目的,主要分享 ...

  8. 以核心体验设计为引,深入剖析“打铁”游戏《只狼》的精妙之处

    丨从策划角度还原<只狼> 前言 在大多数单人游戏设计中,设计的起点往往是一个念头,设计者想要传达给玩家一种感受或是一种体验,以此为出发点最后设计出一整个游戏.为了传达这种体验,设计者为此设 ...

  9. Hadoop精华问答:Hadoop框架最核心的设计是?

    2006年项目成立的一开始,"Hadoop"这个单词只代表了两个组件--HDFS和MapReduce.到现在的13个年头,这个单词代表的是"核心",今天我们就来 ...

最新文章

  1. java 线程池学习小记
  2. ASP.NET MVC的View是如何呈现出来的[实例篇]
  3. 利用Angular2的Observables实现交互控制
  4. jq-实战之表格筛选
  5. Oracle数据库exp和imp方式导数据
  6. Flutter SDK升级
  7. mariadb mysql同步_MySQL/MariaDB主主数据同步配置
  8. 蓝桥杯Java组常用算法与技巧
  9. 基于java的奖学金_基于Java的奖学金评定系统设计与实现毕业设计论文.doc
  10. 4 计算机设备的折旧年限不低于,汇算清缴十大注意事项四:如何正确适用固定资产加速折旧政策...
  11. java实现分页打印功能_分页功能的java实现
  12. HTML5七夕情人节表白网页(抖音-流动爱心表白)HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 爱心表白网页
  13. Java clk啥意思_clock (CLK)是什么意思
  14. 定期定量采购_定量、定期订货法的比较
  15. F1巴林揭幕阿隆索拔头筹 雷克南一次进站成就季军
  16. python基础_面向对象进阶
  17. Professor Excel Tools Premium(excel插件工具箱)官方正式版V3.1 | Excel教授是excel最牛插件之一
  18. 数据可视化大屏设计-金螳螂项目管理指挥中心-大数据项目
  19. 论文研究记录----数据整理
  20. redis:01入门指南以及在springboot中使用redis

热门文章

  1. Android 钉钉第三方登录问题
  2. 微信windows版_微信悄悄更新,这个烦人的功能限制,终于被取消
  3. OpenHarmony成长计划学生挑战赛7天打卡活动介绍
  4. 计算机刻录机无法显示,电脑不识别刻录机是为什么
  5. 如何使用蒙特卡洛(Mento Carlo)方法计算PI(Π)值?(C语言实现)
  6. TCPIP卷一(2):二层封装之–PPP与FR
  7. 面试题6:从尾到头打印链表
  8. 电影解说都是怎么配音的?电影解说配音实战教程
  9. Python爬取微信公众号文章、点赞数
  10. 微信公众号开发(五)个性化菜单