[Spark] - SparkCore程序优化总结】的更多相关文章

http://spark.apache.org/docs/1.6.1/tuning.html1) 代码优化 a. 对于多次使用的RDD,进行数据持久化操作(eg: cache.persist) b. 如果对同一个份数据进行操作,那么尽量公用一个RDD c. 优先使用reduceByKey和aggregateByKey取代groupByKey 原因:前两个API存在combiner,可以降低数据量:groupByKey可能存在OOM异常 d. 对于Executor使用到Driver中的变量的情况,…
作者:个推数据研发工程师 学长     1 业务背景   随着大数据的快速发展,业务场景越来越复杂,离线式的批处理框架MapReduce已经不能满足业务,大量的场景需要实时的数据处理结果来进行分析.决策.Spark Streaming是一种分布式的大数据实时计算框架,他提供了动态的,高吞吐量的,可容错的流式数据处理,不仅可以实现用户行为分析,还能在金融.舆情分析.网络监控等方面发挥作用.个推开发者服务--消息推送"应景推送"正是应用了Spark Streaming技术,基于大数据分析人…
概叙: 在任何分布式系统中,序列化都是扮演着一个重要的角色的.如果使用的序列化技术,在执行序列化操作的时候很慢,或者是序列化后的数据还是很大,那么会让分布式应用程序的性能下降很多.所以,进行Spark性能优化的第一步,就是进行序列化的性能优化. Spark自身默认就会在一些地方对数据进行序列化,比如Shuffle.还有就是,如果我们的算子函数使用到了外部的数据(比如Java内置类型,或者自定义类型),那么也需要让其可序列化. 而Spark自身对于序列化的便捷性和性能进行了一个取舍和权衡.默认,S…
我们首先提出这样一个简单的需求: 现在要分析某网站的访问日志信息,统计来自不同IP的用户访问的次数,从而通过Geo信息来获得来访用户所在国家地区分布状况.这里我拿我网站的日志记录行示例,如下所示: 1 121.205.198.92 - - [21/Feb/2014:00:00:07 +0800] "GET /archives/417.html HTTP/1.1" 200 11465 "http://shiyanjun.cn/archives/417.html/" &…
[大数据从入门到放弃系列教程]第一个spark分析程序 原文链接:http://www.cnblogs.com/blog5277/p/8580007.html 原文作者:博客园--曲高终和寡 *********************分割线********************** 由于新入职了一家公司,准备把我放进大数据的组里面 我此前对大数据,仅仅停留在听说过这个名词上,那么这次很快就要进入项目,一边我自己在学习,一边也把教程分享出来,避免后来之人踩我所踩过的坑 *************…
Spark排错与优化 http://blog.csdn.net/lsshlsw/article/details/49155087 一. 运维 1. Master挂掉,standby重启也失效 Master默认使用512M内存,当集群中运行的任务特别多时,就会挂掉,原因是master会读取每个task的event log日志去生成Sparkui,内存不足自然会OOM,可以在master的运行日志中看到,通过HA启动的master自然也会因为这个原因失败. 解决 增加Master的内存占用,在Mas…
并行度 对于*ByKey等需要shuffle而生成的RDD,其Partition数量依如下顺序确定:1. 方法的第二个参数 > 2. spark.default.parallelism参数 > 3. 所有依赖的RDD中,Partition最多的RDD的Partition的数量. 对于其他的RDD则其依赖于父RDD的分区个数.对于读取Hadoop文件的RDD,其默认的分区个数是HDFS块个数.同时textFile函数也接受参数,指定分区个数,但不能小于HDFS块个数——不使用HDFS块个数. 优…
性能调优相关的原理讲解.经验总结: 掌握一整套Spark企业级性能调优解决方案:而不只是简单的一些性能调优技巧. 针对写好的spark作业,实施一整套数据倾斜解决方案:实际经验中积累的数据倾斜现象的表现,以及处理后的效果总结. 调优前首先要对spark的作业流程清楚: Driver到Executor的结构: Master: Driver |-- Worker: Executor |-- job |-- stage |-- Task Task 一个Stage内,最终的RDD有多少个partitio…
Apache Spark由于其出色的性能.简单的接口和丰富的分析和计算库而获得了广泛的行业应用.与大数据生态系统中的许多项目一样,Spark在Java虚拟机(JVM)上运行.因为Spark可以在内存中存储大量数据,因此它主要依赖于Java的内存管理和垃圾收集(GC).但是现在,了解Java的GC选项和参数的用户可以调优他们的Spark应用程序的最佳性能.本文描述了如何为Spark配置JVM的垃圾收集器,并给出了实际的用例来解释如何调优GC,以提高Spark的性能.我们在调优GC时考虑关键因素,如…
只有满怀自信的人,能在任何地方都怀有自信,沉浸在生活中,并认识自己的意志. 前言 最近公司有一个生产的小集群,专门用于运行spark作业.但是偶尔会因为nn或dn压力过大而导致作业checkpoint操作失败进而导致spark 流任务失败.本篇记录从应用层面对spark作业进行优化,进而达到优化集群的作用. 集群使用情况 有数据的目录以及使用情况如下: 目录 说明 大小 文件数量 数据数量占比 数据大小占比 /user/root/.sparkStaging/applicationIdxxx sp…