大数据入门-五分钟读懂hdfs

水坚石青 水坚石青     2022-12-19     760

关键词:

目录

大数据入门系列文章

一、概念

二、架构及组件概念

三、读写流程

四、大白话

五、其他

大数据入门系列文章


最近在收集整理大数据入门文章,各位盆友关注点赞不迷路,每天都要开心鸭!

大数据入门系列文章

1.大数据入门-大数据是什么

2.大数据入门-大数据技术概述(一)

3.大数据入门-大数据技术概述(二)

4.大数据入门-三分钟读懂Hadoop

一、概念

HDFS英文全称为:Hadoop Distributed File System,是指被设计成适合运行在通用硬件的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。

这里再强调一下几个特点,注意看黑板。

超大文件:可以存放TB到PB级别的数据量

流式访问:一次写入,多次读取。更加关注所有数据集的查询时间。

商用硬件:机器都是普通的机器,可以组合起来一起使用,三个臭皮匠顶个诸葛亮。但是单节点故障会较多,所以要有一种机制和方法来迅速恢复业务。

不适合低延时数据:针对的问题和解决方案是高吞吐,所以不适合低延时数据,当然后面会有专门的低延时架构。所以问题出来了总有方案。不要慌。

不支持任意修改: 系统以读数据为主,支持在文末追加数据,不支持任意修改。

二、架构及组件概念

数据块:默认一个块(block)的大小为128MB(HDFS的块这么大主要是为了最小化寻址开销),要在HDFS中存储的文件可以划分为多个分块,每个分块可以成为一个独立的存储单元。与本地磁盘不同的是,HDFS中小于一个块大小的文件并不会占据整个HDFS数据块。

NameNode:管理整个文件系统的元数据。例如管理元数据,维护维护目录结构、响应客户端请求。

详解说明:NameNode作为管理节点,它负责整个文件系统的命名空间,并且维护着文件系统树和整棵树内所有的文件和目录,这些信息以两个文件的形式(命名空间镜像文件和编辑日志文件)永久存储在NameNode的本地磁盘上。除此之外,同时,NameNode也记录每个文件中各个块所在的数据节点信息,但是不永久存储块的位置信息,因为块的信息可以在系统启动时重新构建。

DataNode:复制管理用户的文件数据块。例如管理用户提交的数据 心跳机制 块报告。

NameNode容错性:NameNode作为管理节点,它的地位是非同寻常的,一旦NameNode宕机,那么所有文件都会丢失,因为NameNode是唯一存储了元数据、文件与数据块之间对应关系的节点,所有文件信息都保存在这里,NameNode毁坏后无法重建文件。

第一种机制是备份那些组成文件系统元数据持久状态的文件,比如:将文件系统的信息写入本地磁盘的同时,也写入一个远程挂载的网络文件系统(NFS),这些写操作实时同步并且保证原子性。
第二种机制是运行一个辅助NameNode,用以保存命名空间镜像的副本,在NameNode发生故障时启用。(也可以使用热备份NameNode代替辅助NameNode)。

心跳机制:维护集群的可用性

NameNode启动的时候,会有一个加载元数据(数据的数据,类似于表的索引)和块报告(DataNode会定时(可以再配置文件中设置,所以一定要时间同步)对块信息进行统计)的过程,NameNode通过心跳机制维护整个集群的可用性。如果块报告上传失败,NameNode不会更新元数据,在块报告的时候就会将其删除掉。


块缓存:数据通常情况下都保存在磁盘,但是对于访问频繁的文件,其对应的数据块可能被显式的缓存到DataNode的内存中,以堆外缓存的方式存在,一些计算任务(比如MapReduce)可以在缓存了数据的DataNode上运行,利用块的缓存优势提高读操作的性能。

高可用性:通过备份NameNode存储的文件信息或者运行辅助NameNode可以防止数据丢失,但是依旧没有保证了系统的高可用性。一旦NameNode发生了单点失效,那么必须能够快速的启动一个拥有文件系统信息副本的新NameNode。

