spark sql 集成性.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
spark sql 集成性

* * * * CacheManager RDD在进行计算的时候,通过CacheManager来获取数据,并通过CacheManager来存储计算结果 *Spark class responsible for passing RDDs partition contents to the BlockManager and making sure a node doesnt load two copies of an RDD at once. 防止一个节点的数据写两遍,有个写锁 * Driver和Executor都有一个BlockManager BlockManager都包含一个BlockManagerMaster BlockManagerMaster都包含一个BlockManagerMasterActor(Driver模块的是Actor,Executor的是Ref) BlockManager包含了BlockManagerWorker类,该类主要作用是监听远程的数据块存取请求并处理 BlockManager还包含了DiskStore和MemoryStore类,这两个类的基类是BlockStore DiskStore还包含了DiskBlockObjectWriter类,该类是为了shuffle数据实体化到磁盘中而构建的句柄类,该类的基类是DiskObjectWriter * 原来版本默认选择hash方式,因为效率高,但是由于数据量的时候,使用Hash方式会出现OOM的错误,所以现在默认是sort方式 * textFile.flatMap(line = line.split( )) line.split( )).map(word = (word, 1)) reduceByKey((a, b) = a + b)) 9.5.1 WordCount程序运行原理 9.5.2 通过WordCount理解Spark与HDFS组合使用原理 分布式处理的核心观念在于“计算向数据靠拢”,优点如下: ?节省网络带宽 ?计算逻辑在数据侧执行,消除了集中式处理中计算逻辑侧的性能瓶颈 Spark+HDFS运行架构 9.5.2 通过WordCount理解Spark与HDFS组合使用原理 对于WordCount而言,分布式程序运行在每个Slave的每个分区上,统计本分区内的单词计数,生成一个Map,然后将它传回给Driver,再由Driver两两合并来自各个分区的所有Map,形成最终的单词计数。 9.5.3 解析分片、分区、CPU核数之间的关系 梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数、Executor数、core数目的关系 9.5.3 解析分片、分区、CPU核数之间的关系 输入可能以多个文件的形式存储在HDFS上,每个File都包含了很多块,称为Block 当Spark读取这些文件作为输入时,会根据具体数据格式对应的InputFormat进行解析,一般是将若干个Block合并成一个输入分片,称为InputSplit,注意InputSplit不能跨越文件。 随后将为这些输入分片生成具体的Task。InputSplit与Task是一一对应的关系 随后这些具体的Task每个都会被分配到集群上的某个节点的某个Executor去执行。每个节点可以起一个或多个Executor 每个Executor由若干core组成,每个Executor的每个core一次只能执行一个Task。 每个Task执行的结果就是生成了目标RDD的一个partiton 注意: 这里的core是虚拟的core而不是机器的物理CPU核,可以理解为就是Executor的一个工作线程 Task被执行的并发度 = Executor数目 * 每个Executor核数 9.5.3 解析分片、分区、CPU核数之间的关系 至于partition的数目:对于数据读入阶段,例如sc.textFile,输入文件被划分为多少InputSplit就会需要多少初始Task 在Map阶段partition数目保持不变。在Reduce阶段,RDD的聚合会触发shuffle操作,聚合后的RDD的partition数目跟具体操作有关,例如repartition操作会聚合成指定分区数,还有一些算子是可配置的 RDD 分区数决定了Task数量 ,为并行提供了可能。至于能否并行执行由CPU的核数来决定。比如8核,那么那么一台机器可以同时跑8个任务,如果是3核的话,8个任务轮流执行 9.5.3 解析分片、分区、CPU核数之间的关系 RDD在计算的时候,每个分区都会起一个task,所以rdd的分区数目决定了总的的task数目 申请的计算节点(Execut

文档评论(0)

wujianz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档