spark优化】的更多相关文章

Spark优化一则 - 减少Shuffle 看了Spark Summit 2014的A Deeper Understanding of Spark Internals,视频(要***)详细讲解了Spark的工作原理,Slides的45页给原始算法和优化算法. 破砂锅用自己3节点的Spark集群试验了这个优化算法,并进一步找到更快的算法.测试数据是Sogou实验室的日志文件前10000000条数据.目标是对日志第2列数据,按照第一个字母合并,得到每个首字母有几条记录. 所有的方案都重新启动Spar…
  spark优化:在一定范围之内,增加资源与性能的提升是成正比的. 因此,       一个cpu core  执行一个task线程. task数: 若有 cpu core 2个.num-executor 2个  那么task有4个 公式:task =  num-executor * cpu core .   cpu core  共有50个.一个程序一般设置为总数量的1/3或1/2   driver : 分配task 到每个work                        从yarn申请…
概序: 要减少内存的消耗,除了使用高效的序列化类库以外,还有一个很重要的事情,就是优化数据结构.从而避免Java语法特性中所导致的额外内存的开销,比如基于指针的Java数据结构,以及包装类型. 有一个关键的问题,就是优化什么数据结构?其实主要就是优化你的算子函数,内部使用到的局部数据,或者是算子函数外部的数据.都可以进行数据结构的优化.优化之后,都会减少其对内存的消耗和占用. 一.如何优化数据结构?对集合的替换: 1.优先使用数组以及字符串,而不是集合类.也就是说,优先用array,而不是Arr…
1:“物尽其用”,但给spark分配多个机器后,先需配置spark-submit shell如下: /usr/local/spark/bin/spark-submit \ --class com.spark.test.Top3UV \ --num-executors 3 \ --driver-memory 100m \ --executor-memory 100m \ --executor-cores 3 \ --files /usr/local/hive/conf/hive-site.xml…
->>>配置参数优化 SparkConf sc = new SparkConf().setAppName("com.sp.test.GroupTop3").setMaster("local") .set("spark.shuffle.consolidateFiles", "true")//优化1:开启shuffleGroup,避免shuffleMapTask创建过多的bucket文件 //优化2:设置并行度(…
对于官方Programming Guides的GC优化一节做了阅读. 在这里记录一下我的理解,可能记录的比较混乱没有条理: 我理解其实GC优化的主要目的就是在你的任务执行中使用更少的内存,进行更少的gc回收,因为GC回收会使你的任务执行的更慢. 使用-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps可以在日志中观察你的程序执行过程中GC回收的情况.根据日志进行优化.例如你发现回收的过于频繁,那么就要看一下是不是你的程序和内存使用是否有问题…
一.Join原则 将条目少的表/子查询放在Join的左边.原因:在Join的reduce阶段,位于Join左边的表的内容会被加载进内存,条目少的表放在左边,可以减少发生内存溢出的几率. 小表关联大表:用MapJoin把小表全部加载到内存在map端Join,避免reducer处理.如: select /*+ MapJoin(user)*/ l.session_id,u.username from user u join page_views l on u.id = l.user_id 二.控制ma…
1.Spark调优背景 目前Zeppelin已经上线一段时间,Spark作为底层SQL执行引擎,需要进行整体性能调优,来提高SQL查询效率.本文主要给出调优的结论,因为涉及参数很多,故没有很细粒度调优,但整体调优方向是可以得出的. 环境:服务器600+,spark 2.0.2,Hadoop 2.6.0 2.调优结果 调优随机选取线上9条SQL,表横轴是调优测试项目,测试在集群空闲情况下进行,后一个的测试都是叠加前面测试参数.从数据可参数经过调优,理想环境下性能可提高50%到300% 3. 下面为…
我们知道,大部分Spark计算都是在内存中完成的,所以Spark的瓶颈一般来自于集群(standalone, yarn, mesos, k8s)的资源紧张,CPU,网络带宽,内存.Spark的性能,想要它快,就得充分利用好系统资源,尤其是内存和CPU.有时候我们也需要做一些优化调整来减少内存占用,例如将小文件进行合并的操作. 一.问题现象 我们有一个15万条总数据量133MB的表,使用SELECT * FROM bi.dwd_tbl_conf_info全表查询耗时3min,另外一个500万条总数…
一.Shuffle优化项 1.Shuffle优化配置 - spark.shuffle.file.buffer 默认值:32k 参数说明:该参数用于设置shuffle write task的BufferedOutputStream的buffer缓冲大小.将数据写到磁盘文件之前,会先写入buffer缓冲中,待缓冲写满之后,才会溢写到磁盘. 调优建议:如果作业可用的内存资源较为充足的话,可以适当增加这个参数的大小(比如64k),从而减少shuffle write过程中溢写磁盘文件的次数,也就可以减少磁…