这个就是主NameNode与备份的NameNode之间的交互了。

存放策略:默认的HDFS block放置策略在最小化写开销和最大化数据可靠性、可用性以及总体读取带宽之间进行了一些折中。一般情况下复制因子为3,HDFS的副本放置策略是将第一个副本放在本地节点,将第二个副本放到本地机架上的另外一个节点而将第三个副本放到不同机架上的节点。这种方式减少了机架间的写流量,从而提高了写的性能。机架故障的几率远小于节点故障。这种方式并不影响数据可靠性和可用性的限制,并且它确实减少了读操作的网络聚合带宽,因为文件块仅存在两个不同的机架, 而不是三个。文件的副本不是均匀地分布在机架当中,1/3在同一个节点上,1/3副本在同一个机架上,另外1/3均匀地分布在其他机架上。这种方式提高了写的性能,并且不影响数据的可靠性和读性能。

三、读写流程

写数据流程

读数据流程

四、大白话

这个东西就是为了解决数据量大而出来的,其思想是利用多个机器联合的力量来构造一个庞大的集群,让作业在各个机器上面运行,然后汇总到一个地方。当然每个机器是比较菜鸡的,但是菜鸡多了,每个人贡献一点,整个组织的力量就大了。这个和我们现在组织一样,有个领导者,就是NameNode,来管理我们的职员DataNode,你今天做了什么工作,写个日报给我,每天用心跳机制提醒一个,你应该写日报了。然后他能知道每个职员的情况。当然这里不能严格的类比,因为每个职员都不一样,但是DataNode是一样的。复制策略就是说,你走了我再招人培养,当然一般的老板不会这样做,花费人力成本太高了,但是当市场上这样的人多了之后,其实你就可以随时被替换了,所以好好学习,天天向上吧,毕竟还有吃饭。我们只有把自己的独特性弄出来之后,你就成为唯一的,且不能被辞掉的那个人了。

五、其他

下一篇:介绍数据仓库Hive。

鸡汤:今日事,今日毕。

备注:以上资料来自网络,侵删。

参考资料

https://blog.csdn.net/qq_43755771/article/details/90725393

https://www.cnblogs.com/gzshan/p/10981007.html

来来来,看这里,如果你觉得这篇文章对您有帮助,请关注点赞加收藏,想要了解更多请关注公众号联系博主,祝您生活愉快,身心健康!

大数据入门系列文章

1.大数据入门-大数据是什么

2.大数据入门-大数据技术概述(一)

3.大数据入门-大数据技术概述(二)

4.大数据入门-三分钟读懂Hadoop

大数据入门-三分钟读懂hadoop

最近在收集整理大数据入门文章,各位盆友关注点赞不迷路,每天都要开心鸭!大数据入门系列文章1.大数据入门-大数据是什么1.大数据入门-大数据是什么2.大数据入门-大数据技术概述(一)2.大数据入门-大数据技术概... 查看详情

stm32f103五分钟入门系列外部中断大汇总(代码片段)

学习板:STM32F103ZET6强推系列:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分... 查看详情

2分钟读懂hadoop和spark的异同

谈到大数据框架,现在最火的就是Hadoop和Spark,但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,倒底现在业界都在使用哪种技术?二者间究竟有哪些异同?它们各自解决了哪些问题?下面不妨跟我一... 查看详情

stm32f103五分钟入门系列(十六)输入捕获(精雕细琢-.-)

学习板:STM32F103ZET6往期博客:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法... 查看详情

大数据零基础学习hadoop入门教程

1、Hadoop生态概况Hadoop是一个由Apache基金会所开发的分布式系统集成架构,用户可以在不了解分布式底层细节情况下,开发分布式程序,充分利用集群的威力来进行高速运算与存储,具有可靠、高效、可伸缩的特点Hadoop的核心是YA... 查看详情

