1.什么是大数据?
短时间内快速产生海量的多种多样的有价值的数据。
2.大数据中的技术
①分布式存储
②分布式计算
- 分布式批处理
攒一段时间的数据,然后在未来某个时间处理这批数据。 - 分布式流处理
不需要攒数据,直接处理,每产生一条数据,立刻对这条数据进行处理。
3.分布式存储的数据类型
- 非结构化的数据
主要是数据之间的关联系不大,想文本图片之类的数据。 - 结构化的数据
数据之间关联系很大,例关系型数据库这种,可以用表进行表示的。 - 半结构化的数据
介于上述两种数据类型之间,数据之间的关系简单,典型的代码是HTML文件。
4.分布式存储
-
HDFS构成
NameNode:管理元数据(解决如何存、往哪存、如何取、去哪取的问题) -
作用:掌控全局,管理DataNode以及元数据,元数据存在内存中,接受客户端的读写服务,手机DataNode汇报的Block列表信息(NameNode保存的metadata信息包括文件权限、大小、时间、BlockId、Block副本位置)
DataNode:负责存储元数据
-
作用: 存储block块,向NameNode汇报,接受client的读要求
Block:存储单元(128M)
Client:文件切分 -
(1)与NameNode交互,获取文件位置信息; (2)与DataNode交互,读取或者写入数据; (3)管理/访问HDFS
-
存储原理
假设有10pb的文件需要上传,分七个步骤
★过程:当client需要存一个资源时,询问NameNode,后者返回一组地址等信息给client,client根据地址等信息向DataNode取存储;当client需要取其中的某个资源时,询问NameNode,后者告诉它文件中在哪里,client直接去取资源。 -
(1)首先client要计算大文件的block数量(大文件地址/128M=block数量) (2)client回向NameNode汇报一下三项 ①当前大文件的block数 ②当前大文件属于谁权限 ③上传的时间 (3) client切割出来一个block (4)请求block块的id以及地址 (5)因为NameNode能够掌控全局,管理所有的DataNode,所以他将会把负载不高的DataNode地址返回给client (6)client拿到地址后,找到DataNode去上传数据
-
HDFS备份机制
(1)第一个block存储在负载不是很高的一台服务器上。
(2)第一个设备的block存储在与第一个block不同的机架随机一台服务器上。
(3)第二个备份在与第一个备份相同的机架随机一台服务器上。 -
HDFS优点
①高容错性:数据自动保存多个副本,副本丢失后,自动恢复
②适合批处理:移动计算而非数据,数据位置暴露给计算框架
③适合大数据处理:GB、TB、甚至PB级数据,百万规模以上的文件上数量,10K+节点规模
④流式文件访问:一次性写入、多次读取,保证数据一致性
⑤可构建在廉价机器上:通过多副本提高可靠性,提供了容错和恢复机制