讲义成果笔记spark h_第1页
讲义成果笔记spark h_第2页
讲义成果笔记spark h_第3页
讲义成果笔记spark h_第4页
讲义成果笔记spark h_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

Sparkvalvalconf=newSparkConf()valsc=newSparkContext(conf)valvallist= ovalbroadCast=vallineRDD=lineRDD.filter{x=>broadCast.value.contains(x)}.foreach{println}能不能将一个RDD使用广播变量广去不能,因为RDD是不数据的。可以将RDD的结果广广播变量只能在Driver端定义,不能在Executor在DriverExecutorvalvalconf=newSparkConf()valsc=newSparkContext(conf)valaccumulator=sc.accumulator(0)sc.textFile("./words.txt").foreach{x=>{accumulator.add(1)}}累加器在Driver端定义赋初始值,累加器只能在Driver端,在Excutor端更新。SparkUI可以指定提交Application --masterspark://node1:7077--name配置 --name--conf--conf停止程序,在WebUi中CompletedApplicationsApplicationID中能查看historyspark-default.conf配置文件中配置HistoryServer,对所有提交的Application都起作用在客户端节点,进入../spark-1.6.0/confspark-defaults.conf //设置HistoryServer加 spark.history.fs.logDirectory 启动HistoryServer:node4:18080,之后所有提交的应用程序运MasterMasterStandaloneMaster,Master程序,需要给Master进行高可用配置,Master的高可用可以使用fileSystem(文件系统)和zookeeper(分布式协调服务)。fileSystem只有功能,可以Master的元数据信息,用fileSystemMasterMaster启动另外的备用Master,这种方式不推荐使用。zookeeper有和功能,可以Master的元素据信息,使用zookeeper搭建的Master高可用,当Master挂掉时,备用的Master会自动切换,推荐使用这种方式搭建Master的HA。MasterSparkMasterMaster,spark-exportexport---发送到其他worker找一台节点(Master)Masterspark-env.sh配置节点上的MasterIP启动集群之前启动zookeeper../zkServer.sh../zkServer.sh启动sparkStandaloneMasterMasterWebUI主备切换过程中不能提交Application主备切换过程中不影响已经在集群中运行的Application。因为Spark是粗粒度资源调度。SparkPikillMaster--master--classreduceByKey会将上一个RDD中的每一个key对应的所有value成一个value,然后生成一个新的RDD,元素类型是<key,value>对的形式,这样每一个key对应一个聚合起来的value。问题:聚合之前,每一个key对应的value不一定都是在一个partitionRDD的数据集,RDD的partition极有可能分布在各个节点上。ShuffleWrite:上一个stage的每个maptask就必须保证将自己处理的当前分区的数据相同的keyShuffleRead:reducetask就会从上一个stage的所有taskkey应的value都会汇聚到同一个节点上去处理和聚合。Spark中有两种Shuffle管理类型,HashShufflManager和SortShuffleManager,Spark1.2之前是HashShuffleManager,Spark1.2引入SortShuffleManager,在Spark2.0+版本中已经将HashShuffleManager丢弃。每一个maptask将不同结果写到不同的bufferbuffer32K。buffer每个bufferreducetask①.maptask的计算结果会根据分区器(默认是ReduceTask会去Map端拉取相应的磁盘小文件。M(maptask)*R(reducetaskShuffleWrite在ShuffleRead过程中会产生很多磁盘小文件的对象在JVMgc,gc运行所需要的内存的话,就会OOM。导致shufflefilecannotfind由于这个错误导致的task败,TaskScheduler不负责重试,由DAGScheduler负责重试Stage。产生磁盘小文件的个数:C(core*R(reducemaptask数据结构默认是5M在shuffle结构的大小,当内存结构中的数据超过5M时,比如现在内存结构中的数据为5.01M,那么他会申请5.01*2-5=5.02M然后开始溢写磁盘,写磁盘是以batchbatch1maptaskreducetask去map端拉取数据的时候,首先解析索引文件,产生磁盘小文件的个数:2*M(maptaskbypassbypass①.bypassshufflereducetask的数量小于spark.shuffle.sort.bypassMergeThreshold个值默认是200。②.产生的磁盘小文件为:2*M(maptaskMapOutputTrackerSparkMapOutputTrackerMaster是主对象,存在于DriverMapOutputTrackerWorker是从对象,存在于ExcutorBlockManagerSpark中。BlockManagerMaster会在集群中有用到广播变量和缓存数据或者删除缓存数据的时候,通知BlockManagerSlave中。会与无论在Driver端的BlockManager还是在Excutor 当maptask执行完成后,会将task的地址封装到MpStatus对象中,通过MapOutputTrackerWorker对象向Driver中的MapOutputTrackerMaster汇报。在所有的maptask,Driver在reducetask执行之前,会通过Excutor中MapOutPutTrackerWorker向Driver端的MapOutputTrackerMaster获取到磁盘小文件的地址后,会通过BlockManager所在节点,然后通过BlockTransferServiceBlockTransferService5个task认情况下,5个task拉取数据量过48M。SparkSparkSpark集群会启动Driver和Executor两种进程,Driver负责创建SparkContext上下文,提交任务,task的分发等。Executor负责taskDriver。同时需要为需要持久化的RDD提供。Driver端的内存管理比较简单,这里所说的Spark内存管理针对Executor端的内存管理。SparkSpark1.6是静态内存管理,Spark1.6之后引入了统一内存管理。静态内存管理中内存、执行内存和其他内存的大小在Sp

温馨提示

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

评论

0/150

提交评论