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

【大数据之Hadoop】三、HDFS概述及组成框架

解决海量数据的存储问题,是分布式的文件存储系统,通过目录树来定位文件,适合一次写入多次读出的场景。

优点:
(1)高容错性: 数据自动保存多个副本,,某副本丢失后可以自动恢复。
(2)适合处理大数据,包括数据规模和文件数量。

缺点:
(1)不适合 低延时的数据访问。
(2)无法高效对大量小文件进行存储:因为存储大量小文件时,会消耗很多存储空间用于NameNode节点来存储文件目录和文件块信息;并且小文件的寻址时间会超过读取时间。
(3)不支持并发写入、文件随机修改:一个文件只能有一个写,不允许多个线程同时写;只支持数据追加,不支持修改。

组成架构

在这里插入图片描述
(1)NameNode(nn):相当于主管,下达命令。
管理HDFS的名称空间,即所有文件的元数据;
设置副本的策略;管理数据块的映射信息;
处理客户端的读写请求。

(2)DataNode:执行实际操作。
存储实际的数据,执行数据块的读写操作。

(3)Secondary NameNode(2nn):非NameNode的热设备,当NameNode挂掉是不能马上替换NameNode并提供服务。
辅助NameNode工作,定期合并镜像文件和工作日志并发送给NameNode;
可以恢复一部分NameNode。

(4)Client:负责文件切分,然后上传;
与NameNode交互,获取文件的位置;
与DataNode交互,读写数据;
提供命令管理HDFS(NameNode的格式化),和访问HDFS(对HDFS进行增删改查操作)。

文件块大小问题(重点)

HDFS中的文件在物理上是分块存储(Block),块的大小有配置参数规定,默认128M。
若传输时间为10ms则找到目标块的时间为10ms,最佳状态下:寻址时间=传输时间x1%。

文件块不能设置太大也不能设置太小:
若HDFS的块设置太小,则会增加寻址时间;若HDFS的块设置太大,则磁盘传输数据的时间会明显大于定位块开始的位置所需要的时间,不利于并发运算。

文件块大小与硬盘从读写速度有关,一般默认128M或256M

相关文章:

  • MapReduce数据倾斜产生的原因及其解决方案
  • docker开启的Mysql修改时区
  • 完成首选项
  • 【C语言进阶】自定义类型之结构体,枚举和联合
  • springboot校友社交系统
  • 【Python算法】简单深搜练习
  • ASO优化之应用商店中的A/B测试——改良版
  • Github隐藏功能显示自己的README,个人化你的Github主页
  • 什么是 SSL 证书管理
  • java中如何实现全文搜索
  • Eigen中的SparseMatrix(稀疏矩阵)元素的快速插入
  • 第十四届蓝桥杯三月真题刷题训练——第 21 天
  • JavaScript到底如何存储数据?
  • 结构体详解
  • 【数据结构与算法】设计循环队列
  • go语言gin框架学习
  • 一个超简单的渐变平行四边形进度条
  • 安装好unity后给unity配置及插件和资源相关的事情
  • docker版jxTMS使用指南:勾连python
  • 值得记忆的STL常用算法,分分钟摆脱容器调用的困境,以vector为例,其余容器写法类似
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