版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
林子雨
博士/副教授厦门大学导论(
第2版
)第8章数据处理与分析厦门大学数据库实验室:/目录CONCENTS数据处理与分析的概念基于统计学方法的数据分析机器学习和数据挖掘算法数据挖掘流程大数据处理与分析技术大数据处理与分析代表性产品8.18.28.38.48.58.6
8.1数据处理与分析的概念8.1.1数据分析与数据挖掘8.1.3
大数据处理与分析提纲8.1.2
数据分析与数据处理数据的概念数据分析12广义的数据分析狭义的数据分析狭义的数据分析数据挖掘广义的数据分析数据的概念数据分析12在广义数据分析中可使用复杂的机器学习和数据挖掘算法,也可不使用这些算法,只使用一些简单的统计分析方法,比如汇总求和等广义的数据分析狭义的数据分析指根据分析目的,用适当的统计分析方法及工具,对收集来的数据进行处理与分析,提取有价值信息,发挥数据作用指用适当的分析方法(来自统计学、机器学习等领域),对收集来的数据进行分析,提取有用信息和形成结论的过程狭义的数据分析指根据分析目的,用适当统计分析方法及工具,对收集来的数据进行处理与分析,提取有价值的信息,发挥数据的作用在定义层面数据挖掘指从大量数据中,通过统计学、人工智能、机器学习等方法,挖掘出未知的、且有价值的信息和知识的过程对于企业的意义0102狭义的数据分析主要实现三大作用现状分析、原因分析、预测分析(定量)数据挖掘主要侧重解决四类问题:分类、聚类、关联和预测,它的重点在寻找未知的模式与规律在作用层面狭义数据分析数据挖掘采用对比分析、分组分析、交叉分析、回归分析等常用分析方法采用决策树、神经网络、关联规则、聚类分析等统计学、人工智能、机器学习等方法进行挖掘在结果层面数据分析一般是得到一个指标统计量结果,如总和、平均值等,这些指标数据都需要与业务结合进行解读,才能发挥出数据的价值与作用数据挖掘是输出模型或规则,并可相应得到模型得分或标签,模型得分如流失概率值、总和得分、相似度、预测值等,标签如高中低价值用户、流失与非流失、信用优良中差等数据分析与数据挖掘狭义的数据分析数据挖掘广义的数据分析从数据里发现有价值的信息帮助业务运营和改进产品帮助企业做更好的决策数据分析与处理数据处理数据分析数据分析过程会伴随着发生数据处理包括单机分析工具或单机编程语言及大数据处理与分析技术(MapReduce、Spark等)需要统计学、机器学习和数据挖掘等知识理论技术小规模数据的分析大数据分析使用统计学、机器学习和数据挖掘的相关方法,以单机分析工具(比如SPSS和SAS)或者单机编程(比如Python、R)的方式来实现分析程序需要采用分布式实现技术,比如使用MapReduce、Spark或Flink编写分布式分析程序,借助于集群的多台机器进行并行数据处理分析,这个过程被称为“大数据处理与分析”数据分析理论层面数据分析理论层面大数据处理与分析机器学习数据挖掘算法狭义数据分析理论知识大数据处理与分析技术单机工具和单机编程
8.2基于统计学方法的数据分析8.2基于统计学方法的数据分析常见的数据分析方法
数据分析的主流工具01
028.2.1常见的数据分析方法基于统计学方法的数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化开发数据的功能,发挥数据的作用。核心目的是把隐藏在一大批看似杂乱无章的数据背后的信息集中和提炼出来,总结出研究对象的内在规律,帮助管理者进行判断和决策,以便采取适当策略与行动现状分析原因分析分析数据中隐藏的当前现状信息。比如,可以通过相关业务中各个指标的完成情况来,进行判断企业目前运营情况分析现状发生以及存在的原因。比如,企业运营情况中比较好的方面以及比较差的方面,都是由哪些原因引起的,以指导做出决策,对相关策略进行调整和优化分析预测将来可能会发生什么。根据以往数据,对企业未来发展趋势做出预测,为制订企业运营目标及策略提供有效的参考与决策依据预测分析8.2.1常见的数据分析方法常见的数据分析方法描述统计方差分析相关性分析假设检验(1)频数分析(2)数据探查(3)交叉表分析具有代表性的假设检验方法是T检验,主要用来比较两个总体均值的差异是否显著方差分析用于超过两个总体的均值检验,也经常用于实验设计后的检验问题相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需存在一定的联系或者概率,才可进行相关性分析8.2.1常见的数据分析方法0605回归分析主成分分析和因子分析回归分析指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照因变量的多少,可分为简单回归分析和多重回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析主成分分析和因子分析是非监督类分析方法的代表。因子分析是认识多变量分析的基础方法,它主要用在消费者行为态度研究、价值观态度语句的分析、市场细分之前的因子聚类、问卷的信度和效度检验等,因子分析也可以看作一种数据预处理技术。主成分分析可以消减变量、权重等,主成分还可以用作构建综合排名。主成分分析一般很少单独使用,可以用来了解数据,或和聚类分析一起使用,或和判别分析一起使用8.2.1常见的数据分析方法判别分析已知某种事物有几种类型,现在从各种类型中各取一个样本,由这些样本设计出一套标准,使得从这种事物中任取一个样本,可按这套标准判别它的类型,这就是判别分析判别分析是最好的构建Biplot二元判别图的好方法,主要用于分类和判别图,也是图示化技术的一种,在气候分类、农业区划、土地类型划分中有着广泛的应用8.2.1常见的数据分析方法时间序列分析是定量预测方法之一,侧重研究数据序列的互相依赖关系,它可以根据系统的有限长度的运行记录,建立能够比较精确地反映序列中所包含的动态依存关系的数学模型,从而对系统的未来进行预报时间序列分析8.2.1常见的数据分析方法水文预报农作物病虫灾害预报区域综合发展规划时间序列分析国民经济宏观控制企业经营管理气象预报生态平衡环境污染控制市场潜量预测地震前兆预报8.2.1常见的数据分析方法系统描述根据对系统进行观测得到的时间序列数据,用曲线拟合方法对系统进行客观的描述系统分析当观测值取自两个以上变量时,可用一个时间序列中的变化,去说明另一个时间序列中的变化,深入了解给定时间序列产生机理预测未来一般用ARMA模型拟合时间序列,预测该时间序列未来值决策和控制根据时间序列模型,可调整输入变量,使系统发展过程保持在目标值上,即预测到过程要偏离目标时便可进行必要控制8.2.1常见的数据分析方法8.2.2数据分析的主流工具0703MATLAB是matrix&laboratory两个词的组合,是一款以数学计算为主的高级编程软件,提供各种强大的数组运算功能用于处理各种数据集合进行MATLAB050104SPSSStatistics是世界上最早的统计分析软件,它最突出的特点就是操作界面极为友好,输出结果美观漂亮,由美国斯坦福大学的三位研究生于20世纪60年代末研制SPSSStatisticsR是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是用于统计计算和统计制图的优秀工具RSAS是目前国际上最为流行的一种大型统计分析系统,是一个模块化、集成化的大型应用软件系统,被誉为统计分析的标准软件02SASEViews是EconometricsViews缩写,通常称为计量经济学软件包,是在Windows操作系统中计量经济学软件里的世界性领导软件EViewsJMP是SAS旗下的一个事业部,专注于开发桌面环境的交互式统计发现软件。JMP寓意向交互式可视化数据分析这一新方向飞跃JMPPython是最受欢迎的程序设计语言之一。Python提供了高效的高级数据结构,还能简单有效地实现面向对象编程06Python
8.3机器学习和数据挖掘算法8.3.1概述8.3.3聚类提纲8.3.2分类8.3.4回归分析8.3.6协同过滤8.3.5关联规则凸分析算法复杂度理论统计学逼近论概率论机器学习8.3.1
概述数据库数据挖掘机器学习8.3.1
概述机器学习数据库利用机器学习界提供的算法来分析海量数据利用数据库界提供的存储技术来管理海量数据数据挖掘领域很多知识“间接”来自统计学界8.3.1
概述来源于数据挖掘机器学习通常只研究小规模的数据对象,往往无法应用到海量数据的情形借助海量数据管理技术对数据进行存储和处理,同时对一些传统机器学习算法进行改进,使其能够支持海量数据情形8.3.1
概述聚类分类回归分析关联规则8.3.1
概述分类是一种重要的机器学习和数据挖掘技术。分类的目的是根据数据集的特点构造一个分类函数或分类模型(也常常称作分类器),该模型能把未知类别的样本映射到给定类别中8.3.2分类训练测试训练数据集→分类模型测试数据集→模型分类准确率构造分类模型8.3.2分类决策树朴素贝叶斯支持向量机人工神经网络典型的分类方法8.3.2分类收集了每朵鸢尾花的一些测量数据:花瓣的长度和宽度以及花萼的长度和宽度。她还有一些鸢尾花分类的数据,也就是说,这些花之前已经被植物学专家鉴定为属于setosa、versicolor或virginica三个品种之一8.3.2分类构建一个分类算法得到一个分类模型预测新鸢尾花的品种基于这些分类数据,她可以确定每朵鸢尾花所属的品种8.3.2分类聚类分析的常见应用场景目标用户的群体分类通过对特定运营目的和商业目的所挑选出的指标变量进行聚类分析,把目标群体划分成几个具有明显特征区别的细分群体不同产品的价值组合企业可按照不同的商业目的,依照特定的指标标量来为众多的产品种类进行聚类分析,把企业的产品体系进一步细分成具有不同价值、不同目的的多维度的产品组合探测发现离群点和异常值离群点是相对于整体数据对象而言的少数数据对象这些对象的行为特征与整体数据行为特征很不一致如某B2C电商平台上比较昂贵、频繁交易,就可能隐含欺诈的风险,需要风控部门提前关注8.3.3聚类聚类又称群分析,是一种重要的机器学习和数据挖掘技术。聚类分析的目的是将数据集中的数据对象划分到若干个簇中,并且保证每个簇之间样本尽量接近,不同簇的样本间距离尽量远8.3.3聚类每个簇至少包含一个数据对象每个数据对象仅属于一个簇簇满足两个条件8.3.3聚类聚类分析0102030405划分法(PartitioningMethod)层次法(HierarchicalMethod)基于密度的方法(Density-basedMethod)基于网格的方法(Grid-basedMethod)基于模型的方法(Model-BasedMethod)聚类分析属于无监督分类范畴,按照一定的要求和规律,在没有分类经验下,对数据进行区分和分类8.3.3聚类回归分析回归分析(RegressionAnalysis)指的是确定两种或两种以上变量之间相互依赖的定量关系的一种统计分析方法8.3.4回归分析按照涉及的变量数按照因变量数回归分析一元回归多元回归分析简单回归分析多重回归分析自变量和因变量之间的关系类型线性回归分析非线性回归分析8.3.4回归分析回归分析在大数据分析中,回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。例如,司机的鲁莽驾驶与道路交通事故数量之间的关系,最好的研究方法就是回归8.3.4回归分析关联规则关联规则最初是针对购物篮分析问题提出的。如零售商想更多地了解顾客的购物习惯分析8.3.5
关联规则关联规则定义:假设I={I1,I2,I3,…,Im}项的集合。给定一个交易数据库D,其中每个事务t是I的非空子集,即每一个交易都与一个唯一标识符TID对应。关联规则在D中的支持度是D中事务同时包含X、Y的百分比置信度是D中事务已经包含X的情况下,包含Y的百分比,即条件概率0102如满足最小支持度阈值和最小置信度阈值,则认为关联规则是有趣的8.3.5
关联规则关联规则TID乒乓球拍乒乓球运动鞋羽毛球111102110031000410105011161100表
顾客购买记录乒乓球拍与乒乓球,事务1,2,3,4,6包含乒乓球拍,事务1,2,6同时包含乒乓球拍和乒乓球,这里用X表示购买了乒乓球,用Y表示购买了乒乓球拍,则如下X˄Y=3,D=6,支持度(X˄Y)/D=0.5;X=5,置信度(X˄Y)/X=0.6。若给定最小支持度α=0.5,最小置信度β=0.6,认为购买乒乓球拍和乒乓球间存在关联8.3.5
关联规则常见的关联规则挖掘算法
0102Apriori算法FP-Growth算法8.3.5
关联规则协同过滤推荐技术→推荐算法→电子商务应用8.3.6
协同过滤协同过滤包括基于用户的协同过滤、基于物品的协同过滤和基于模型的协同过滤8.3.6
协同过滤基于用户的协同过滤算法(简称UserCF算法)是推荐系统中最古老的算法8.3.6
协同过滤基于物品的协同过滤算法(简称ItemCF算法)是目前业界应用最多的算法8.3.6
协同过滤基于模型的协同过滤算法(ModelCF)是通过已经观察到的所有用户给产品的打分,来推断每个用户的喜好并向用户推荐适合的产品。ModelCF同时考虑了用户和物品两个方面,因此,它也可以看作是UserCF和ItemCF的混合形式8.3.6
协同过滤
8.4数据挖掘流程8.4
数据挖掘的方法体系数据挖掘流程可挖掘的知识数据挖掘系统的体系结构02018.4038.4.1可挖掘的知识处方型知识用来回答“怎么办”的问题。针对已经和将要发生的问题,找出适当的行动方案,有效解决存在的问题或把工作做得更好处方型知识诊断型知识用来回答“为什么会发生这样的事情”。针对生产、销售、管理、设备运行等过程中出现的问题和异常,找出问题的原因所在诊断型知识预测型知识用来回答“将要发生什么?”通过预测性模型的构建与训练,预测未来可能发生的各种结果,从而采取前瞻性的各类决策预测型知识描述型知识用来回答“发生了什么”、体现的“是什么”知识。如企业总的周报、月报、商务智能(BI)分析等描述型知识8.4.2数据挖掘系统的体系结构8.4.2数据挖掘系统的体系结构数据库管理模块负责对系统内数据库、数据仓库、挖掘知识库的维护与管理1挖掘前处理模块对收集到的数据进行清理、集成、选择、转换,生成数据仓库或数据挖掘库2挖掘操作模块针对数据库、数据仓库、数据挖掘库等,利用数据挖掘算法挖掘和发现知识3模式评估模块对数据挖掘结果进行评估4知识输出模块对数据挖掘出的模式进行翻译解释,以易于理解的方式提供给决策者使用58.4.3数据挖掘流程图CRISP-DM模型的六个阶段表CRISP-DM模型每个阶段的工作内容阶段工作内容商业理解从业务的角度理解项目实施的目的和要求,将这种理解转化为一个数据挖掘问题,并设计能达成目标的初步方案数据理解收集原始数据,熟悉数据,考察数据的质量问题,对数据形成初步的洞见数据准备从原始数据中构造用于建模的最终数据集,构造过程中包含观测选择和变量选择、数据转换和清理等多种活动建模选择并应用多种建模方法,优化各种模型评估全面评估模型,回顾建立模型的各个步骤,确保模型与业务目标一致,并决定如何使用模型结果部署模型部署,编制执行计划和维护计划,编写最终报告书8.4.3数据挖掘流程
8.5大数据处理与分析技术8.5.1技术分类8.5.3图计算提纲8.5.2流计算技术分类由于企业内部存在多种不同的应用场景,因此,大数据处理的问题复杂多样,单一的技术是无法满足不同类型的计算需求的,MapReduce其实只是大数据处理技术中的一种批处理计算流计算图计算查询分析计算技术分类大数据处理分析技术类型及其代表产品大数据计算模式解决问题代表产品批处理计算针对大规模数据的批量处理MapReduce、Spark等流计算针对流数据的实时计算Storm、S4、Flume、Streams、Puma、DStream、SuperMario、银河流数据处理平台等图计算针对大规模图结构数据的处理Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等查询分析计算大规模数据的存储管理和查询分析Dremel、Hive、Cassandra、Impala等技术分类数据采集实时分析处理结果反馈流计算流计算数据的价值时间的流逝数据过了时间点就没有价值如用户点击流流计算高性能每秒处理几十万条数据流计算海量式支持TB级、PB级的数据规模流计算实时性低延迟,达到秒级别、毫秒级别流计算分布式支持大数据基本架构,平滑扩展流计算易用性快速进行开发和部署流计算可靠性可靠地处理流数据流计算处理流程存储的数据是旧的不具备时效性传统的数据处理流程需要用户主动发出查询来获取结果流计算处理流程示意图流计算处理流程数据实时采集采集多个数据源的海量数据实时性低延迟稳定可靠日志数据数据实时采集数据实时采集开源分布式日志采集系统每秒数百MB的数据采集每秒数百MB的数据传输ScribeKafkaTimeTunnelChukwaFlumeStore:存储Collector转发过来的数据Agent:主动采集数据把数据推送到Collector部分Collector:接收多个Agent的数据,实现高性能的转发机器学习数据实时计算流计算处理流程示意图数据实时计算数据实时计算流程流计算处理流程示意图实时查询服务数据实时查询结果流计算框架实时查询展示储存数据实时查询传统计算方式主动发起查询用户数据库数据实时查询流数据处理系统实时数据数据实时查询和结果推送更新结果传统的数据处理系统定时查询过去某一时刻流处理系统与传统的数据处理系统比较流处理系统传统的数据处理系统数据实时的数据预先存储好的静态数据结果实时结果过去某一时刻的结果用户得到结果的方式主动将实时结果推送给用户用户主动发出查询传统的图计算算法存在的典型问题常常表现出比较差的内存访问局部性计算过程中伴随着并行度的改变针对单个顶点的处理工作过少010203基于现有的分布式计算平台进行图计算为特定的图应用定制相应的分布式实现解决方案使用单机的图算法库BGL、LEAD、NetworkX、JDSL、StandfordGraphBase和FGL等使用已有的并行图计算系统比如,ParallelBGL和CGMGraph,实现了很多并行图算法
基于遍历算法的、实时的图数据库通用的图计算软件Neo4jOrientDBDEXInfiniteGraph以图顶点为中心的、基于消息传递批处理的并行引擎GoldenOrbGiraphPregelHama
通用的图计算软件图计算BSP(BulkSynchronousParallelComputingModel)模型叫整体同步并行计算模型或者简称为大同步模型BSP每个超步主要包括三个组件局部计算01通讯02栅栏同步03每个参与的处理器都有自身计算任务,它们只读取存储在本地内存中的值,不同处理器计算任务都是异步并独立的处理器群相互交换数据,交换形式由一方发起推送(put)和获取(get)操作当一个处理器遇到“路障”(或栅栏),会等到其他所有处理器完成它们计算步骤;每一次同步也是一个超步的完成和下一个超步的开始
8.6大数据处理与分析代表性产品8.6.1分布式计算框架MapReduce8.6.3数据仓库Impala提纲8.6.2数据仓库Hive8.6.4基于内存的分布式计算框架Spark8.6.6流计算框架Flink8.6.5TensorFlowOnSpark8.6.7
大数据编程框架Beam8.6.8查询分析系统DremelMapReduce简介谷歌在2003年~2006年连续发表了3篇很有影响力的文章,分别阐述了GFSMapReduce和BigTable的核心思想。其中,MapReduce是谷歌公司核心计算模型MapReduce框架Map函数Reduce函数MapReduce输出等待处理Reduce1Reduce2Reduce3Reduce...中间结果Map1Map2Map3Map…完成全部Map待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理MapReduce框架传统的数据向计算靠拢计算向数据靠拢计算向数据靠拢任务分发机器B机器A数据计算程序MapReduce框架就会将Map程序就近地在HDFS数据所在的节点运行即将计算节点和存储节点放在一起运行,从而减少了节点间的数据移动开销MapReduceMapReduce工作流程MapReduce的缺陷磁盘的IO开销大延迟高衔接的IO开销大MapReduce的不足之处表达能力有限降低了分布式应用开发的复杂性复杂业务逻辑Map函数Reduce函数写入读取衔接的IO开销大ReduceMap后结果延迟高02两个阶段01Reduce阶段Map阶段延迟高任务输出处理中间结果Map函数Reduce函数MapReduce的不足之处Spark和Flink对Hadoop进行缺陷改进与继承01Hive是一个构建于Hadoop顶层的数据仓库工具03依赖分布式文件系统HDFS存储数据04依赖分布式并行计算模型MapReduce处理数据02可看作是用户编程接口,本身不存储和处理数据Hive
定义了简单的类SQL查询语言——HiveQL用户可以通过编写的HiveQL语句运行MapReduce任务是一个可提供有效、合理、直观组织和使用数据的模型图Hadoop生态系统中Hive与其他部分的关系Pig可以作为Hive的替代工具Hive依赖于HDFS存储数据HBase提供数据的实时访问Hive依赖于MapReduce处理数据图Hive系统架构Hive对外访问接口基于Thrift架构开发的接口,允许外界通过这个接口,实现对Hive仓库的RPC调用ThriftServerCLIJDBC和ODBC开放数据库连接接口很多应用开发都支持一种命令行工具HWIHiveWebInterface是Hive的Web接口驱动模块编译器优化器执行器一个独立的关系型数据库元数据存储模块(Metastore)通常是与MySQL数据库连接后创建的一个MySQL实例,也可是Hive自带的derby数据库实例Impala是由Cloudera公司开发的新型查询系统Impala和Hive采用相同的SQL语法ODBC驱动程序和用户接口Impala是参照Dremel系统进行设计的Impala采用了与商用并行关系数据库类似的分布式查询引擎,可以直接与HDFS和HBase进行交互查询与Hive类似,Impala也可以直接与HDFS和HBase进行交互Impala图Impala与其他组件关系Impala是由Cloudera公司开发的新型查询系统Impala和Hive采用相同的SQL语法ODBC驱动程序和用户接口Impala是参照Dremel系统进行设计的Impala采用了与商用并行关系数据库类似的分布式查询引擎,可以直接与HDFS和HBase进行交互查询与Hive类似,Impala也可以直接与HDFS和HBase进行交互Impala美国加州大学伯克利分校AMP实验室PeopleMachineAlgorithmYEAR2009YEAR2013孵化器项目Apache分布式计算系统开源项目206个节点23分钟100TB数据2000个节点72分钟100TB数据110计算资源3倍速度图
谷歌趋势:Spark与Hadoop对比打破Hadoop排序记录发展高峰容易使用通用性运行速度快运行模式多样运行速度快循环数据流内存计算容易使用ScalaJavaPythonR语言可通过SparkShell进行交互式编程效率高通用性完整的解决方案技术软件栈流式计算SQL查询机器学习图算法组件通用性SparkSQLSparkStreamingSparkMLlibSpark的GraphX运行模式多样独立的集群模式运行于HDFSCassandraHBaseHive数据源……Spark对Hadoop进行缺陷改进与继承MapfilterReducejoingroupBySpark计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比HadoopMapReduce更灵活中间结果内存计算再次访问低延迟计算过程中DAG任务调度执行机制DAG—有向无环图HadoopMapReduce执行流程Spark
执行流程图Hadoop和Spark执行逻辑斯蒂回归的实验对比1100.9Q1???Spark会取代Hadoop吗?MapReaduceHBaseHDFSHBaseHDFS它们共同来满足企业的相关应用场景需求HadoopHDFSMapReduceSpark取代MapReduceHDFSYARNHBaseYARNHDFSBatch(MapReduce)MLlib(Streaming)Interactive(Tez)Inmemory(Spark)图Hadoop和Spark的统一部署?构建一个生态系统复杂的批量数据处理基于实时数据流的数据处理基于历史数据的交互式查询数十分钟到数小时数十秒到数分钟数百毫秒到数秒应用类型时间跨度流处理交互查询批处理需要进行数据格式转换无法无缝共享维护成本较高集群资源利用不充分公共资源管家资源利用不充分02缺陷0103无法无缝共享使用成本较高满足不同的应用场景需求SparkCoreSparkSQLSparkStreamingMLlibGraphX“一个软件栈满足不同应用场景”一个软件栈满足不同应用场景SQL即席查询01实时流式计算02机器学习03图计算04YARN一站式大数据解决方案伯克利数据分析软件栈BDAS(BerkeleyDataAnalyticsStack)BDAS(BerkeleyDataAnalyticsStack)SparkStreamingStructuredStreamingBlinkDBGraphXMLBaseSparkSQLMLlibSparkCoreTachyonHDFSS3MesosHadoopYARNMLlib机器学习算法库用Spark编写聚类分类调用接口传参数进行训练输出结果2.0StructuredStreamingSparkStreaming特定应用场景需求StructuredStreamingDataFrame数据抽象
RDD数据抽象流计算工作节点任务控制节点应用程序的“指挥所”ExecutorExecutorDriverProgramSparkContextClusterManagerWorkerNodeCacheTaskTask(Receiver)WorkerNodeCacheTaskTask(Receiver)HDFSHBase集群资源管理器图Spark体系架构集群资源管理器CPU自带内存带宽YARNMesosClusterManagerExecutorWorkerNodeCacheTaskTask(Receiver)Executor进程线程线程任务任务应用阶段阶段阶段阶段作业作业任务任务...任务任务...任务任务...任务任务...任务控制节点(Driver)取决于里面相关代码申请启动发送ExecutorWorkerNodeCacheTaskTask(Receiver)阶段作业任务任务...ClusterManager任务控制节点(Driver)返回ExecutorWorkerNodeCacheTaskTask(Receiver)申请启动ClusterManager任务控制节点(Driver)申请HDFS或其他数据库写入ClusterManagerExecutorWorkerNodeCacheTaskTask(Receiver)启动任务控制节点(Driver)作业阶段任务任务...阶段任务任务...RDD分布式对象分布式对象……RDD本质上是一个只读的分区记录集合分区1分区2分区…①⑩....RDD分布式对象集合分区1分区2分区…①⑩....RDD数据分布式并行处理高效并行计算数据数据(Action)动作类型操作转换类型操作(Transformation)操作类型转换类型操作(Transformation)只记录转换的轨迹发生计算成绩成绩成绩成绩成绩成绩成绩成绩成绩+10分转换操作记录加10分,并不会真正地发生计算动作类型操作转换类型操作进行从头到尾的计算mapfilterjoingroupBy0102RDD提供的转换操作0304粗粒度一次只能针对RDD全集进行转换RDD1000万条记录+10分1000万条记录+10+10+10+10+10+10+10+10+101000万条记录95001学生+10分粗粒度支持粗粒度修改一次只能针对RDD全集进行转换不支持细粒度修改粗粒度不适合网页爬虫高度受限的共享内存模型会不会影响表达能力?RDD能力非常强大不会影响表达能力高度受限的共享内存模型√√√√√操作1操作2操作3API操作结果RDDInputOutputABCDEF创建创建转换转换转换转换转换动作单机集群Spark的部署方式StandaloneYARNKubernetes集群MesosStandaloneSpark自带效率不高血缘关系性能匹配好MesosYARNYARNHDFSSparkSQLMLlibSparkStreamingGraphX提纲123SparkSQL设计为什么推出SparkSQL从Shark说起ClientMetastoreJDBCDriverSQLParserQueryOptimizerPhysicalplanExecutionMapReduceHDFSCLIHive:SQL-on-Hadoop输入ParserSemanticAnalyzerLogicalPlanGeneratorLogicalOptimizerPhysicalPlanGeneratorPhysicalOptimizer将SQL转换成抽象语法树将抽象语法树转换成查询块将查询块转换成逻辑查询计划重写逻辑查询计划将逻辑查询计划转成物理计划选择最佳的优化查询策略输出编程接口转换功能存储数据需求工作量大做相关的底层查询编写相关代码编程接口需求输入ParserSemanticAnalyzerLogicalPlanGeneratorLogicalOptimizerPhysicalPlanGeneratorPhysicalOptimizer将SQL转换成抽象语法树将抽象语法树转换成查询块将查询块转换成逻辑查询计划重写逻辑查询计划将逻辑查询计划转成物理计划选择最佳的优化查询策略输出SQL语句底层的Spark应用程序HiveonSparkShark执行Hive的引进版HiveArchitectureClientMetastoreJDBCSQLParserQueryOptimizerPhysicalplanExecutionHDFSCLIDriverMapReduceClientMetastoreJDBCDriverSQLParserQueryOptimizerPhysicalplanExecutionSparkHDFSCLICacheMgr.SharkArchitectureSQL-on-Hadoop性能比Hive有了10-100倍的提高1Shark导致的两个问题???完全依赖执行计划优化不方便添加新的优化策略Shark导致的两个问题Spark线程级并行MapReduce进程级并行2???Shark导致的两个问题线程安全问题Spark兼容2???2014年6月1日停止对Shark的开发AnewSQLenginedesignedFromground-upforSparkSparkSQLSharkDevelopmentending;TransitioningtoSparkSQLHelpexisitingHiveuseMigratetoSparkHiveonSparkHive又能够支持MapReduceSparkSQL???有哪些革新呢?SparkSQLShark完全不同的路线ClientMetastoreJDBCDriverSQLParserQueryOptimizerPhysicalplanExecutionSparkHDFSCLICacheMgr.SharkArchitecture输入ParserSemanticAnalyzerLogicalPlanGeneratorLogicalOptimizerPhysicalPlanGeneratorPhysicalOptimizer将SQL转换成抽象语法树将抽象语法树转换成查询块将查询块转换成逻辑查询计划重写逻辑查询计划将逻辑查询计划转成物理计划选择最佳的优化查询策略输出自己做的!SQL可制定高效优化策略ClientMetastoreJDBCDriverSQLParsercatalystPhysicalplanExecutionSparkHDFSCLICacheMgr.图
SparkSQL架构SparkCore
(RDD)弹性分布式数据带有Schema信息的RDDSparkSQL(DataFrame)SparkSQL支持的数据格式和编程语言SparkSQL目前支持三种语言存储一部分结构化数据关系数据库关系数据库处理的相关数据类型结构化数据非结构化数据大数据10%90%存储在关系数据库中与人类信息密切相关结构化数据非结构化数据半结构化数据关系数据库在大数据时代已经不能满足要求不能用SQL语句关系数据库汇总求和select*from…selectcount(*)selectsumaverage做分析综合性查询分析需要执行高级分析机器学习算法决策树数据分析传统关系数据库数据分析SQL机器学习算法分析图像处理机器学习关系数据库没办法处理关系查询复杂分析算法能够处理结构化、半结构化和非结构化数据SQL团队SQL非结构化数据半结构化数据构建DataFrameSQL非结构化数据半结构化数据构建DataFrame文本类型进行解析相关查询DataFrameSQL非结构化数据半结构化数据构建DataFrame文本类型进行解析相关查询关系型表格文本类型进行解析相关查询关系型表格能够融合非结构化数据分析方便调用基于的数据抽象DataFrameMLlib机器学习算法进行数据分析时底层的数据抽象叫DataFrame关系数据查询复杂分析算法SQL关系数据查询SQL复杂分析算法SparkSQL非结构化数据分析半结构化数据分析结构化数据分析同时支持SparkSQL机器学习算法的数据处理能力关系数据库的结构化数据管理能力融合SparkCoreSparkSQLSparkStreamingMLlibGraphXSparkStreamingSparkStreamingKafkaFlumeHDFSTCPsocketHDFSDatabasesDashboards图SparkStreaming支持的输入、输出数据源连续不断的数据流模仿流计算…批处理批处理批处理批处理批处理模仿流计算交给Spark核心引擎处理Spark是以线程级别并行实时响应级别高可以实现秒级响应变相实现高效的流计算SparkStreaming图
SparkStreaming执行流程inputdatastreambatchesofinputdatabatchesofprocesseddataSparkEngine任务控制节点应用程序的“指挥所”ExecutorExecutorDriverProgramSparkContextClusterManagerWorkerNodeCacheTaskTask(Receiver)WorkerNodeCacheTaskTask(Receiver)HDFSHBase集群资源管理器图SparkStreaming工作机制SparkStreamingStructuredStreaming通过一致的API,简化了使用者的使用难度Spark设计了输入源、执行引擎和接收器如果使用源和接收器有偏差或幂等,StructuredStreaming可确保在任何故障下达到端到端的完全一致性SparkStreamingSparkSQLStructuredStreaming2.02.22.3测试版本正式发布引入持续流式处理模式将流处理延迟降低至毫秒级别StructuredStreaming2.3引入持续流式处理模式流计算领域不断输入的流式数据内存中一个没有边界的数据库表DataFrame在无界表上对输入的查询将生成结果表,系统每隔一定的周期会触发对无界表的计算并更新结果表图StructuredStreaming编程模型(2)持续处理StructuredStreaming(1)微批处理(2)持续处理StructuredStreaming(1)微批处理StructuredStreaming默认使用微批处理执行模型数据到达和得到处理并输出结果之间的延时超过100毫秒(1)微批处理(2)持续处理StructuredStreaming(1)微批处理StructuredStreaming默认使用微批处理执行模型数据到达和得到处理并输出结果之间的延时超过100毫秒Spark从2.3.0版本开始引入了持续处理的试验性功能在持续处理模式下,Spark不再根据触发器来周期性启动任务而是启动一系列连续读取、处理和写入结果的长时间运行的任务(2)持续处理SparkStreamingDStream数据抽象SparkSQLDataFrame数据抽象StructuredStreamingDataFrame数据抽象处理静态的数据处理结构化的数据流StructuredStreaming提供select、where、groupBy、map、filter、flatMap等操作SparkStreaming只能实现秒级的实时响应可以实现100毫秒级别的实时响应SparkCoreSparkSQLSparkStreamingMLlibGraphXSpark架构图SparkMLlib基于海量数据的机器学习算法库MLlib简化机器学习的工程实践工作从头进行代码编写决策树开发者逻辑斯蒂回归算法MLlib-机器学习库工具协同过滤MLlib分类回归聚类降维分类回归聚类协同过滤算法工具特征提取转化降维选择工具特征化工具流水线调整机器学习工作流构建评估
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 救生员安全岗位责任制度
- 加油站厕所卫生责任制度
- 油脂防雷安全责任制度
- 配餐企业责任制度范本
- 棒材打包机岗位责任制度
- 辖区药品网格化责任制度
- 电气防汛责任制度范本
- 医疗器械销售责任制度范本
- 电力工人落实责任制度
- 万博科技职业学院2026年招聘备考题库及1套参考答案详解
- 2026河北省公务员录用省市县乡四级联考8650人备考题库及1套参考答案详解
- (2025年)(完整)《中华人民共和国妇女权益保障法》知识竞赛题库及答案
- 2025年中国地质调查局招聘笔试参考题库含答案解析
- 饮食化学饮料中的化学
- 体育教师职业精神与职业道德(与“教师”有关的文档共14张)
- 2023学年完整公开课版说课
- SPSS应用(山东联盟)知到章节答案智慧树2023年临沂大学
- 大学马列主义经典著作选读教案
- 化工设备使用与维护
- 部编版小学语文四年级下册教案(表格式)
- GB/T 16938-2008紧固件螺栓、螺钉、螺柱和螺母通用技术条件
评论
0/150
提交评论