由GC导致的OOM表现为:java.lang.OutOfMemoryError: GC overhead limit exceeded 参数:--conf spark.executor.extraJavaOptions 这个参数只能在提交Spark作业时通过 spark-submit 命令的 --conf 选项来配置,或者在Spark应用程序的代码中通过 SparkConf 对象来设置。这是因为该
String master = config.getString("spark.master"); 设置extraJavaOptions:通过配置对象,可以设置extraJavaOptions参数的值。例如,可以使用withValue方法设置extraJavaOptions参数的值为-XX:+UseG1GC: 代码语言:txt 复制 Config updatedConfig = config.withValue("spark.extraJavaOptions", ConfigValueFactory.from...
设置Executor内存。 参数:spark.executor.memory。 参数说明:代表每个Executor的内存。通常与spark.executor.cores保持1:4设置即可,例如设置spark.executor.cores为1,spark.executor.memory为4 GB。当Executor抛出java.lang.OutOfMemoryError异常时,需要调大该值。
In Spark UI > Environment > Spark Properties, select and copy all of the properties set by default for spark.executor.extraJavaOptions. Click Edit. In the Spark config text area (Clusters > cluster-name > Advanced Options > Spark), paste the default settings. Append the new configuration set...
/home/rvenka21/mycluster.conf/ -Xmx20G -javaagent:/home/rvenka21/jvm-profiler-1.0.0.jar=reporter=com.uber.profiling.reporters.ConsoleOutputReporter org.apache.spark.deploy.SparkSubmit --conf spark.driver.memory=20G --conf spark.executor.extraJavaOptions=-javaagent:/home/rvenka21/jvm-profiler...
conf文件设置。堆内存可以通过spark.executor.memory设置
2、在spark-submit脚本中,增加一个配置即可,--conf"spark.executor.extraJavaOptions=-verbose:gc -XX:+PrintGCDetails-XX:+PrintGCTimeStamps"。 但是要记住,这里虽然会打印出Java虚拟机的垃圾回收的相关信息,但是是输出到了worker上的日志中,而不是driver的日志中。
1.5 spark.executor.extraJavaOptions Jvm参数值,我们有时候发现我们的job突然跑的很慢,一方面可以去看看Yarn上的资源分配情况,另一方面也可以没看看是不是有大量的时间用来做GC导致的。 例:最大的堆外内存:spark.executor.extraJavaOptions="-XX:MaxDirectMemorySize=1G" ...
-- 配置项 -- 当前默认关闭对于外表和外部project的支持 spark.sql.odps.enableExternalTable=true -- 指定spark版本 spark.hadoop.odps.spark.version=spark-2.4.5-odps0.34.0 -- 如果出现中文乱码,需要加如下配置 spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 spark.driver...
//注:设置executor运行时需要的环境变量 val extraJavaOpts = sc.conf.getOption("spark.executor.extraJavaOptions") .map(Utils.splitCommandString).getOrElse(Seq.empty) val classPathEntries = sc.conf.getOption("spark.executor.extraClassPath").toSeq.flatMap { cp => ...