spark各类节点启动JVM设置

最近遇到的一个问题,spark job history 经常很卡,看了下内存情况。默认是看了1G,-Xmx1g.

仔细研究它的启动脚本,死活没看到哪里设置了这个1G的内存大小,只能通过bash -x 的方式来定位问题。

bash -x /data/service/spark//bin/spark-class org.apache.spark.deploy.history.HistoryServer

发现启动的时候是通过 org.apache.spark.launcher.Main 这个类来初始化,具体是在SparkClassCommandBuilder中初始化。

找到找到了恶心的初始化方式,为什么不在shell中设置???? 非要看代码才知道是怎么搞的。

在spark-env.sh 里面添加

export SPARK_DAEMON_MEMORY=”8g”

问题解决

org.apache.spark.deploy.master.Master

SPARK_DAEMON_JAVA_OPTS: 设置通用JVM参数

SPARK_MASTER_OPTS : 设置master 参数

SPARK_DAEMON_MEMORY : JVM启动内存

org.apache.spark.deploy.worker.Worker

SPARK_DAEMON_JAVA_OPTS:设置通用JVM参数

SPARK_WORKER_OPTS : 执行节点参数

SPARK_DAEMON_MEMORY :JVM启动内存

org.apache.spark.deploy.history.HistoryServer

SPARK_DAEMON_JAVA_OPTS

SPARK_HISTORY_OPTS

SPARK_DAEMON_MEMORY:JVM启动内存

org.apache.spark.executor.CoarseGrainedExecutorBackend

SPARK_EXECUTOR_OPTS

SPARK_EXECUTOR_MEMORY : JVM启动内存

org.apache.spark.deploy.mesos.MesosClusterDispatcher

SPARK_DAEMON_JAVA_OPTS

org.apache.spark.deploy.ExternalShuffleService

SPARK_DAEMON_JAVA_OPTS

SPARK_SHUFFLE_OPTS

SPARK_DAEMON_MEMORY

其它

SPARK_JAVA_OPTS

SPARK_DRIVER_MEMORY:JVM启动内存

内存的设置代码

String mem = firstNonEmpty(memKey != null ? System.getenv(memKey) : null, DEFAULT_MEM);
cmd.add("-Xmx" + mem);

真的不感觉这种方式好,业界通用的做法是shell或者是pyhon脚本。

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>