分布式存储 HDFS原理

大数据基础知识

一、什么是大数据

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

大数据的技术:

1、分布式存储:

2、分布式计算:

1)分布式批处理:
	当数据积累一定的时间后(假设一个月),进行统一的处理。
2)分布式流处理
分布式流处理是一个实时的处理。即数据生成后立即处理。
例子:  11.11天猫大屏幕     QQ实时在线的分布情况

3、机器学习

凡是预测类的都是机器学习。

分布式存储

简单案例:假如你要存储10PB的一个视频文件,自己一个人的电脑存储不了,需要存储在多个服务器上,每一个服务器就是一个datanode,当你需要获取文件时,逐一访问效率太低,可以找一个中间人来存放文件在哪台服务器的信息,通过信息可以快速的找到文件。这个中间人就是namenode,存储的有关文件的信息就是元数据。为了数据安全,每一个小的视频(存储单元)复制一份存放到不同服务器上,当有服务器停止运行时,可以通过访问备份来寻找到自己想要的数据,这种存储方式叫做分布式存储。

系统学习分布式存储 过程(HDFS原理)

1 如果要上传一个大文件,首先要计算大文件的block数量,block数量=大文件的大小/128M(一般采用128M为一个block块的大小)
2 client会向namenode汇报
1)当前大文件的block数量
2)当前大文件属于谁 权限
3)上传时间
namenode的作用:
掌握全局,管理datanode以及元数据
元数据存储在内存中
接受客户端client的读写服务
收集datanode汇报的block列表的信息
namenode保存metadata信息包括
文件的owner和permissions
文件的大小,时间
(block列表:blockId)
block副本的位置(由datanode上报)
3由于文件太大,超过128M所以得切割出来一个个的block,先切割一个block
4namenode去请求block块的Id号以及地址
5因为namenode能够掌握全局,管理所有的datanode,所以它会将负载不高的datanode的地址返回给client
6client拿到地址后,找到datanode上传数据,
如何上传:
namenode将地址返回后,block会切割成一个个的packet,这些datanode之间会形成一个Pipeline管道,目的是:并行存储,提高效率。
分布式存储 HDFS原理_第1张图片
7datanode拿到地址后,会向namenode回报当前的存储情况。
datanode的作用:
存储block块,向namenode汇报发送心跳,发送心跳是为了让namenode知道自己在正常运行
接受client的读请求,client不仅可以向datanode写数据,也可以读数据,获取到地址后直接读取。
8client继续切割,直到上传完成所有的数据。

问题:

考虑到安全问题,数据做了两个备份(默认两份),所以在第6步上传数据的时候,是向多台服务器传递数据。
多台??:(1)如果是集群(多台服务器组成)外namecode向client返回的三个地址,第一个是负载不高的datanode,第二个地址是在其他机架(有多台服务器)的随机一个服务器上第三个地址是和第二个我地址位于同一个机架的其他服务器上。如果一个机架出现问题,数据也不会丢失。
(2)如果是集群内返回地址,第一个位置是当前的节点,第二个,第三个同上
分布式存储 HDFS原理_第2张图片

namenode工作原理:

基本结构
edits:存储操作信息
分布式存储 HDFS原理_第3张图片
edits保存了namenode的操作信息,当edits文件中的数据达到一定的数量(64M)或者时间超过了规定的时间时,secondnamenode会将edits和fsimage,同时namenode生成新的edits.new去记录操作,在secondnamenode中,会模拟执行edits文件,产生元数据,并将元数据与fsimage合并,合并之后将fsimage推送给namenode,edits.new成为新的edits。这个过程就是元数据的持久化
不是所有的元数据都会持久化,block的位置就不会,因为每次集群启动时,服务器会自己将block的位置传递给namenode.

注意:

1 安全模式:
1)加载fsimage,加载到内存
2)如果edits文件不为空,那么namenode自己来合并
3)检查datanode是否健康
4)如果有datanode不正常,指挥做备份
2处于安全模式的过程中,如果fsiamge已经加载到内存中,可以查看到文件目录,但是无法读取
3HDFS权限控制:防君子,不妨小人
4HDFS集群不允许修改,文件一旦上传成功不能修改block块的大小,禁掉的功能就是为了防止集群泛洪

你可能感兴趣的:(分布式存储 HDFS原理)