本文主要涉及到的知识如下:
- 什么是大数据,大数据的核心问题是什么?
- Hadoop的理论来源
什么是大数据,大数据的核心问题是什么
在了解大数据的概念之前,我们需要先了解以下几个概念:
(1)OLTP:On-Line Transaction Processing(联机事务处理过程),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易:
开启事务
从转出账号中扣钱
往转入账号中加钱
提交事务
(2)OLAP:On-Line Analytic Processing(联机分析处理过程),OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。例如商品推荐:
抽取(读取)历史订单
分析历史订单,找到最受欢迎的商品
展示结果
OLTP | OLAP |
---|---|
用户 | 操作人员,低层管理人员 |
功能 | 日常操作处理 |
DB设计 | 面向应用 |
数据 | 当前的,最新的、细节的、二维的、分离的 |
存取 | 读/写数十条记录 |
工作单位 | 简单的事务 |
DB大小 | 100MB – GB |
(3)数据仓库:Data Warehouse,可简写为DW或DWH,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。
我们所要说的大数据,本身是数据仓库的一种实现方式。下面我们开始说明大数据的概念。
定义:大数据是指在一定时间范围内无法使用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的五大特征:
(1)Volume:大量;
(2)Velocity:高速;
(3)Variety:多样;
(4)Value:价值;
(5)Veracity:真实性;大数据的核心问题:
(1)数据存储:分布式文件系统(分布式存储)
(2)数据计算:分布式计算
Hadoop的理论来源
(1) GFS: Google File System —-> HDFS: hadoop distributed file system
分布式文件系统,将大文件以数据块(128M,不足也是占有128M的空间)的形式进行分割并保存,原理如下:
分布式文件系统的原理图中所涉及的机架感知原理如下:
分布式文件系统的原理图中所涉及的倒排索引(分词、统计、排序等)原理如下:
(2) MapReduce:来源:PageRank问题(网页排名)
关于网页排名,它是按相关性的顺序进行排序展示的,具体原理图如下:
从上图可以看出网页3被引用的次数最多,所以在展示时,它被放在了最前面,因为它是最重要的。如果光说明这一些可能要理解Hadoop中MapReduce还有点抽象,实际上是这样的,上面只涉及到4个网页,如果现在有几百万、几千万,甚至几亿个网页需要进行PageRank的计算,如此庞大的计算量如果放到单个计算机去计算无疑是不现实的,所以Google提出了MapReduce思想,即将一个巨大的任务进行拆分,拆分为多个小任务,这样普通的计算机就能很快计算出结果,最后再把这些结果整合起来,就可以得到最终结果,从而实现了PageRank。
根据PageRank的思想,Hadoop中MapReduce的原理如下:
(3) BigTable:大表 —-> HBase
BigTable是Google设计的分布式数据存储系统,用来处理海量的数据的一种非关系型的数据库。我们以HBase来简单的说明一下大表的特点: