- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
黄洁:Intel Spark应用优化和实践经验发表于2015-05-29 00:21作者黄洁大数据SparkIntel黄洁摘要:黄洁就Spark的内存管理、IO提升和计算优化3个方面进行了详细讲解。黄洁表示,对比MapReduce,Spark擅长于复杂的机器学和图的计算、流处理等多种业务场景。【编者按】干货满满的2015 OpenStack技术大会、2015 Spark技术峰会、2015 Container技术峰会以实力赢得所有观众的认可。在Spark峰会上,英特尔大数据技术中心研发经理黄洁就Spark的内存管理、IO提升和计算优化3个方面进行了详细讲解,以下为演讲概述。下为演讲概述我来自Intel大数据技术中心,整个技术中心在中国、美国、印度都有相应的开发人员,团队致力于大数据顶尖项目的研究,主要包括Spark、Hadoop、Hive,有20多位Apache的Committers。团队的主要贡献集中于Spark,在Spark进入Apache时就开始合作,做出了功能、性能、易用性等方面的一些贡献。目前我们在整个Spark开源社区都是名列前茅的。从自身角度来讲,团队很早之前就涉及到了对于Hadoop MapReduce的一些工作,在这个过程中我们发现,MapReduce天生存在一定的性能缺陷。无论是任何一个成功的大数据框架还是平台,只有走进真实工业性用户才能得到很好的效果和反馈。我们跟国内顶尖的互联网公司合作,使用Spark以及Spark软件开发真实的大数据应用,在这个过程中收获了很多经验,也希望把这些经验分享给合作伙伴和社区爱好者。应用分类很多人会发出这样的疑问,Spark到底适用于哪些场景?我们在哪些场景适合使用Spark ,或者我们应该首选Spark?从我们合作伙伴来讲,可以分为以下三类应用。复杂的机器学和图的计算。比如我们和很多合作伙伴做了一些社交网络的分析,然后通过分享给朋友从中分析出用户的喜好,或者通过更远朋友的关系获得一些信息。又比如说Community Detection,即社区挖掘或者社区发现,这也是一类。这部分用户大部分体现在对开发方式持有比较开放的态度,因为他原来在Hadoop并没有寻求到比较好的解决方案,所以直接选择用Spark的各种API或者操作原语开发一些算法的应用。Complex、Interactive、OLAP/BI等。目前,基本上70%或者80%的项目都是基于MapReduce,所以迁移起来比较方便。这部分用户在应用层上只需做很小的改动,或者甚至无需改动,往往可以发现性能两倍或者五六倍的提升(具体情况取决应用案例本身),所以他们很愿意迁移到Spark上来。Stream Processing。作为一个比较完整的下一代大数据处理平台,Spark不仅提供了前面两种应用功能,也提供了流处理。经验分享从这些应用里我们得到很多经验,下面和大家分享一下。Spark性能,这个数据是基于许多真实应用基础,对比了Spark的原型开发和原先Hadoop所跑的性能,提升基本上达到5~6倍,有的甚至能达到百倍性能提升。同时,有一些应用在Spark是可以实现的(或者至少可以开发),但在MapReduce这个平台上没有办法实现或者执行。所以对这部分的用户来说,这部分性能或者功能优势差别更大。这也是大家用Spark的原因。除此之外,还有一半的人是因为Spark的易用性和Spark公共平台提供各种类型大数据的应用所带来的优点。就像上文提到的这三种类型在Spark部署环境上都可以达到一定的需求。同时,Spark还提供了非常多的语言,以及比较丰富的简单算子。例如现在我们也在跟社区一起合作,将为Spark提供R语言接口。当下项目已经合并到了Spark的主干版本。所以从这两方面来说,很多人都非常欢迎Spark。虽然Spark非常美好,但就真的没有问题了吗?我们发现Spark还需要更加完善,需要更多人的贡献和努力。我们也发现在比如可靠性、易用性等方面还需更多完善。所以本文主要的内容就是希望从各个方面通过案例说明怎样提升Spark的应用体验。案例分析之前的总结可能很抽象,希望通过下面的案例能够带来更具象的认识,了解怎样通过这三个方面构建更加平衡的系统,获得更加优异的性能。管理内存一提到Spark,首先想起的就是Spark的优势在于内存计算,所以第一条就是怎样管理内存,使内存更加高效。当与很多合作伙伴合作时,我们发现图计算场景促进了Spark的火爆:在图计算里最大的特性是迭代式计算,而Spark能够把计算出来的结果缓存在内存,之后迭代可以直接读取内存数据,从而显著地提升了性能。也就是说迭代与迭代的依赖关系是非常紧密的,但有时前一轮迭代产生的数据在后一轮迭代时就不再被使用了。?图1 程序优化前的缓存对比如图1所示,这张表格是真实应用的例子,第一
文档评论(0)