当前位置: 首页 > article >正文

【Hadoop之hdfs】hdfs一些简单明了的总结(一篇足以,字少但都是精华)

文章目录

  • 一、hdfs的优缺点
  • 二、hdfs的体系结构
    • 1、NameNode
    • 2、SecondaryNameNode
    • 3、DataNode
  • 三、fsimage和edits文件
    • 1、fsimage文件
    • 2、edits文件
  • 四、SecondaryNamenode的工作机制(小秘的工作日常)
  • 五、hdfs集群的启动原理
    • 六、HDFS的安全模式
  • 七、HDFS的读写流程
    • 1、写入流程
    • 2、读取流程
  • 八、NameNode 和 DataNode 之间的心跳机制


一、hdfs的优缺点

缺点:

  1. 对于低延迟(立即响应)的场景是不适合的。
  2. 不适合存储小文件(HDFS文件系统中,默认需要将存储的数据进行切割存储的,每一个块是128M,不管一个块中存放的是大文件还是小文件,都有元数据,这个元数据大约占用内存150字节,如果存放过多的小文件,会占用过多的块,从而消耗过多内存。)
  3. 不适合修改(文件上传之后无法修改)

优点:

  1. 适合大数据量的存储
  2. 一份变3份,很好的容错性。

二、hdfs的体系结构

1、NameNode

有且仅有一个(HA【高可用】除外),负责我们整个hdfs集群的管理工作。
管理其他的DataNode节点,并且记录各个块的信息。可以处理客户端的各种请求。
NameNode所记录的数据,其实是在内存中存放的。机器宕机了,内存数据消失。为了防止数据丢失,namenode 有两个帮手:fsimage 以及 edits 两种文件。

2、SecondaryNameNode

不是第二个nameNode ,其实是小秘。有且仅有一个。
可以帮助namenode 完成 fsimage 和 edits 的合并工作。

3、DataNode

数据节点,真正存储数据的地方,可以有1个,也可以有多个。
不定时的向namenode 发送心跳数据,每隔3秒发送一次。

三、fsimage和edits文件

1、fsimage文件

每隔一个小时,会将namenode中的内存数据备份一下,只保留最近的两次fsimage文件,其他的会删除掉,重启或修复namenode后,会自动加载fsimage数据到内存中

2、edits文件

fsimage每隔一小时备份一次,这期间的操作(上传、删除等)会记录到edits中
edits文件也是一个小时生成一次,edits文件超过64M也会重新生成一个

edits⽂件可以强制让其滚动,结束当前的edits⽂件,产⽣⼀个的edits⽂件 hdfs dfadmin -rollEdits

四、SecondaryNamenode的工作机制(小秘的工作日常)

[图片]

五、hdfs集群的启动原理

  1. 首先整个集群先进入安全模式:此时的安全模式,是只读模式,不允许上传,删除,重命名等,只有达到了一定的条件,才会离开安全模式:
  2. namenode执行尚未合并的edits文件,执行里面的每一次操作,达到跟关机之前一样的效果。
  3. 重新创建一个新的edits文件,用于继续记录操作

六、HDFS的安全模式

解除安全模式需要满足两个条件:

  • 1、每个数据块的副本数量达到了设定的阈值
  • 2、并且加载出来的副本总数和所有数据块的所有副本数之比需要大于99.99%

也可以手动解除安全模式
1、查看是否处于安全模式:

hdfs dfsadmin -safemode get  (ON 说明是安全模式,OFF 说明不是安全模式 )

2、通过命令⼿动进⼊或者离开

hdfs dfsadmin -safemode enter(进入)
hdfs dfsadmin -safemode leave(离开)

七、HDFS的读写流程

1、写入流程

[图片]

2、读取流程

[图片]

八、NameNode 和 DataNode 之间的心跳机制

namenode与datanode建立连接后,datanode每隔3秒会将自己的信息发送给namenode,类似于心跳。如果datanode超过10分30秒没向namenode发送信息,就可以断定这个datanode死亡。namenode则会将丢失的数据在其他节点上重新生成


http://www.kler.cn/a/371917.html

相关文章:

  • DreamClear:中科院与字节联合推出!隐私安全优先的高性能图像修复技术
  • 上市公司数字经济与实体经济融合发展程度测算数据(2008-2022年)-最新出炉_附下载链接
  • 功能测试:方法、流程与工具介绍
  • 将多个commit合并成一个commit并提交
  • TIFS-2024 FIRe2:细粒度表示和重组在换衣行人重识别中的应用
  • 网络编程_day6
  • pytest 单元框架里,前置条件
  • MySQL数据集成至金蝶云星空的解决方案
  • 【Fastjson反序列化漏洞:深入了解与防范】
  • 类加载机制123
  • HTML入门教程9:HTML引用
  • java 大集合切分成一个集合中有多个小集合
  • Java程序设计基础 第十七章:反射和设计模式
  • 大话PM | 从项目管理软件看项目管理的三个原则两个思维两个工具
  • 深入 Prometheus 监控生态 - 第五篇:利用 API 信息进行监控(NAS 备份任务监控 + 解决思路)
  • 【约束优化】一次搞定拉格朗日,对偶问题,弱对偶定理,Slater条件和KKT条件
  • 画思维导图的app有哪些?5个软件让你轻松画思维导图不求人
  • PostgreSQL 不同模式之间的数据迁移
  • Python小游戏18——中国象棋
  • 安卓13 连接usb设备后不更新ui
  • Android 应用权限管理详解
  • 【Linux】线程锁同步互斥生产消费模型
  • Windows: 如何实现CLIPTokenizer.from_pretrained`本地加载`stable-diffusion-2-1-base`
  • 网络爬虫的基本原理是什么?
  • 初始Docker
  • NVR设备ONVIF接入平台EasyCVR视频分析设备平台视频质量诊断技术与能力