7大数据导论-第7章-数据处理与分析(2020年秋季学期).ppt

7大数据导论-第7章-数据处理与分析(2020年秋季学期).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.4.4 基于内存的分布式计算框架Spark RDD提供了一组丰富的操作以支持常见的数据运算,分为“动作”(Action)和“转换”(Transformation)两种类型 RDD提供的转换接口都非常简单,都是类似map、filter、groupBy、join等粗粒度的数据转换操作,而不是针对某个数据项的细粒度修改(不适合网页爬虫) 表面上RDD的功能很受限、不够强大,实际上RDD已经被实践证明可以高效地表达许多框架的编程模型(比如MapReduce、SQL、Pregel) Spark提供了RDD的API,程序员可以通过调用API实现对RDD的各种操作 7.4.4 基于内存的分布式计算框架Spark RDD典型的执行过程如下: RDD读入外部数据源进行创建 RDD经过一系列的转换(Transformation)操作,每一次都会产生不同的RDD,供给下一个转换操作使用 最后一个RDD经过“动作”操作进行转换,并输出到外部数据源 7.4.4 基于内存的分布式计算框架Spark 7.Spark的部署方式 Spark支持五种不同类型的部署方式,包括: Local Standalone(类似于MapReduce1.0,slot为资源分配单位) Spark on Mesos(和Spark有血缘关系,更好支持Mesos) Spark on YARN Spark on Kubernetes 图7-16 Spark on YARN架构 7.4.4 基于内存的分布式计算框架Spark 8.Spark SQL (1)从Shark说起 图7-17 Hive中SQL查询的MapReduce作业转化过程 Hive: SQL-on-Hadoop 7.4.4 基于内存的分布式计算框架Spark Shark即Hive on Spark,为了实现与Hive兼容,Shark在HiveQL方面重用了Hive中HiveQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,可以近似认为仅将物理执行计划从MapReduce作业替换成了Spark作业,通过Hive的HiveQL解析,把HiveQL翻译成Spark上的RDD操作 图7-18 Shark直接继承了Hive的各个组件 7.4.4 基于内存的分布式计算框架Spark Shark的出现,使得SQL-on-Hadoop的性能比Hive有了10-100倍的提高 7.4.4 基于内存的分布式计算框架Spark Shark的设计导致了两个问题: 一是执行计划优化完全依赖于Hive,不方便添加新的优化策略 二是因为Spark是线程级并行,而MapReduce是进程级并行,因此,Spark在兼容Hive的实现上存在线程安全问题,导致Shark不得不使用另外一套独立维护的打了补丁的Hive源码分支 7.4.4 基于内存的分布式计算框架Spark 2014年6月1日Shark项目和Spark SQL项目的主持人Reynold Xin宣布:停止对Shark的开发,团队将所有资源放在Spark SQL项目上,至此,Shark的发展画上了句号,但也因此发展出两个分支:Spark SQL和Hive on Spark Spark SQL作为Spark生态的一员继续发展,而不再受限于Hive,只是兼容Hive Hive on Spark是一个Hive的发展计划,该计划将Spark作为Hive的底层引擎之一,也就是说,Hive将不再受限于一个引擎,可以采用Map-Reduce、Tez、Spark等引擎 7.4.4 基于内存的分布式计算框架Spark Spark SQL在Hive兼容层面仅依赖HiveQL解析、Hive元数据,也就是说,从HQL被解析成抽象语法树(AST)起,就全部由Spark SQL接管了。Spark SQL执行计划生成和优化都由Catalyst(函数式关系查询优化框架)负责 图7-19 Spark SQL架构 (2) Spark SQL架构 7.4.4 基于内存的分布式计算框架Spark 图7-20 Spark SQL支持的数据格式和编程语言 Spark SQL增加了DataFrame(即带有Schema信息的RDD),使用户可以在Spark SQL中执行SQL语句,数据既可以来自RDD,也可以是Hive、HDFS、Cassandra等外部数据源,还可以是JSON格式的数据 Spark SQL目前支持Scala、Java、Python三种语言,支持SQL-92规范 7.4.4 基于内存的分布式计算框架Spark (3)为什么推出Spark SQL 7.4.4 基于内存的分布式计算框架Spark 7.4.4 基于内存的分布式计算框架Spark Spark SQL填补了这个鸿沟: 首先,可以提供DataFrame API,可以

您可能关注的文档

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档