stm32f103(二十五)完美解决usart发送接收floatu16u32数据

学习板:STM32F103ZET6往期博客:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法... 查看详情

sql优化及原理详解,五分钟读懂sql优化

...?它相当于字典的目录。索引:index是帮助mysql高效获取数据的数据结构,索引是数据结构(树,默认是B树),hash等。索引的弊端:事物都是两面的,有利必然有弊。索引的优势:索引有这么多弊端我们还使用的原因是因为优大... 查看详情

精通《iic通信》

学习板:STM32F103ZET6往期博客:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法... 查看详情

stm32f103五分钟入门系列(十五)输入捕获(精雕细琢-.-)(代码片段)

学习板:STM32F103ZET6参考:STM32F103五分钟入门系列(十二)定时器中断STM32F103五分钟入门系列(十五)输出比较(PWM输出)+各类测试STM32F103五分钟入门系列(五)按键实验(库函数+... 查看详情

五分钟快速入门

本教程使用XML。注意,这个库不是专门绑定到XML的,而是可以使用任何其他支持的格式(如INI或JSON)。之所以选择XML,是因为作者认为很多人都熟悉XML。假设我们正在为某个应用程序编写一个日志系统,并且需要在程序启动时从文... 查看详情

顾嘉:5分钟带你读懂《在线》逻辑

互联网成了基础设施,是创新平台;数据成了生产资料,是自然资源;计算成了公共服务,是能源动力。——王坚:《在线》  在我的记忆里,云计算、物联网、大数据是近年来被媒体和产业界炒得最热的几个概念了。... 查看详情

五分钟拿捏python字典-python3入门必备[字典详细操作]

...且可存储任意类型对象。他也是Python项目开发中最常用的数据类型之一,他的格式有点像json,但又不是json,不过在实际的开发中字典和json的相互转换是日常操作,比如我们平时调用第三接口,接口一般返回 查看详情

头歌educoder云计算与大数据——实验五javaapi分布式存储(代码片段)

实验五JavaAPI分布式存储第1关:利用shell把电商数据上传到HDFS任务描述相关知识HDFSshell常见命令编程要求测试说明代码实现第2关:利用JavaAPI把电商数据上传到HDFS任务描述相关知识常用HDFSJava接口的使用编程要求测试说明... 查看详情

stm32f103五分钟入门系列nvic中断优先级管理(代码片段)

学习板:STM32F103ZET6强推系列:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分... 查看详情

大数据入门-大数据技术概述

目录大数据入门系列文章1.大数据入门-大数据是什么一、概念二、技术详解1.基础架构:Hadoop2.分布式文件系统:HDFS3.数据仓库:Hive4.存储引擎:Kudu5.分布式数据库:HBase6.实时框架:Flink三、其他大数据入... 查看详情

五分钟带你读懂uml类图

参考技术A目录先看下面这张类图,包括了UML类图的基本图示法 1、类的表示 2、接口的表示3、继承关系4、实现接口5、关联关系6、聚合关系7、合成(组合)关系8、依赖关系先看下面这张类图,包括了UML类图的基本图示法... 查看详情

004::每天五分钟入门tcp/ip协议栈::ip协议之16位总长度字段引出的mtu值问题

...U以及实际生产环境中的MTU问题,就得搞清楚三个问题:IP数据报包含什么内容;数据进入协议栈的封装过程;MTU具体代表含义;首先要理解一个过程:数据进入协议栈的封装过程!数据从发送主机发送出去之前,在主机的协议栈... 查看详情

stm32f103五分钟入门系列定时器中断(代码片段)

...中断(+数码管—24小时制钟表)STM32F103五分钟入门系列(八)SysTick滴答定时器+SysTick中断实现跑马灯STM32F103五分钟入门系列(十)NVIC中断优先级管 查看详情