Spark调优之旅<一>
来源:互联网 发布:淘宝助理批量修改 编辑:程序博客网 时间:2024/06/07 19:06
问题说明
1:spark-shell启动时重复提示:executor updated:app-2016*** is now Running
executor updated:app-2016*** is now Loading
executor updated:app-2016*** is now Exited(Command exited with code 1)
2:跑一个100M以内的程序(简单的Collect())会提示java.lang.OutOfMemoryError: GC overhead limit exceeded
针对这两个问题,进行参数调整,从而达到解决问题的目的。
问题解决
针对问题1:
首先查看日志信息,发现日志中出现了:java.lang.OutOfMemoryError: Unable to create new native thread,出现这个问题,一般都是因为用户的最大线程数被做了限制,我们可以使用命令ulimit -a查看相关信息,在这里我们可以看到如下的信息:
max user processes(-u) 1024
open files(-n)65535
... .....
可以看到用户最大线程数为1024,这里太小,需要做改动。使用命令ulimit -u 131072进行设置。之后启动正常。
针对这里的设置可以参考下面这篇文章,后面可能还会用得到。
http://stackoverflow.com/questions/21515463/how-to-increase-maximum-file-open-limit-ulimit-in-ubuntu/24339812
https://www.ibm.com/support/knowledgecenter/zh/SSYKE2_8.0.0/com.ibm.java.lnx.80.doc/user/ulimits.html
OK!再次启动,正常。
针对问题2:
问题2应该是经常能碰到的问题,出现这类问题,几乎都是跟内存有一定的关系,有可能是内存没有配置好。
这里我的环境是:
spark1.4
Scala2.10.4
JDK1.7
Hadoop2.7.2
然后进入到spark1.4/conf下的配置文件中,查看相关的内存配置:
SPARK_WORKER_CORES=10
SPARK_WORKER_INSTANCES=2
SPARK_WORKER_MEMORY=100G
...
这里请注意,INSTANCES数量,这个时候总的核数是:SPARK_WORKER_CORES*SPARK_WORKER_INSTANCES=10*2*(集群中服务器数量)
总的内存数是:SPARK_WORKER_MEMORY*SPARK_WORKER_INSTANCES=100g*2*(集群中服务器数量)
注意查看是否到了最大的内存数。
然后还有一个比较重要的概念:
SPARK_EXECUTOR_MEMORY,由于我在跑程序的时候没有进行设置,所以集群按照默认配置(512M)进行了配置。但是由于我们的数据量超过了这么大,所以这个时候会报错。
在这里我们做如下设置,在spark/conf下修改spark-env.sh文件
export SPARK_EXECUTOR_MEMORY=100g
然后重新启动spark集群,任务就能够跑出来了。
0 0
- Spark调优之旅<一>
- Spark学习之旅(一)SortBy
- Spark 开发调优(一)
- Spark性能调优(一)
- Spark学习之Spark调优与调试(7)
- Spark调优之Tuning Spark(Part 1)
- Spark调优之Tuning Spark(Part 2)
- Spark调优之开发调优
- Spark调优之资源调优
- (一) spark源码理解之SparkContext
- Spark源码阅读笔记之Broadcast(一)
- Spark MLlib之机器学习(一)
- spark基础知识之搭建环境<一>
- 一分钟吃透spark 之 TaskScheduler
- Spark之数据倾斜(一)
- spark性能调优之分配资源
- Spark调优之Shuffle调优
- Spark---性能调优之资源调优篇
- JavaWEB前端JS向服务器端发送对象
- opengles绘制天空盒
- CNN人脸关键点检测
- android 6.0
- burpsuite1.6安装使用方法详解
- Spark调优之旅<一>
- 查询数据库中重复记录的方法
- 【项目3 - 括号的匹配】
- php 如何防止不同项目的 session key冲突
- AndroidStudio导入新项目一直卡在Building gradle project info的解决解决方案
- Bitmap二次采样
- of_device_id
- jquery插件实现图片可拖动的购物车代码
- uibuuton 折行显示 主标题,副标题