引言
- 存储于管理贯穿大数据处理过程的始终
- 数据非结构化的特征明显
- 需要依靠分布式文件系统、分布式数据库、NoSQL数据库、云数据库等技术来实现
- 分布式基础架构Hadoop
- 分布式文件系统HDFS
- 分布式数据库HBase
- 非关系型数据库NoSQL
了解基本原理、基础结构、运行机制等内容
分布式基础架构Hadoop
Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:
- 高可靠性
- 高效性
- 高可扩展性
- 高容错性
- 成本低
- 运行在Linux平台上
- 支持多种编程语言
**
**
- Hive:基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制
- Pig:一个基于Hadoop的大规模数据分析平台
MR:MapReduce - Apache Solr是一个流行的开源搜索服务器,Solr是一个可扩展的、可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据
- solr本身也可以看成数据库(no sql类型),但它比数据库搜索速度更快,所以在项目中我们一般把搜索的部分交给solr,就像我们在京东首页所看到的商品信息,并不是来自数据库,而是来源于solr的索引库
- Redis:Remote Dictionary Server,即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库(存储系统),并提供多种语言的API
- Mahout:基于Hadoop的机器学习和数据挖掘的一个分布式框架
分布式文件系统HDFS
分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分成两类,一类叫“主节点”(Master Node)或者也被称为“名称节点”(NameNode),另一类叫“从节点”(Slave Node)或者也被称为“数据节点”(DataNode)
大规模文件系统的整体结构
HDFS的优点:
- 兼容廉价的硬件设备
- 流数据读写
- 大数据集
- 简单的文件模型
- 强大的跨平台兼容性
局限性:
- 不适合低延迟数据访问
- 无法高效存储大量小文件
- 不支持多用户写入及任意修改文件
HDFS默认一个块的大小为128MB,一个文件被分成多个块,以块作为存储单位(块存储)
块的大小远远大于普通文件系统,可以最小化寻址开销
冗余因子
:出于成本考虑,HDFS常架构在廉价的机器上,所以经常出故障,所有必须有冗余机制,一般每个块保存3份,即冗余因子默认是3
思考题:
-
分布式文件系统HDFS如何探测错误发生以及如何进行恢复的?
- 名称节点出错:将名称节点上的元数据信息同步存储到其他文件系统中;并运行一个第二名称节点,当名称节点宕机之后,利用第二名称节点进行系统恢复
- 数据节点出错:将无法接受到“心跳”信号的数据节点标记为不可读,如果数据块的副本数量小于冗余因子,就会启动数据冗余复制,为它生成新副本
- 数据出错:客户端收到数据后会使用MD5和sha1对数据块进行校验;如果校验出错,客户端就会请求到另外一个数据节点读取该文件块,并向名称节点报告这个文件块有错误,名称节点会定期检查并且重新复制这个块
-
在分布式文件系统HDFS中,名称节点的设计至关重要,HDFS是如何减轻名称节点的负担的?
- 在客户端需要访问一个文件时,名称节点并不参与数据的传输,而是只将数据节点位置发给客户端,因此实现了一个文件的数据能够在不同的数据节点上实现并发访问,大大提高了数据访问速度并减轻了中心服务器的负担,方便了数据管理
分布式数据库HBase
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌Big Table的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿数据和数百万列元素组成的数据表。
非关系数据库NoSQL
通常,NoSQL数据库具有以下特点:
- 灵活的可扩展性
- 灵活的数据模型
- 与云计算紧密融合
事务的四大特性ACID:Atomicity原子性,Consistency一致性,Isolation隔离性,Durability持久性
NoSQL的四个类型
NoSQL数据库虽然数量众多,但是归结起来,典型的NoSQL数据库通常包括键值数据库
、列族数据库
、文档数据库
和图形数据库
-
键值数据库
- 相关产品:Redis、SimpleDB等
-
列族数据库
- 相关产品:HBase
-
文档数据库
- 相关产品:MongoDB
-
图形数据库