前言
一、HDFS的设计原理
二、什么是零拷贝
三、什么是DMA
四、HDFS 架构剖析
HDFS 架构整体概述
HDFS 架构图
五、HDFS 集群角色介绍
1.主角色: namenode
2 从角色:datanode
3 主角色辅助角色: secondarynamenode
六、HDFS重要特性--主从架构
七、HDFS重要特性--分块存储机制
八、HDFS重要特性--副本机制
九、HDFS重要特性--namespace
十、HDFS重要特性--元数据管理
十一 、HDFS重要特性--数据块存储
十二 、 HDFS读流程和写流程
一 HDFS 读原理
二 HDFS写原理
十三 、 HDFS小文件处理
十四 、安全模式
前言
这是HDFS是Hadoop 核心重要的组件之一 , 解决大数据计算中的海量存储数据
下面是HDFS原理 架构 以及模块组成
提示:以下是本篇文章正文内容,下面案例可供参考 如有问题欢迎大家纠正,评论或者私信
一、HDFS的设计原理
1.大数据文件 , 文件分块存储
2.流式数据访问,一次写入多次读取
3.不支持动态改变文件内容 , 而是要文件一次写入就不做变换,要是做变化也只能在
文件末添加内容
4.廉价硬件,硬件故障
5.利用DMA 引擎的零拷贝技术进行文件的传输和同步
二、什么是零拷贝
传统情况
零拷贝技术:
三、什么是DMA
DMA 将一个内存区
从一个设备复制到另一个, 当中央处理器初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成
四、HDFS 架构剖析
HDFS 架构整体概述
1 HDFS是Hadoop Distribute File System 的简称,意为:Hadoop分布式文件系统。 Hdfs是hadoop分发文件系统的简称,意为:hadoop分布式文件系统。
2 HDPS是hadop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在
3 HDPS解决的问题就是大数据如何存储,它是横跨在多台计算机上的文件存储系统并且具有高度的容销 Hdps解决的问题就是大数据如何存储,它是横跨在多台计算机上的文件存储系统并且具有高度的容销
HDFS 架构图
1·HDFS集群遵循主从架构(master/slave )。通常包括一个主节点和多个从节点。
2·在内部,文件分块存储,每个块根据复制因子存储在不同的从节点计算机上形成备份。
3·主节点存储和管理文件系统namespace,即有关文件块的信息,例如块位置,权限等﹔从节点存储文件的数据块。
4·主从各司其职,互相配合,共同对外提供分布式文件存储服务。当然内部细节对于用户来说是透明的。
5 SecondaryNameNode是主角色的辅助角色,帮助主角色进行元数据的合并。
五、HDFS 集群角色介绍
1.主角色: namenode
NameNode是Hadoop分布式文件系统的核心,架构中的主角色。
NameNode维护和管理文件系统元数据,包括名称空间目录树结构、文件和块的位置信息、访 问 权限等信息。
●基于此,NameNode成为了访问HDFS的唯一入口。
NameNode内部通过内存和磁盘文件两种方式管理元数据。
·其中磁盘上的元数据文件包括Fsimage内存元数据镜像文件和edits log ( Journal)编辑日志。
在Hadoop2之前,NameNode是单点故障。Hadoop 2中引入的高可用性。Hadoop群集体系结构允许在群集中以热备配
置运行两个或多个NameNode。
2 从角色:datanode
DataNode是Hadoop HDFS中的从角色,负责具体的数据块存储。
DataNode的数量决定了HDFS集群的整体数据存储能力。通过和NameNode配合维护着数据块。
3 主角色辅助角色: secondarynamenode
除了DataNode和NameNode之外,还有另一个守护进程,它称为secondary NameNode。充当NameNode的辅助节点,但不能替代NameNode。
当NameNode启动时,NameNode合并Fsimage和edits log文件以还原当前文件系统名称空间。如果edits log过大不利于加载,Secondary NameNode就辅助NameNode从NameNode下载Fsimage文件和edits log文件进行合并。
六、HDFS重要特性--主从架构
HDFS采用master/slave架构。一般一个HDFS集群是有一个Namenode和一定数目的Datanode组成。
Namenode是HDFS主节点,Datanode是HDFS从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。
七、HDFS重要特性--分块存储机制
HDPS中的文件在物理上是分块存储(block )的,块的大小可以通过配置参数来规定,参数位于hdfs-default.xml中: dfs.blocksize。默认大小是128M ( 134217728 )。
- HDFS中文件在逻辑上是连续的,提供一个文件目录树
- block块大小计算
- 理想寻址时间为10ms
- 理想读取文件时间为寻址时间的10%
- 市面上磁盘的存储速率为100M/s
- 因此block块大小:10ms/10% *100M/s = 100M -> 128M
八、HDFS重要特性--副本机制
1 文件的所有block都会有副本。每个文件的block大小 ( dfs.blocksize )和副本系数( dfs.replication )都是可配置的。副本系数可以在文件创建的时候指定,也可以在之后通过命令改变。
2 默认dfs.replication的值是3,也就是会额外再复制2份,连同本身总共3份副本。
九、HDFS重要特性--namespace
1 HDFS支持传统的层次型文件组织结构。用户可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似∶用户可以创建、删除、移动或重命名文件。
2 Namenpde负责维护文件系统的namespace名称空间,任何对文件系统名称空间或属性的修改都将被Namenode记录下来。
3 HDFS会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如: hdfs://namenode :port/dir-a/dir-b/dir-c/file.data。
十、HDFS重要特性--元数据管理
在HDFS中,Namenode管理的元数据具有两种类型︰
●文件自身属性信息
文件名称、权限,修改时间,文件大小,复制因子,数据块大小。
●文件块位置映射信息
记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上。
十一 、HDFS重要特性--数据块存储
·文件的各个block的具体存储管理由DataNode节点承担。每一个block都可以在多个DataNode上存储。
十二 、 HDFS读流程和写流程
一 HDFS 读原理
1、HDFS客户端提交读操作到NameNode上,NameNode收到客户端提交的请求后,会先判断此客户端在此目录下是否有读权限,如果有,则给客户端返回存放数据块的节点信息,即告诉客户端可以到相关的DataNode节点下去读取数据块;
2、客户端拿到块位置信息后,会去和相关的DataNode直接构建读取通道,读取数据块,当所有数据块都读取完成后关闭通道,并给NameNode返回状态信息,告诉NameNode已经读取完毕。
二 HDFS写原理
1、HDFS客户端提交写操作到NameNode上,NameNode收到客户端提交的请求后,会先判断此客户端在此目录下是否有写权限,如果有,然后进行查看,看哪几个DataNode适合存放,再给客户端返回存放数据块的节点信息,即告诉客户端可以把文件存放到相关的DataNode节点下;
2、客户端拿到数据存放节点位置信息后,会和对应的DataNode节点进行直接交互,进行数据写入,由于数据块具有副本replication,在数据写入时采用的方式是先写第一个副本,写完后再从第一个副本的节点将数据拷贝到其它节点,依次类推,直到所有副本都写完了,才算数据成功写入到HDFS上,副本写入采用的是串行,每个副本写的过程中都会逐级向上反馈写进度,以保证实时知道副本的写入情况;
3、随着所有副本写完后,客户端会收到数据节点反馈回来的一个成功状态,成功结束后,关闭与数据节点交互的通道,并反馈状态给NameNode,告诉NameNode文件已成功写入到对应的DataNode。
十三 、 HDFS小文件处理
(1)会有什么影响
(1)存储层面:
1个文件块,占用namenode多大内存150字节
1亿个小文件*150字节
1个文件块 * 150字节
128G能存储多少文件块? 128 * 1024*1024*1024byte/150字节 = 9亿文件块
(2)计算层面:
每个小文件都会起到一个MapTask,占用了大量计算资源
2)怎么解决
(1)采用har归档方式,将小文件归档。将多个小文件打包成一个后缀为.har文件,这样减少namenode内存使用的同时,仍然允许对文件进行透明的访问。
(2)采用CombineTextInputFormat。可以将多个小文件从逻辑上规划到一个切片中,这样,多个小文件就可以交给一个 maptask。
(3)有小文件场景开启JVM重用;如果没有小文件,不要开启JVM重用,因为会一直占用使用到的task卡槽,直到任务完成才释放。
JVM重用可以使得JVM实例在同一个job中重新使用N次,N的值可以在Hadoop的mapred-site.xml文件中进行配置。通常在10-20之间
mapreduce.job.jvm.numtasks 10 How many tasks to run per jvm,if set to -1 ,there is no limit 十四 、安全模式
1 安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受创建、删除、修改等变更请求。同时会对数据块进行大量校验,导致资源的分配和申请耗时远超预期。
2 在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,当整个系统达到安全标准时,HDFS自动离开安全模式。如果HDFS处于安全模式下,则文件block不能进行任何的副本复制操作,hdfs集群刚启动的时候,默认30S钟的时间是出于安全期的,只有过了30S之后,集群脱离了安全期,然后才可以对集群进行操作
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了HDFS的原理,而HDFS为我们提供了大数据的海量存储 方便我们处理海量数据
猜你喜欢
- 4小时前逻辑回归(Logistic Regression)
- 4小时前计算机视觉丨基于OpenCV的人脸识别打卡系统
- 4小时前vue中PC端使用高德地图 -- 实现搜索定位、地址标记、弹窗显示定位详情
- 4小时前unity 浏览器插件【embedded browser(原zfbrowser)】简单教程,使unity支持web h5页面,附软件下载链接
- 4小时前15.单例模式
- 4小时前部署YUM仓库及NFS共享存储
- 4小时前【计算机毕设选题】基于大数据的股票量化分析与股价预测系统
- 2小时前手机掉厕所怎么办(手机掉蹲厕里了应该怎么处理)
- 1小时前tnf羽绒服(tnf羽绒服充绒量多少克)
- 54分钟前小考成绩怎么查(小考成绩怎么查2024山西)
网友评论
- 搜索
- 最新文章
- 热门文章