spark参数配置调优
2013-09-19 22:52
411 查看
SPARK配置参数的两个地方:
1. $SPARK_HOME/conf/spark-env.sh 脚本上配置。 配置格式如下:
export SPARK_DAEMON_MEMORY=1024m
2. 编程的方式(程序中在创建SparkContext之前,使用System.setProperty(“xx”,“xxx”)语句设置相应系统属性值),即在spark-shell下配置
如:scala> System.setProperty("spark.akka.frameSize","10240m")
一、环境变量spark-env.sh配置项
SCALA_HOME #指向你的scala安装路径
MESOS_NATIVE_LIBRARY #如果你要在Mesos上运行集群的话
SPARK_WORKER_MEMORY #作业可使用的内存容量,默认格式1000M或者 2G (默认: 所有RAM去掉给操作系统用的1 GB);每个作业独立的内存空间由SPARK_MEM决定。
SPARK_JAVA_OPTS #添加JVM选项。你可以通过-D来获取任何系统属性 eg: SPARK_JAVA_OPTS+="-Dspark.kryoserializer.buffer.mb=1024"
SPARK_MEM #设置每个节点所能使用的内存总量。他们应该和JVM‘s -Xmx选项的格式保持一致(e.g.300m或1g)。注意:这个选项将很快被弃用支持系统属性spark.executor.memory,所以我们推荐将它使用在新代码中。
SPARK_DAEMON_MEMORY #分配给Spark master和worker守护进程的内存空间(默认512M)
SPARK_DAEMON_JAVA_OPTS #Spark master和worker守护进程的JVM选项(默认:none)
二、System Properties
spark.akka.frameSize: 控制Spark中通信消息的最大容量 (如 task 的输出结果),默认为10M。当处理大数据时,task 的输出可能会大于这个值,需要根据实际数据设置一个更高的值。如果是这个值不够大而产生的错误,可以从 worker的日志 中进行排查。通常
worker 上的任务失败后,master 的运行日志上出现”Lost TID: “的提示,可通过查看失败的 worker 的日志文件($SPARK_HOME/worker/下面的log文件) 中记录的任务的 Serialized size of result 是否超过10M来确定。
spark.default.parallelism: 控制Spark中的分布式shuffle过程默认使用的task数量,默认为8个。如果不做调整,数据量大时,就容易运行时间很长,甚至是出Exception,因为8个task无法handle那么多的数据。 注意这个值也不是说设置得越大越好。
spark.local.dir:Spark 运行时的临时目录,例如 map 的输出文件,保存在磁盘的 RDD 等都保存在这里。默认是 /tmp 这个目录,而一开始我们搭建的小集群上 /tmp 这个目录的空间只有2G,大数据量跑起来就出 Exception (”No space left on device”)了。
参考:
http://rdc.taobao.org/?p=533
http://spark.incubator.apache.org/docs/0.7.3/configuration.html
https://github.com/amplab/shark/blob/master/conf/shark-env.sh.template
/article/6196536.html
http://www.07net01.com/linux/Sparkdulibushumoshi_545676_1374481945.html
https://groups.google.com/forum/#!searchin/spark-users/java.lang.OutOfMemoryError$3A$20GC$20overhead$20limit
1. $SPARK_HOME/conf/spark-env.sh 脚本上配置。 配置格式如下:
export SPARK_DAEMON_MEMORY=1024m
2. 编程的方式(程序中在创建SparkContext之前,使用System.setProperty(“xx”,“xxx”)语句设置相应系统属性值),即在spark-shell下配置
如:scala> System.setProperty("spark.akka.frameSize","10240m")
一、环境变量spark-env.sh配置项
SCALA_HOME #指向你的scala安装路径
MESOS_NATIVE_LIBRARY #如果你要在Mesos上运行集群的话
SPARK_WORKER_MEMORY #作业可使用的内存容量,默认格式1000M或者 2G (默认: 所有RAM去掉给操作系统用的1 GB);每个作业独立的内存空间由SPARK_MEM决定。
SPARK_JAVA_OPTS #添加JVM选项。你可以通过-D来获取任何系统属性 eg: SPARK_JAVA_OPTS+="-Dspark.kryoserializer.buffer.mb=1024"
SPARK_MEM #设置每个节点所能使用的内存总量。他们应该和JVM‘s -Xmx选项的格式保持一致(e.g.300m或1g)。注意:这个选项将很快被弃用支持系统属性spark.executor.memory,所以我们推荐将它使用在新代码中。
SPARK_DAEMON_MEMORY #分配给Spark master和worker守护进程的内存空间(默认512M)
SPARK_DAEMON_JAVA_OPTS #Spark master和worker守护进程的JVM选项(默认:none)
二、System Properties
Property Name | Default | Meaning |
spark.executor.memory | 512m | Amount of memory to use per executor process, in the same format as JVM memory strings (e.g. `512m`, `2g`). |
spark.akka.frameSize | 10m | Maximum message size to allow in "control plane" communication (for serialized tasks and task results), in MB. Increase this if your tasks need to send back large results to the driver (e.g. usingcollect()on a large dataset). |
spark.default.parallelism | 8 | Default number of tasks to use for distributed shuffle operations (groupByKey, reduceByKey, etc) when not set by user. |
worker 上的任务失败后,master 的运行日志上出现”Lost TID: “的提示,可通过查看失败的 worker 的日志文件($SPARK_HOME/worker/下面的log文件) 中记录的任务的 Serialized size of result 是否超过10M来确定。
spark.default.parallelism: 控制Spark中的分布式shuffle过程默认使用的task数量,默认为8个。如果不做调整,数据量大时,就容易运行时间很长,甚至是出Exception,因为8个task无法handle那么多的数据。 注意这个值也不是说设置得越大越好。
spark.local.dir:Spark 运行时的临时目录,例如 map 的输出文件,保存在磁盘的 RDD 等都保存在这里。默认是 /tmp 这个目录,而一开始我们搭建的小集群上 /tmp 这个目录的空间只有2G,大数据量跑起来就出 Exception (”No space left on device”)了。
参考:
http://rdc.taobao.org/?p=533
http://spark.incubator.apache.org/docs/0.7.3/configuration.html
https://github.com/amplab/shark/blob/master/conf/shark-env.sh.template
/article/6196536.html
http://www.07net01.com/linux/Sparkdulibushumoshi_545676_1374481945.html
https://groups.google.com/forum/#!searchin/spark-users/java.lang.OutOfMemoryError$3A$20GC$20overhead$20limit
相关文章推荐
- Spark配置参数调优
- Spark配置参数调优
- Spark调优-参数及配置
- 大数据Spark “蘑菇云”行动第99课:Hive性能调优之企业级Mapper和Reducer调优深度细节解密 参数配置
- JVM 参数配置及详解 -Xms -Xmx -Xmn -Xss 调优总结
- Ceph性能优化 之 配置参数调优
- Spark参数配置
- 一次tomcat配置参数调优Jmeter压力测试记录前后对比
- Spark性能相关参数配置 之 Storage相关配置参数
- Spark参数配置
- eclipse 运行调优(JVM参数配置)
- JVM参数调优(虚拟机参数配置)
- JVM参数配置及详解 -Xms -Xmx -Xmn -Xss 调优总结
- Spark 性能相关参数配置详解-Storage篇
- JVM调优之Tomcat启动参数配置及详解(一)
- Spark Shuffle原理、Shuffle操作问题解决和参数调优
- jvm调优具体参数配置
- Spark配置参数详解
- Spark性能优化:JVM参数调优
- Hadoop与Spark常用配置参数总结