文章目录
1、应知应会
- 大数据的本质是应需求而驱动的。
- 软件是大数据的驱动力。
- 大数据总体架构的特点有统一、开发、集成的大数据平台、低成本的可拓展性、实时地分析执行、可靠性。
- 分布式数据库系统是数据库技术和网络技术相结合的产物。
- 半结构化数据也叫流数据。对流数据进行处理的系统叫数据流系统。
- 根据数据源的信息和分析目标不同,大数据的处理可分为离线/批量和在线/实时两种模式。
- 大数据分析的使用者对于大数据分析最基本的要求是可视化分析。
- 大数据分析的理论核心是数据挖掘算法。
- 大数据分析最重要的领域之一就是预测性分析。
- 大数据分析过程中,识别信息需求是确保数据分析过程有效性的首要条件。
- 数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。
- 大数据分析的研究对象是大数据。对应于大数据分析的两条技术路线,其分析方法可分为两类:一个是统计分析方法,另一个是数据挖掘方法。
2、大数据总体框架
架构设计原则
企业级大数据应用框架需要满足业务的需求:一是要求能够满足基于数据容量大、数据类型多、数据流通快的大数据基本处理要求,能够支持大数据的采集存储、处理和分析;二是能够满足企业级应用在可用性、可靠性、可扩展性、容错性、安全性和保护隐私等方面的基本准则;三是能够满足用原始技术和格式来实现数据分析的基本要求。
总体架构特点
大数据技术架构具备集成性、架构先进性和实时性等特点,具体来说,包含以下几个方面:
- 统一、开发、集成的大数据平台
(1)可基于开源软件实现Hadoop基础工具的整合;
(2)能与关系型数据库、数据仓库通过JDBC/ODBC连接器进行连接;
(3)能支持地理分布的在线用户和程序,并行执行从查询到战略分析的请求;
(4)提供用户友好的管理平台,包括HDFS浏览器和类SQL查询语句等;
(5)提供服务、存储、调度和高级安全等企业级应用的功能。 - 低成本的可扩展性
(1)支持大规模可扩展性,到PB级数据源;
(2)支持极大的混合工具负载,各种数据类型包括任意层次的数据结构、图像、日志等;
(3)节点间无共享(sharing-nothing)的集群数据库体系结构;
(4)可编程和可扩展的应用服务器;
(5)简单的配置、开发和管理;
(6)以线性成本扩展并提供一致的性能;
(7)标准的普通硬件。 - 实时地分析执行
(1)在声明或发现数据结构之前装载数据;
(2)能以数据全载入的速度来准确更新数据;
(3)可调度和执行复杂的几百个节点的工作流;
(4)在刚装载的数据上,可实时执行六分析查询;
(5)能以大于每秒1GB的速率来分析数据。 - 可靠性
当处理节点失效时,自动恢复并保持流程持续,不需要中断操作。
3、大数据存储技术
分布式数据库系统是数据库技术和网络技术相结合的产物。它通常使用体积较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有DBMS的一份完整的副本,并具有自己局部的数据库。位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的大型数据库。
分布式数据库系统具有以下主要特点:
(1)物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上;
(2)逻辑整体性:数据物理分布在各个场地上,但逻辑上是一个整体,它们被所有的用户(全局用户)共享,并由一个主节点统一管理;
(3)具有灵活的体系结构,适应分布式的管理和控制机构;
(4)系统的经济性能优越,可靠性高,可用性好;
(5)可扩展性好,易于集成现有的系统。
4、大数据处理技术
大数据处理模式
根据数据源的信息和分析目标不同,大数据处理可分为离线/批量和在线/实时两种模式。所谓离线/批量是指数据积累到一定程度后再进行批量处理,这多用于事后分析。所谓在线/实时处理是指数据产生后立刻需要进行分析。现在主流的两大平台Hadoop和Storm,前者是强大的离线数据处理平台,后者是强大的在线数据处理平台。
大数据处理Storm平台
- Storm的主要特点
(1)简单的编程模型。类似于MapReduce降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性。
(2)可以使用各种编程语言。可以在Storm上使用各种编程语言,默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。
(3)容错性。Storm会管理工作进程和节点故障。
(4)水平扩展。Storm中的计算是在多个线程、进程和服务器之间并行执行的。
(5)可靠的消息处理。Storm保证每个消息至少能得到一次完整的处理。任务失败时,它会负责从消息源重试消息。
(6)快速。系统的设计保证了消息能得到快速的处理,使用/MQ(ZeroMQ)作为其底层消息队列。
(7)本地模式。Storm有一个“本地模式”,可以在处理过程中完全模拟Strom集群。这让用户可以快速进行开发和单元测试。 - Storm集群的组件
Storm集群非常类似于Hadoop集群。Hadoop上运行的是MapReduce Job,而Storm上运行的是Topology。Job和Topology本身是不同,其中一个最大的不同就是,MapReduce Job最终会结束,而Topology则会持续的处理消息,直到终止它。
Strom集群由一个主控节点和多个工作节点组成。主控(Master)节点运行一个守护进程,叫做Nimbus,类似Hadoop中的JobTracker。Nimbus负责在集群中分发代码,分配任务,以及故障检测。每个工作(worker)节点运行一个守护进程,叫做Supervisor。每个Worker进程执行Topology的一个子集;一个运行中的Topology由许多分布在多台机器上的Worker进程组成。
Nimbus和Supervisor之间是通过Zookeeper协调的。此外,Nimbus和Supervisor是能快速失败(fail-fast)和无状态(stateless);所有的状态都保存在Zookeeper或者在本地磁盘中。当Nimbus或者Supervisor出现问题重启后会自动恢复,好像什么也没发生过。这项设计使得Storm集群变得非常稳定健壮。 - Strom的缺点
(1)编程门槛对普通用户来说较高。
(2)框架本身不提供持久化存储。
(3)框架不提供消息接入模块。
(4)Strom UI功能过于简单。
(5)Bolt复用困难。
(6)存在Nimbus单点失效问题。
(7)Topology不支持动态部署。
5、大数据分析技术
大数据分析特点
- 大数据分析特点
(1)大数据分析应是可视化分析(用户最基本的要求)
(2)大数据分析的理论核心是数据挖掘算法。
(3)大数据分析最重要的应用领域之一就是预测性分析。
(4)大数据分析广泛应用于网络数据挖掘。
(5)大数据分析离不开数据质量和数据管理。 - 大数据分析路线
(1)凭借先验知识人工建立数学模型来分析数据。
(2)通过人工智能系统,使用大量样本数据进行训练,让机器代替人工获得从数据中提取知识的能力。
大数据分析过程
数据分析过程主要活动由识别信息需求、收集数据、分析数据、评价并改进数据分析的有效性组成。
- 识别信息需求
识别信息需求是确保数据分析过程有效性的首要条件,可以为收集数据、分析数据提供清晰的目标。 - 收集数据
有目的地收集数据是确保数据分析过程有效的基础。组织需要对收集数据的内容、渠道、方法进行策划。 - 分析数据
分析数据是将收集的数据通过加工、整理和分析,使其转化为信息。通常用的方法有:
(1)老七种工具:排列图、因果图、分层法、调查表、散布图、直方图、控制图;
(2)新七种工具:关联图、系统图、矩阵图、KJ法、计划评审技术、PDPC法、矩阵数据图。 - 评价并改进数据分析的有效性组成
数据分析是质量管理体系的基础,组织的管理者应在适当的时候,通过对以下问题的分析,评估其有效性:
(1)提供决策的信息是否充分、可信,是否存在因信息不足、失准、滞后而导致决策失误的问题;
(2)信息对持续改进质量管理体系、过程】产品所发挥的作用是否与期望值一致,是否在产品实现过程中有效运用数据分析;
(3)收集数据的目的是否明确,收集的数据是否真实和充分,信息渠道是否畅通;
(4)数据分析方法是否合理,是否将风险控制在可接受的范围;
(5)数据分析所需资源是否得到保障。
大数据分析方法
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。数据也称为观测值,是实验、测量、观察、调查等的结果。数据分析中所处理的数据分为定性数据和定量数据。只能归入某一类而不能用数值进行测度的数据称为定性数据。定性数据中表现为类别,但不区分顺序的,是定类数据;定性数据中表现为类别,但区分顺序的,是定序数据。
大数据分析的研究对象是大数据,他侧重于在海量数据中分析挖掘出有用的信息。对应于大数据分析的两条技术路线,其分析方法可分为两类:一个是统计分析方法,另一个是数据挖掘方法。
- 统计分析方法
(1)描述性统计分析
描述性统计分析(Description Statistics)是通过图表或数学方法,对数据资料进行整理、分析,并对数据的发布状态、数字特征和随机变量之间的关系进行估计和描述的方法。描述性统计分析分为集中趋势分析、离中趋势分析和相关分析。
集中趋势分析主要靠平均数、中数、众数等统计指标来表示数据的集中趋势。
离中趋势分析主要靠全距、四分差、平均差、方差、标准差等统计指标来研究数据的离中趋势。
相关分析是研究现象之间是否存在某种依存关系,并对具体依存关系的现象进行其相关方向及相关程度的研究,例如,单一相关关系、多重相关关系、正相关关系、负相关关系、相关系数。
(2)回归分析
回归分析(Regression Analysis)是确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法,或者说是研究一个随机变量Y对另一个变量X或一组变量(X1、X2、…、Xk)的相依关系的统计分析方法。按照涉及变量的多少,可将其分为一元回归分析和多元回归分析;按照自变量和因变量之间的关系类型,可将其分为线性回归分析和非线性回归分析。
(3)因子分析
因子分析(Factor Analysis)是指研究从变量群中提取共性因子的统计技术。因子分析的方法约有十多种,如重心法、影像分析法、最大似然解、最小平方法、阿尔发抽因法、拉奥典型抽因法,等等。
(4)方差分析
方差分析(Analysis of Variance,ANOVA)又称“变异数分析”或“F检验”,是R.A Fisher发明的,用于两个及两个以上样本均数差别的显著性实验。 - 数据挖掘方法
(1)分类和预测
分类是应用已知的一些属性数据去推测一个未知的离散型的属性数据,而这个被推测的属性数据的可取值是预先定义的,要很好地实现这种推测,就需要事先在已知的一些属性和未知的离散型属性之间建立一个有效的模型,即分类模型。可用于分类的算法有决策树、朴素贝叶斯分类、神经网络、logistic回归、支持向量机,等等。
预测也被称为回归,或统称为回归预测,是应用已知的一些属性数据去推测一个未知的连续型属性数据。为了很好地实现这种推测,也需要事先在已知的一些属性和未知的连续型属性之间建立一个有效的模型,即预测模型。用于预测的算法有神经网络、支持向量机、广义非线性模型等等。
(2)关联规则
关联规则的主要目的是找出数据集中的频繁模式,即多次重复出现的模式和并发关系。
(3)聚类
聚类分析指将物理或抽象对象的集合分组成为由类似的对象组成的多个类似的分析过程。聚类是将数据分类到不同的类或者簇的过程,所以同一个簇中的对象有很大的相似性,而不同的簇之间有很大的差异性。聚类方法有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。聚类分析的算法可以分为划分法(Partitioning Methods,K-MEANS算法、K-MEDOIDS算法、CLARANS算法)、层次法(Hierarchical Methods,BIRCH算法、CURE算法、CHAMELEON算法等)、基于密度的方法(density-based methods,DBSCAN算法、OPTICS算法、DENCLUE算法等)、基于网格的方法(grid-based methods,STING算法、CLIQUE算法、WAVE-CLUSTER算法)、基于模型的方法(Model-Based Methods)。 - 统计分析和数据挖掘的联系与区别
(1)统计分析和数据挖掘的联系
从两者的理论来源来看,它们都源自统计理论的基础理论。
(2)统计分析和数据挖掘的区别
数据挖掘是统计分析技术的延伸和发展。统计分析在对数据进行统计分析时,需要分析人员对数据分布和变量间的关系做假设,而数据挖掘中,分析人员不需要对数据分布做任何假设,数据挖掘算法会自动寻找变量间的关系。
6、参考文献
[1] 陶皖.云计算与大数据[M].陕西:西安电子科技大学出版社,2017