加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数据分布式存储原理

发布时间:2022-10-27 15:01:16 所属栏目:大数据 来源:转载
导读: 大数据基础
1.什么是大数据
短时间内快速的产生海量的多种多样的有价值的数据
2.大数据技术
2.1 分布式存储
2.2 分布式计算
① 分布式批处理(无法实现预测)
存一段时间的数据,等到将来某

大数据基础

1.什么是大数据

短时间内快速的产生海量的多种多样的有价值的数据

2.大数据技术

2.1 分布式存储

2.2 分布式计算

① 分布式批处理(无法实现预测)

存一段时间的数据,等到将来某一时刻时再进行处理

② 分布式流处理(实时处理)(无法实现预测)

数据不需要攒,直接处理,每产生一条数据,立马对这条数据进行处理。

2.3 机器学习

可以实现预测

3.分布式存储原理

3.1主要概念:元数据:描述数据的数据

NameNode:管理元数据

datanode:负责存储源数据

block:存储单元 一个存储单元的数据,不能拆分成两部分来存储

备份:解决数据安全

3.2上传文件步骤:①如果要上传一个大文件,计算大文件的block数量,大文件大小/128M=block数

②客户端向namenode汇报 当前大文件的block数

当前大文件属主 (权限)

上传时间

for(Block block:blocks(大文件计算出来的block)){

③客户端切割出来的一个block

④客户端向namenode请求block块的id号以及地址

⑤因为namenode能够掌握全局,管理所有的DataNode,所以他会将负载不高的DataNode地址返回给客户端

⑥客户端拿到地址后,找到DataNode去上传数据

写数据的详细流程:在DataNode之间建立一个管道

将一个block切割成一个个packet(64k),然后源源不断的往管道中输送

这样做的目的是并行存储

⑦DataNode将block存储完毕后,会向namenode汇报当前的存储情况

}

3.3namenode的作用:掌控全局,管理DataNode以及元数据

元数据存储在内存中(因为内存不稳定,需要将元数据持久化到磁盘上)

元数据包括:文件owership,permissions

文件大小

上传时间

block列表:blockId

block以及副本的位置(由DataNode汇报)

接受客户端的读写服务

接受客户端的读请求,返回地址

3.4DataNode的作用:存储block块,向namenode汇报并发送心跳

接受客户端的读请求

3.5备份机制 (默认有两个备份)

机架:用来放值服务器的,一般一个机架有10台服务器

①第一个block存储在负载不是很高的一台服务器上(集群外提交)

第一个block存储在当前的节点(集群内提交)

②第一个备份的block存储在与第一个block不同的机架的随机一台服务器上

③第二个备份的block存储在与第一个备份相同的机架不同的服务器上

3.6读数据的详细流程

当客户端获得了DataNode的地址时,直接去DataNode读取数据,DataNode之间不会建立管道

3.7持久化的详细流程

因为持久化的过程比较复杂,所以把这个过程交给namenode的代理secondary namenode来执行

角色在集群中都是用进程来表现的

合并触发机制:时间超过3600或者edits文件的大小超过64M

edits文件存放的是:会改变元数据的操作

fsimage文件存放的是:元数据

当集群启动时,namenode会创建两个文件edits和fsimage,当满足合并触发机制时,secondary namenode 会将这两个文件

拉过来,然后对edits文件中的操作进行重演,将生成的元数据与fsimage文件中的合并,生成一个新的文件fsimage.ckpt

返回给namenode。在secondary namenode将两个文件拉过去时,为了防止在合并的过程中大数据存储技术,由于又有新的操作改变元数据,

导致元数据丢失,会创建一个新的文件edits.new来存放新的操作

并不是所有的元数据都会持久化。除了block的位置信息,其他的元数据都会持久化。原因:block位置信息经常改变

但这样的话,当HDFS集群重启时,namenode中的元数据就会有所丢失,导致集群无法对外提供服务。解决办法:HDFS集群

启动之时,所有的DataNode都会向namenode汇报当前节点的block信息

4.权限:依据Linux系统的用户系统 是用来防止好人做坏事(防君子,不防小人),你告诉他你是谁,他就会认为你是谁

5.安全模式:①加载fsimage,加载到内存中

②如果edits文件不为空,那么namenode自己来合并

③检查DataNode的健康情况

④如果有DataNode挂掉了。指挥做备份

处于安全模式的过程中,能不能读文件内容?

如果fsimage已经加载到内存中,可以查看到文件目录,但是无法读取

6.HDFS集群不允许修改、文件一旦上传成功不能修改block块的大小。因为一旦修改,那么这个block块以后的block都会修改,这样

就造成了集群泛洪。

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!