编辑: 山南水北 2019-11-18
《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.

edu.cn 厦门大学计算机科学系 2018版 林子雨 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 主页:http://www.cs.xmu.edu.cn/linziyu 第3章Spark的设计与运行原理 (PPT版本号: 2018年春季学期) 温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字 扫一扫访问教材官网 《Spark编程基础》 教材官网: http://dblab.xmu.edu.cn/post/spark/ 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 课程配套授课视频 课程在线视频地址:http://dblab.xmu.edu.cn/post/10482/ 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 提纲 ? 3.1 Spark概述 ? 3.2 Spark生态系统 ? 3.3 Spark运行架构 ? 3.4 Spark的部署方式 百度搜索厦门大学数据库实验室网站访问平台 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1 Spark概述 3.1.1 Spark简介 3.1.2 Scala简介 3.1.3 Spark与Hadoop的比较 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1.1 Spark简介 ?Spark最初由美国加州伯克利大学(UC Berkeley)的AMP 实验室于2009年开发,是基于内存计算的大数据并行计算 框架,可用于构建大型的、低延迟的数据分析应用程序 ?2013年Spark加入Apache孵化器项目后发展迅猛,如今已 成为Apache软件基金会最重要的三大分布式计算系统开源 项目之一(Hadoop、Spark、Storm) ?Spark在2014年打破了Hadoop保持的基准排序纪录 ?Spark/206个节点/23分钟/100TB数据 ?Hadoop/2000个节点/72分钟/100TB数据 ?Spark用十分之一的计算资源,获得了比Hadoop快3倍 的速度 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1.1 Spark简介 Spark具有如下几个主要特点: ?运行速度快:使用DAG执行引擎以支持循环数据流与内存计算 ?容易使用:支持使用Scala、Java、Python和R语言进行编程, 可以通过Spark Shell进行交互式编程 ?通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流 式计算、机器学习和图算法组件 ?运行模式多样:可运行于独立的集群模式中,可运行于Hadoop 中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS 、Cassandra、HBase、Hive等多种数据源 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1.1 Spark简介 图 谷歌趋势:Spark与Hadoop对比 Spark如今已吸引了国内外各大公司的注意,如腾讯、淘宝、百度、亚马 逊等公司均不同程度地使用了Spark来构建大数据分析应用,并应用到实 际的生产环境中 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1.2 Scala简介 Scala是一门现代的多范式编程语言,运行于Java平台(JVM, Java 虚拟机),并兼容现有的Java程序 Scala的特性: ?Scala具备强大的并发性,支持函数式编程,可以更好地支持分布 式系统 ?Scala语法简洁,能提供优雅的API Scala兼容Java,运行速度快,且能融合到Hadoop生态圈中 Scala是Spark的主要编程语言,但Spark还支持Java、Python、R 作为编程语言 Scala的优势是提供了REPL(Read-Eval-Print Loop,交互式解释 器),提高程序开发效率 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1.3 Spark与Hadoop的对比 Hadoop存在如下一些缺点: ?表达能力有限 ?磁盘IO开销大 ?延迟高 ?任务之间的衔接涉及IO开销 ?在前一个任务执行完成之前,其他任务就无法 开始,难以胜任复杂、多阶段的计算任务 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1.3 Spark与Hadoop的对比 Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了 MapReduce所面临的问题 相比于Hadoop MapReduce,Spark主要具有如下优点: ?Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作 ,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更 灵活 ?Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算 效率更高 Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的 迭代执行机制 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1.3 Spark与Hadoop的对比 图Hadoop与Spark的执行流程对比 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.1.3 Spark与Hadoop的对比

110 0.9

0 20

40 60

80 100

120 Hadoop Spark 执行时间 (s) 图Hadoop与Spark执行逻辑回归的时间对比 ?使用Hadoop进行迭代计算非常耗资源 ?Spark将数据载入内存后,之后的迭代计算都可以直接使用内存中的中间 结果作运算,避免了从磁盘中频繁读取数据 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.2 Spark生态系统 在实际应用中,大数据处理主要包括以下三个类型: ?复杂的批量数据处理:通常时间跨度在数十分钟到数小时之间 ?基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间 ?基于实时数据流的数据处理:通常时间跨度在数百毫秒到数秒之间 当同时存在以上三种场景时,就需要同时部署三种不同的软件 ?比如: MapReduce / Impala / Storm 这样做难免会带来一些问题: ?不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格 式的转换 ?不同的软件需要不同的开发和维护团队,带来了较高的使用成本 ?比较难以对同一个集群中的各个系统进行统一的资源协调和分配 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.2 Spark生态系统 ?Spark的设计遵循 一个软件栈满足不同应用场景 的 理念,逐渐形成了一套完整的生态系统 ?既能够提供内存计算框架,也可以支持SQL即席查询、 实时流式计算、机器学习和图计算等 ?Spark可以部署在资源管理器YARN之上,提供一站式的 大数据解决方案 ?因此,Spark所提供的生态系统足以应对上述三种场景, 即同时支持批处理、交互式查询和流数据处理 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.2 Spark生态系统 Spark的生态系统主要包含了Spark Core、Spark SQL、Spark Streaming( Structured Streaming )、MLLib和GraphX 等组件 图BDAS架构 Spark生态系统已经成为伯克利数据分析软件栈BDAS(Berkeley Data Analytics Stack)的重要组成部分 《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 3.2 Spark生态系统 应用场景 时间跨度 其他框架 Spark生态系统中的组件 复杂的批量数据处 理 小时级 MapReduce、Hive Spark 基于历史数据的交 互式查询 分钟级、秒级Impala、Dremel、 Drill Spark SQL 基于实时数据流的 数据处理 毫秒、........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题