小编给大家分享一下spark jobserver源码的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
spark jobserver的特征:
建议大家可以从Spark jobserver的bin目录下手,比如server_start.sh脚本,该脚本本身就是一个spark 任务提交脚本比较好的范例。
#!/usr/bin/env bash
# Script to start the job server
# Extra arguments will be spark-submit options, for example
# ./server_start.sh --jars cassandra-spark-connector.jar
#
# Environment vars (note settings.sh overrides):
# JOBSERVER_MEMORY - defaults to 1G, the amount of memory (eg 512m, 2G) to give to job server
# JOBSERVER_CONfig - alternate configuration file to use
# JOBSERVER_FG - launches job server in foreground; defaults to forking in background
set -e
get_abs_script_path() {
pushd . >/dev/null
cd "$(dirname "$0")"
appdir=$(pwd)
popd >/dev/null
}
get_abs_script_path
set -a
. $appdir/setenv.sh
set +a
GC_OPTS_SERVER="$GC_OPTS_BASE -Xloggc:$appdir/$GC_OUT_FILE_NAME"
MAIN="spark.jobserver.JobServer"
PIDFILE=$appdir/spark-jobserver.pid
if [ -f "$PIDFILE" ] && kill -0 $(cat "$PIDFILE"); then
echo 'Job server is already running'
exit 1
fi
cmd='$SPARK_HOME/bin/spark-submit --class $MAIN --driver-memory $JOBSERVER_MEMORY
--conf "spark.executor.extrajavaoptions=$LOGGING_OPTS"
--driver-java-options "$GC_OPTS_SERVER $JAVA_OPTS_SERVER $LOGGING_OPTS $CONfig_OVERRIDES"
$@ $appdir/spark-job-server.jar $conffile'
if [ -z "$JOBSERVER_FG" ]; then
eval $cmd > $LOG_DIR/server_start.log 2>&1 < /dev/null &
echo $! > $PIDFILE
else
eval $cmd
fi
可以看到熟悉的spark-submit,入口函数就是spark.jobserver.JobServer的main函数,浪尖就不在这里展开了。
spark jobserver的大致架构如下图所示,大家也可以参照下图所示的思路提示去阅读,球友的话也可以去星球里找寻我周么发出来的提示。
以上是“spark jobserver源码的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程之家行业资讯频道!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。