赞
踩
最近遇到的一个问题,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脚本。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。