大数据技术原理与应用(第2版)全套PPT课件.ppt

大数据技术原理与应用(第2版)全套PPT课件.ppt

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

16.1Spark概述16.1.1Spark简介16.1.2Scala简介16.1.3Spark与Hadoop的比较16.1.1Spark简介Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序2013年Spark加入Apache孵化器项目后发展迅猛,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、Spark、Storm)Spark在2014年打破了Hadoop保持的基准排序纪录Spark/206个节点/23分钟/100TB数据Hadoop/2000个节点/72分钟/100TB数据Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度16.1.1Spark简介Spark具有如下几个主要特点:运行速度快:使用DAG执行引擎以支持循环数据流与内存计算容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过SparkShell进行交互式编程通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于AmazonEC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源16.1.1Spark简介图16-1谷歌趋势:Spark与Hadoop对比Spark如今已吸引了国内外各大公司的注意,如腾讯、淘宝、百度、亚马逊等公司均不同程度地使用了Spark来构建大数据分析应用,并应用到实际的生产环境中16.1.2Scala简介Scala是一门现代的多范式编程语言,运行于Java平台(JVM,Java虚拟机),并兼容现有的Java程序Scala的特性:Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统Scala语法简洁,能提供优雅的APIScala兼容Java,运行速度快,且能融合到Hadoop生态圈中Scala是Spark的主要编程语言,但Spark还支持Java、Python、R作为编程语言Scala的优势是提供了REPL(Read-Eval-PrintLoop,交互式解释器),提高程序开发效率16.1.3Spark与Hadoop的对比Hadoop存在如下一些缺点:表达能力有限磁盘IO开销大延迟高任务之间的衔接涉及IO开销在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务16.1.3Spark与Hadoop的对比Spark在借鉴HadoopMapReduce优点的同时,很好地解决了MapReduce所面临的问题相比于HadoopMapReduce,Spark主要具有如下优点:Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比HadoopMapReduce更灵活Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高Spark基于DAG的任务调度执行机制,要优于HadoopMapReduce的迭代执行机制16.1.3Spark与Hadoop的对比图16-2Hadoop与Spark的执行流程对比16.1.3Spark与Hadoop的对比图16-3Hadoop与Spark执行逻辑回归的时间对比使用Hadoop进行迭代计算非常耗资源Spark将数据载入内存后,之后的迭代计算都可以直接使用内存中的中间结果作运算,避免了从磁盘中频繁读取数据16.2Spark生态系统在实际应用中,大数据处理主要包括以下三个类型:复杂的批量数据处理:通常时间跨度在数十分钟到数小时之间基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间基于实时数据流的数据处理:通常时间跨度在数百毫秒到数秒之间当同时存在以上三种场景时,就需要同时部署三种不同的软件比如:MapReduce/Impala/Storm这样做难免会带来一些问题:不同场景之间输入输出数据无法做到无缝共享,通常需要进行数据格式的转换不同的软件需要不同的开发和维护团队,带来了较高的使用成本比较难以对同一个集群中的各个系统进行统一的资源协调和分配16.2Spark生态系统Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的生态系统既能够提供内存计算框架,也可以支持SQL即席查询、实时流式计算、机器学习和图计算等Spark可以部署在资源管

文档评论(0)

153****9532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6101234030000022

1亿VIP精品文档

相关文档