一、大数据
1、什么是大数据?
大数据(Big data或Megadata):大数据,或称巨量数据、海量数据、大资料,指的是所涉及的数据量规模巨大到无法通过人工,在合理时间达到截取、管理、处理、并整理成为人类所能解读的形式的信息。
2、大数据特点
数据量大(Volume):第一个特征是数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。
类型繁多(Variety):第二个特征是种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。
价值密度低(Value):第三个特征是数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通 过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。
速度快时效高(Velocity):第四个特征数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。这是大数据区别于传统数据挖掘的显著特征。
数据是在线的(Online)。数据是永远在线的,是随时能调用和计算的,这是大数据区别于传统数据最大的特征。
Veracity:数据的准确性和可信赖度,即数据的质量。
3、大数据的数据单位
按顺序给出所有单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。(进率2^10)
二、数据仓库
1、什么是数据仓库?
在计算中,数据仓库(DW或DWH)也称为企业数据仓库(EDW),是用于报告和数据分析的系统,被视为商业智能的核心组件。DWs从一个或多个不同源的综合数据的中央储存库。他们将当前和历史数据存储在一个地方,用于为整个企业的工作人员创建分析报告。
2、数据仓库两种操作方式的特点
在线分析处理(OLAP)的特点是交易量相对较低。查询往往非常复杂,涉及到聚合。对于OLAP系统,响应时间是一种有效性度量。数据挖掘技术广泛使用OLAP应用程序。OLAP数据库以多维模式(通常为星型模式)存储汇总的历史数据。与数据集市相比,OLAP系统通常具有数小时的数据延迟,而数据集市预计延迟将接近一天。OLAP方法用于分析来自多个来源和视角的多维数据。OLAP中的三个基本操作是:总结(合并),钻取和切片和切块。
联机事务处理(OLTP)的特点是大量短暂的在线事务(INSERT,UPDATE,DELETE)。OLTP系统强调非常快速的查询处理并保持多访问环境中的数据完整性。对于OLTP系统,有效性以每秒交易次数来衡量。OLTP数据库包含详细和当前的数据。用于存储事务数据库的模式是实体模型(通常是3NF)。规范化是对在该系统中数据建模技术的规范。
三、ETL与DM的区别
ETL/Extraction-Transformation-Loading——用于完成DB到DW的数据转存,它将DB中的某一个时间点的状态,“抽取”出来,根据DW的存储模型要求,“转换”一下数据格式,然后再“加载”到DW的一个过程,这里需要强调的是,DB的模型是ER模型,遵从范式化设计原则,而DW的数据模型是雪花型结构或者星型结构,用的是面向主题,面向问题的设计思路,所以DB和DW的模型结构不同,需要进行转换。
DM/Data Mining/数据挖掘——这个挖掘,不是简单的统计了,他是根据概率论的或者其他的统计学原理,将DW中的大数据量进行分析,找出我们不能直观发现的规律。
四、Hadoop
1、什么是Hadoop?
维基百科上面,Hadoop的定义是:一个用java语言编写的便于大型数据集合的分布式储存和计算的软件框架。简单来说,这是计算机领域的一个开源软件,任何程序开发者都可以看到它的源代码,并且进行编译。它的出现让大数据的储存和处理一下子变的快了很多,也便宜了很多。
2、Hadoop特点是什么?
高效率(Efficient):分布式云计算,采用标准x86架构服务器大规模集群实现,每个模块都是一个离散的处理单元,使用并行计算技术,及群内各计算节点负载均衡,当某节点负荷过高时,可智能的将负荷转移到其他节点,并支持节点线性平滑扩展;分布式云存储,采用x86服务器的本地硬盘实现,使用分布式文件系统,每份数据至少保存在3个节点,保证存储设计的性能和可靠性目标。
可靠性(Reliable):能搞自身的维护数据的多个成本,并且在任务失败是自动的重新部署计算任务
可扩容性(Scalable):能可靠的储存和处理PB级的数据
成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。
五、大数据的数据结构
结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据非结构化数据:非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。包括所有格式的办公文档、文本、图片、XML, HTML、各类报表、图像和音频/视频信息等等。半结构化数据:指结构数据中,结构不规则的数据,由于结构变化很大也不能够简单的建立一个表和他对应。如:声音、图像文件等之间的数据,HTML文档就属于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,没有明显的区分。
六、大数据的计算模式
批处理计算 ( MapReduce,Spark):最适合于完成大数据批处理的计算模式是MapReduce,首先,MapReduce对具有简单数据关系、易于划分的大规模数据采用“分而治之”的并行处理思想;然后将大量重复的数据记录处理过程总结成Map和Reduce两个抽象的操作;最后MapReduce提供了一个统一的并行计算框架,把并行计算所涉及到的诸多系统层细节都交给计算框架去完成,以此大大简化了程序员进行并行化程序设计的负担。
流式计算 (Scribe ,Flume,Storm,S4,SparkStreaming)流式计算是一种高实时性的计算模式,需要对一定时间窗口内应用系统产生的新数据完成实时的计算处理,避免造成数据堆积和丢失。
迭代计算( HaLoop ,iMapReduce,Twister,Spark)为了克服Hadoop MapReduce难以支持迭代计算的缺陷,工业界和学术界对Hadoop MapReduce进行了不少改进研究。HaLoop把迭代控制放到MapReduce作业执行的框架内部,并通过循环敏感的调度器保证前次迭代的Reduce输出和本次迭代的Map输入数据在同一台物理机上,以减少迭代间的数据传输开销;
交互式计算
图计算 (Pregel,PowerGrapg,GraphX)
内存计算(Dremel,Hana,redis)
七、大数据的工作流程
1、采集与预处理
从数据源采集的数据,需要通过数据融合、数据集成、数据整合,生成新的数据集,供后续查询、分析、处理提供统一的数据视图
2、存储管理
分布式文件系统
分布式数据库(NEWSQL、NOSQL)
3、计算模式
包括批处理、交互式处理、流式计算、迭代计算、图计算、内存计算
4、分析与挖掘
5、可视化处理
八、CDH简介
CDH首先是100%开源,基于Apache协议。基于Apache Hapdoop和相关projiect开发。可以做批量处理,交互式sql查询和及时查询,基于角色的权限控制。在企业中使用最广的hadoop分发版本。
九、分布式架构设计CAP的工作原理
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本),换句话就是说,任何时刻,所用的应用程序都能访问得到相同的数据。
可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性),换句话就是说,任何时候,任何应用程序都可以读写数据。
分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择,换句话说,系统可以跨网络分区线性的伸缩和扩展。