大数据平台技术实例教程 课件 【ch10】基于内存的分布式计算框架Spark_第1页
大数据平台技术实例教程 课件 【ch10】基于内存的分布式计算框架Spark_第2页
大数据平台技术实例教程 课件 【ch10】基于内存的分布式计算框架Spark_第3页
大数据平台技术实例教程 课件 【ch10】基于内存的分布式计算框架Spark_第4页
大数据平台技术实例教程 课件 【ch10】基于内存的分布式计算框架Spark_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于内存的分布式计算框架Spark“新工科建设之路·数据科学与大数据系列大数据平台技术实刚教程第十章01基于Spark的大数据分析框架配置本章任务完成后,镜像保存的快照节点为ahutOX-ll,该节点完成了Spark、Python、Jupyter等环境的配置,其中Spark版本为231,ahut。1作为master节点,ahut02>ahut03、ahut04作为Slave节点,如图10-1所示。读者在编码实现Spark操作与应用时若遇到环境错误,可恢复至对应的快照节点,初始化Spark的部署环境。新增进程的作用如下。Master:主要负责管理整个集群的资源信息。Worker:主要负责管理所在节点的资源信息。02Spark基础知识Spark的特点1.数据处理快:作为一种基于内存的计算框架,Spark将中间数据集保存在内存中以减少磁盘I/O,从而提高性能。2.通用性强:Spark具有强大的通用性,集成多个分析组件,覆盖机器学习、图算法、流计算、SQL查询和迭代计算等多个领域。这些组件之间紧密、无缝集成,实现一站式解决工作流问题,使开发人员可以在一个平台上完成多个任务。其架构如图10-2所示。HBase体系架构及组件Spark的特点3.适应性好:Spark具有良好的适应性,与Hadoop紧密集成,它主要用于替代Hadoop中的MapReduce计算模型,仍使用HDFS进行存储,并且可以通过YARN实现资源调度管理。这使得开发人员可以在不改变原有架构的情况下,利用Spark进行计算。同时,Spark同样可以像Hadoop一样有良好的可扩展性,满足不同计算需求。4.易于使用,用户体验好:Spark提供了Scala、Java、Python和R四种语言的高级API和丰富的内置库,使得开发人员可以使用多种编程语言进行高效的数据处理。特别的是,Scala和Python的REPL(ReadEval-PrintLoop,交互式解释器)使应用更具灵活性。HBase体系架构及组件Spark和Hadoop的比较0102Spark更擅长处理实时流数据,MapReduce频繁磁盘操作的执行效率不如前者。对MapReduce来说,执行Map和Reduce时,都需要写入磁盘,这会对处理速度产生影响。Spark基于内存的机制,避免频繁的磁盘I/O操作,从而提高数据处理速度。03MapReduce模型相对简单,只支持Map和Reduce两种操作,这限制了它的灵活性和可扩展性。而Spark框架则提供了丰富的API,可以实现多种数据及操作,如转换操作的map、filter、join及行动操作的count、collect等。Spark和Hadoop的比较0405虽然Spark消耗的内存比MapReduce更多,但在实时数据处理和在线计算场景中,Spark比MapReduce效果更好。然而,在处理大规模数据集的离线计算和时效要求较低的项目中,MapReduce磁盘的存储成本更低,更适合存储海量数据。由此可见,具体选用哪种大数据处理框架,还要看具体应用场景。在MapReduce框架中,中间结果会被大量写入磁盘,从而拖慢整体的数据处理速度。而RDD则采用将结果保存在内存中的方式,弥补了MapReduce的这个缺点。RDD是Spark中的一种数据模型,它将数据集分成多个分区,每个分区可以在不同的节点上进行计算,同时RDD在内存中缓存数据,这一特点使得数据可以在多个操作间重用。RDD的概念RDDRDD(弹性分布式数据集)是Spark中最核心的概念之一,它是一个只读元素集合。RDD作为Spark的基本数据抽象,每个分区表示数据集的一部分。RDD是一个包含多个算子的、不可变的、可分区的、具有并行计算能力的集合。用RDD可以实现一种抽象的数据架构,将现有RDD通过转换操作生成新的RDD,以满足业务逻辑的需求。Spark的运行机制Spark的运行机制Spark的运行模式03HBase数据库少163-167页启动PySpaik0102在启动PySpark之前,需要启动ZooKeeper和Hadoop。选择PySpark的运行模式。Local模式:在ahut01中运行命令/opt/ahut/spark/bin/pyspark。Standalone模式:运行该模式前,需要先启动Spark,这里不能直接运行start-allsh,因为会和Hadoop的启动命令冲突,命令如下:[root@ahut0lsoftware]#/opt/ahut/spark/sbin/start-allsh。SparkonYARN模式:启动该模式前,需要完成10.3.1节中关于yarn-sitexml的相关配置并启动YARN的相关服务,命令如下:[root@ahut01-]#/opt/ahut/spark/bin/pyspark--masteryarn03这里选择Local模式启动PySpark,并记录输出信息中的token值。启动PySpaik04进入页面后,单击“NewFolder”按来创建一个文件夹,并将其重命名为myspark,如图10-8所示。单击my-spark文件夹,新建Python3项目,就可以进入Jupyter交互页面,如图10-9所示。05Jupyter有两种模式:命令模式和编辑模式。①cell侧边栏默认是绿色,即编辑模式,按Esc键可进入命令模式。②cell侧边栏是蓝色时,即命令模式,按回车键可进入编辑模式。06输入代码测试是否配置成功(运行快捷键为Ctrl+回车。04Spark的常用操作Spark中的map函数会对每一个输入进行相应的操作,然后为每一个输入返回一个对象。换句话说,就是对RDD中的每个元素进行逐一的函数操作,映射为另一个RDD。flatMap会先执行map的操作,再将所有对象合并为一个对象,返回值是一个Sequence,正是“先映射后扁平化”。实例10-1map、flatMap三种方法都是对RDD进行的聚合操作。reduce与fold方法是对同种元素类型数据的RDD进行操作,其返回值是一个同样类型的新元素。fold与reduce类似,接收与reduce接收的函数签名相同的函数,另外再加上一个初始值作为第一次调用的结果。aggregate方法可以对两个不同类型的元素进行聚合,即支持异构。实例10-2聚合类reduce、fold、aggregatefilter函数用于过滤RDD,即过滤掉不符合条件的元素,返回由符合条件元素组成的RDD。distinct会对重复的元素进行去重,返回一个新的不包含重复元素的RDD。实例10-3filter、distinctntersectioii(cither)返回这个RDD和另一个RDD的交集,即使输入RDD包含任何重复的元素,输出也不会包含任何重复的元素。union(other)返回止匕RDD和另一个RDD的并集。sortByKey是对key(键)的排序,默认为True,即升序,当设置参数ascending=False时表示降序排列。sortBy可以指定是对键还是对值进行排序,第一个参数是函数,返回对应的某一列值用来排序;第二个参数是ascending,决定是升序还是降序;第三个参数是numPartitions,决定排序后RDD的分区个数,默认排序之后的分区数和排序之前的个数相等。其中第一个参数必须传入,第二个和第三个参数可无。实例10-4交集intersection并集union>排序sortByPairRDD的算子包括groupBykey>reduceByKey>aggregateByKey>reduceByKeyLocallyogroupByKey按照Key分组,得到相同Key的值的sequence,可以通过自定义partitioner完成分区。实例10-5PairRDD的算子join在类型为(&V)和(K,W)的RDD上调用,返回一个相同Key对应的所有元素连接在一起的(K,(V,W))形式的RDD。实例10-6join少172-173页05SparkSQL的应用SparkSQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象(称为DataFrame)且起到分布式SOL查询引警的作用。与RDD类似,DataFrame也是一个分布式数据容器,然而DataFrame更像传统数据库的二维表格。除数据外,还记录数据的结构信息即schema。Spark使对结构化数据的操作更加高效和方便。使用SparkSOL有多种方式,包括SQL、DataFramesAPI和DatasetsAPI。但无论是哪种API还是编程语言,都基于同样的执行引擎,因此可以使用代码在不同的API之间随意切换。06Spark综合应用实例1.数据集介绍在Kaggle数据平台下载数据集albumscsv,其中包含10万张音乐专辑的数据。albumtitle:音乐专辑名称。genre:专辑类型。yearofpub;专辑发行年。numoftracks:每张专辑中的单曲数量。numofsales:专辑销量。rollingstonecritic:滚石网站的评分。mtvcritic:全球大音乐电视网MTV的评分。musicmaniaccritic:音乐达人的评分实例10-12基于Spark的音乐专辑数据分析2.数据分析要求统计各类型专辑的数量;统计各类型专辑的销量总数;统计近20年来每年发行的专辑数量和单曲数量。3.实际操作(1)首先上传数据文件到HDFS中;(2)使用PySpark实现读取数据,形成DataFrame;(3)统计各类型专辑的数量(只显示总数大于2000的10种专辑类型);(4)统计各类型专辑的销量总数;(5)统计近20年来每年发行的专辑数量和单曲数量。实例10-12基于Spark的音乐专辑数据分析07HBase综合实例MLlibScala语言MLlib的机器学习算法1.特征处理数据和特征决定了机器学习的上限,而模型和算法就在不断地逼近这个上限。特征工程本质是一项工程活动,目的是最大限度地从原始数据中提取特征供算法和模型使用。特征处理是特征工程的核心部分,特征处理方法包括数据预处理、特征选择、降维等。2.标准化与归一化标准化和归一化虽然都是在保持数据分布不变的情况下对数据进行处理,但是标准化让数据因量纲不一致导致的数据差别较大情况有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论