书签 分享 收藏 举报 版权申诉 / 42
上传文档赚钱

类型Spark分布式并行计算框架课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3573253
  • 上传时间:2022-09-19
  • 格式:PPT
  • 页数:42
  • 大小:1.57MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Spark分布式并行计算框架课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Spark 分布式 并行 计算 框架 课件
    资源描述:

    1、2020/11/302内容简介 Spark是什么 Spark的发展历程 Spark能干什么 Spark的适用场景 Spark的特点 Spark生态系统 Spark运行模式 Spark高可用 Spark核心概念:RDD Spark集群搭建 Spark与Hadoop整合 Spark应用部署模式2020/11/303Spark是什么 Spark是一个基于内存基于内存计算的开源的分布式集群并行计算系统 Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。使用的语言是Scala,运行在JVM上,项目的core部分的代码只有63个Scala文件,非常短小精悍。是继Hadoo

    2、p之后的新一代大数据分布式处理框架 目前Spark在全球已有广泛的应用,其中包括 Alibaba、Baidu、Tencent Youku、IBM、Intel、雅虎等。2020/11/304Spark发展历程 Spark诞生于2009年,那时候它是,加州大学伯克利分校RAD实验室的一个研究项目,后来到了AMP实验室。Spark最初是基于Hadoop Mapreduce的,后来发现Mapreduce在迭代式计算和交互式上是低效的。因此Spark进行了改进,引入了内存存储和高容错机制。关于Spark的研究论文在学术会议上发表,并且在它被创建的2009年不久之后,对于一些特定的工作,Spark比Map

    3、reduce快10-20倍。2010年3月份Spark开源。2011年,AMP实验室开始在Spark上面开发高级组件,像Shark(Hive on Spark),Spark Streaming。2013年转移到了Apache下,现在已经是顶级项目了。2014年5月份Spark1.0发布。目前:发布最新版Spark1.6.1 Spark在7年内迅速发展,较于其他大数据平台或框架,Spark代码库最为活跃2020/11/305Spark发展历程2020/11/306Spark能干什么大规模数据处理。例如用户行为数据,电子商务平台用户的操作行为记录,放进Spark系统,然后对数据进行多维度的分析,发

    4、现潜在客户,个性化推荐商品流数据处理。图计算。社交网络机器学习。协同过滤2020/11/307Spark的适用场景 Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合 数据量不是特别大,但是要求实时统计分析需求2020/11/308Spark特点Spark是快速的是快速的很多任务能够秒级完成,对于一些特定的工作,Sp

    5、ark比Mapreduce快10-20倍。Spark扩充了流行的Mapreduce计算模型,使Spark更高效地支持更多类型的计算,包括交互式查询,和流处理。速度快的另一个主要原因就是,能够在内存中计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。2020/11/309Spark特点Spark是易用的Spark不仅支持Scala编写应用程序,而且支持Java和Python,Python,R等语言进行编写。2020/11/3010Spark特点 Spark是通用的是通用的Spark的设计,容纳了之前很多

    6、独立的,分布式系统所拥有的功能。独立的分布式系统包括:批处理,迭代式计算,交互查询和流处理等。并且,由之前需要维护不同的集群,到现在只需要维护一个Spark集群。Spark生态圈即BDAS(伯克利数据分析栈)包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即席查询、MLlib或MLbase的机器学习和GraphX的图处理,它们都是由AMP实验室提供,能够无缝的集成并提供一站式解决平台。2020/11/3011Spa

    7、rk特点Spark是开放的是开放的Spark提供了Java,Scala,Python,R,SQL的API和丰富的内置库。同时,Spark和其它的大数据工具整合的很好。尤其,Spark能够运行在Hadoop集群上面,能够访问Hadoop数据。2020/11/3012Spark特点Spark随处运行随处运行Spark具有很强的适应性,能够读取HDFS、Cassandra、HBase、S3和Techyon为持久层读写原生数据,能够以Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成Spark应用程序的计算。2020/11/3013Spark生态系统2020/11/3

    8、014Spark生态系统 Spark生态圈也称为BDAS(伯克利数据分析栈),是伯克利APMLab实验室打造的,力图在算法(Algorithms)、机器(Machines)、人(People)之间通过大规模集成来展现大数据应用的一个平台。伯克利AMPLab运用大数据、云计算、通信等各种资源以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的信息,以供人们更好的理解世界。该生态圈已经涉及到机器学习、数据挖掘、数据库、信息检索、自然语言处理和语音识别等多个领域。Spark生态圈以Spark Core为核心,从HDFS、Amazon S3和HBase等持久层读取数据,以MESS、YARN

    9、和自身携带的Standalone为资源管理器调度Job完成Spark应用程序的计算。这些应用程序可以来自于不同的组件,如Spark Shell/Spark Submit的批处理、Spark Streaming的实时处理应用、Spark SQL的即席查询、BlinkDB的权衡查询、MLlib/MLbase的机器学习、GraphX的图处理和SparkR的数学计算等等。2020/11/3015Spark生态系统 Spark生态系统学习、维护成本很低。要实现一个相对完整的端到端的解决方案,以前需要部署多个专有系统,现在只需要一个Spark Spark Core 对应Hadoop MR SparkSQL

    10、 对应Hive SparkStreaming 对应Strom SparkGraphX对应Giraph SparkMLLib 对应Mahout2020/11/3016Spark运行模式Spark目前主要有目前主要有4种运行模式种运行模式LocalN模式,适用N个线程,用于调试。Local cluster 伪分布式模式,可以配置worker数量,每个worker管理的cpu和内存,用于调试Standalone Cluster集群模式,Spark:/hostname:port,需要部署spark到相关节点,url为master地址和端口YARN Cluster 模式,运行在资源管理器yarn集群中M

    11、esos Cluster模式,运行在资源管理器Mesos集群中2020/11/3017Spark运行模式2020/11/3018Spark运行模式2020/11/3019Spark运行模式 Client 提交driver的终端,可以是集群中的任何一个node,也可以是spark集群外的机器,甚至是调试程序的Ide Driver就是用户提交的程序,这里边定义了SparkContext的实例 SparkContext初始化过程中Spark会分别创建DAGScheduler作业调度和TaskScheduler任务调度两级调度模块 DAGScheduler是基于任务模块的高层调度模块,为每个Spark

    12、作业(job)计算具有依赖关系的多个调度模块(通常根据shuffle来划分),然后为每个阶段构建出一组具体的任务(Task),即任务集TaskSet交给TaskScheduler来具体执行 TaskScheduler则负责具体启动任务、监控和汇报任务运行情况 DAGScheduler和TaskScheduler都是不同阶段的调度者,具体执行任务的是Exector Master接收Client提交的作业,管理Worker,并命令Worker启动Driver和Executor Worker负责管理本节点的资源,定期向Master汇报心跳,接收Master的命令,比如启动Driver和Executo

    13、r2020/11/3020Spark高可用Spark 采用了Master/Slaves架构的集群模式,因此,存在着Master单点故障。基于文件系统的单点恢复此模式下虽然可以恢复,但需要人工参与。因此,适合对高可用要求不高的场景,如果离线分析。当Master挂掉后,手工启动Master仍然能继续执行原来的任务。当然,也可以继续提交任务export SPARK_DAEMON_JAVA_OPTS=-Dspark.deploy.recoveryMode=-Dspark.deploy.recoveryDirectory=/opt/spark/recovery“基于ZooKeeper的HASpark S

    14、tandalone使用多个Master节点,通过ZooKeeper推举一个为Active(激活)状态,其它的均为Standby(备用)状态。当Active Master节点挂掉后,ZooKeeper会从所有的Standby Mater中推举会一个新的Activer Master。新的Active Master恢复到旧有的Active Master的状态,然后恢复调度。从Activer Master失去作用,到新Active Master恢复调度可能需要12分钟。export SPARK_DAEMON_JAVA_OPTS=“-Dspark.deploy.recoveryMode=ZOOKEEPE

    15、R-Dspark.deploy.zookeeper.url=10-154:2181,10-153:2181,10-152:2181,10-154:2181-Dspark.deploy.zookeeper.dir=/spark2020/11/3021Spark核心概念:RDD 什么是RDDSpark的核心概念是RDD(resilient distributed dataset),是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用。一种有容错机制的特殊集合,可以分布在集群的节点上,以函数式编程操作集合的方式,进行各种并行操作分布式的,可以分布在多台机器上,

    16、进行计算弹性的,计算过程中内存不够时它会和磁盘进行数据交换2020/11/3022Spark核心概念:RDD RDD创建操作(creation operation)集合创建,由内部集合生成,Spark中提供了parallelize和makeRDD两类函数来实现从集合生成RDD。var rdd=sc.makeRDD(1 to 10,3)存储创建,从文件存储(文本文件,hdfs),数据库(hbase,mongodb),消息队列(kafka)等获得数据并转换成RDD2020/11/3023Spark核心概念:RDDRDD转换操作转换操作(transfermation operation)把一种RDD

    17、变成另一种新的RDD。如:map(func):返回一个新的分布式数据集,由每个原元素经过func函数转换后组成filter(func):返回一个新的数据集,由经过func函数后返回值为true的原元素组成flatMap(func):类似于map,但是每一个输入元素,会被映射为0到多个输出元素(因此,func函数的返回值是一个Seq,而不是单一元素)2020/11/3024Spark核心概念:RDDRDD控制操作(control operation)在spark中持久化操作是一种重要的功能,可以将RDD存储在不同层次的存储介质中,以便后续的操作能够重复使用。如:cache()persist()2

    18、020/11/3025Spark核心概念:RDDRDD行动操作(action operation)行动操作是和转换操作相对应的一种对RDD的操作类型,在Spark中每调用一次行动操作都会触发一次Spark的调度并返回相应的结果将变量或集合返回给driver程序。如:first(),count(),reduce()将RDD直接保存到外部文件系统或数据库,如HDFS,文本文件,hbasesaveAsTestFile()saveAsNewHadoopFile()saveAsNewHadoopDataset()2020/11/3026Spark核心概念:RDD实例代码var sc=new SparkC

    19、ontext(“spark:/.:7077”,”I love plu”,”spark_home”,”app_jar”)var(“”)var filterRDD=(_contains(“I love plu”)filterRDD.cache()filterRDD.cout()/filterRDD.saveAstestFile(“/.txt”)2020/11/3027Spark核心概念:RDD实例注解:第1行创建了spark上下文,在上下文实例化的过程中向集群申请资源和运行环境第2行读取一个文件并创建了第一个RDD第3行对执行转换操作,过滤符合条件的每一行字符串,生成新的RDD,即filterRD

    20、D第4行对filterRDD进行控制操作,缓存在内存。通过配置不同的缓存策略也可以缓存在硬盘,或者一半在内存一半在硬盘第5行对filterRDD进行行动操作,进行count计算,返回包含”I love plu”的行数Spark是惰性计算,也就是延迟计算,只有当进行行动操作时,才会触发spark作业的运行,也就是说在action 之前的代码相当于定义了job的执行计划2020/11/3028Spark核心概念:RDD2020/11/3029Spark集群搭建 下载解压jdk,配置环境变量 下载解压scala,配置环境变量 Spark节点之间通过ssh协议通信,各节点需配置ssh免密码访问 Spa

    21、rk通过主机名来进行互相访问,通过修改通过主机名来进行互相访问,通过修改/etc/hosts文件可配置本地主机名映文件可配置本地主机名映射关系,在射关系,在hosts文件中添加计算机的名称和文件中添加计算机的名称和IP的对应关系的对应关系 下载解压spark,配置spark-env,slaves2020/11/3030Spark集群搭建两台机器10-160,10-161部署spark,这两台机免密码ssh登录两台机器10-153,10-154均部署了zookeeper10台机器10-7010-79均部署了hadoop10-70部署hive2020/11/3031Spark集群搭建2台台spar

    22、kspark-env.sh文件:文件:#exportSPARK_MASTER_IP=192.168.10.160#exportSPARK_LOCAL_IP=10-160#zk高可用模式下不要上面两项exportSPARK_SSH_OPTS=-p58422exportJAVA_HOME=/usr/local/jdk1.7.0_79exportSCALA_HOME=/usr/local/scala-2.11.8exportSPARK_WORKER_MEMORY=8gexportSPARK_WORKER_CORES=4exportSPARK_HISTORY_OPTS=-Dspark.history.

    23、ui.port=18080-Dspark.history.retainedApplications=3-Dspark.history.fs.logDirectory=exportSPARK_DAEMON_JAVA_OPTS=-Dspark.deploy.recoveryMode=ZOOKEEPER-Dspark.deploy.zookeeper.url=10-154:2181,10-153:2181-Dspark.deploy.zookeeper.dir=/spark2台台sparkslaves文件:文件:10-16010-1612020/11/3032Spark集群搭建选用10-160作为默

    24、认master在10-160 执行start-all.sh 命令,在10-161执行stat-master.sh 命令跑一个job试试,执行命令root10-160 spark-1.6.1-bin-hadoop2.6#./bin/spark-submit-class plu.platform.StartLiveEvent-master spark:/10-160:6066,10-161:6066-deploy-mode cluster plu.platform.jar 2020/11/3033Spark集群搭建2020/11/3034Spark集群搭建2020/11/3035Spark与Had

    25、oop整合 Run Spark on Yarn Cluster2020/11/3036Spark与Hadoop整合在在spark-env.sh设置配置项设置配置项exportHADOOP_CONF_DIR=/app/hadoop/etc/Hadoop/指明了hadoop集群的配置启用启用Yarn日志聚合功能日志聚合功能yarn.log-aggregation-enabletrue操作操作HDFS这样我们在spark中操作hdfs就不需要关心hdfs的集群部署情况,如:varrdd1=sc.textFile();/读本地文件rdd1.saveAsTextFile(hdfs:/tmp/spark_

    26、readme.md);/写入hdfsvarrdd2=sc.textFile(hdfs:/tmp/spark_readme.md);/读取hdfsrdd2.collect()/显示文本2020/11/3037Spark与Hadoop整合Run Spark on Yarn./bin/spark-submit-classplu.platform.sparkjob.LiveEventJob-masteryarn-deploy-modecluster-executor-memory5G-num-executors5plu.platform.jar2020/11/3038Spark与Hadoop整合Spa

    27、rk on yarn提供了应用程序运行的web界面,可以通过这个界面查看spark作业的stage,task等详细信息,但无法获取应用程序的运行日志。这些日志通常保存在YARN的NodeManager节点上,一旦运行完成后可能会被聚集后保存到HDFS上2020/11/3039Spark与Hadoop整合 Spark-sql&Hive2020/11/3040Spark与Hadoop整合YarnHDFSMRSpark CoreZKHiveSparkJobSparkStreamingSparkSQLMySQLSqoop2020/11/3041Spark应用部署模式Client 模式模式,driver

    28、运行在当前执行命令的机器上,程序执行日志在终端输出,适合交互式应用./bin/spark-submit-class plu.platform.StartLiveEvent-master spark:/10-160:7077,10-161:7077-deploy-mode client plu.platform.jarCluster模式模式,driver运行在任意一台worker机器上,程序执行日志不会在终端输出在webui可以查看./bin/spark-submit-class plu.platform.StartLiveEvent-master spark:/10-160:6066,10-161:6066-deploy-mode cluster plu.platform.jar谢谢!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Spark分布式并行计算框架课件.ppt
    链接地址:https://www.163wenku.com/p-3573253.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库