您好,登錄后才能下訂單哦!
小編給大家分享一下spark jobserver源碼的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
spark jobserver的特征:
1.“Spark as Service”:針對job和contexts的各個方面提供了REST風格的api接口進行管理2. 支持SparkSQL、Hive、StreamingContext/jobs以及定制job contexts!3. 通過集成 Apache Shiro 來支持 LDAP 權限驗證4. 為了隔離每個sparkcontext單獨一個jvm5. 通過長期運行的job contexts支持亞秒級別低延遲的任務6. 可以通過結束 context 來停止運行的作業(job)7. 分割 jar 上傳步驟以提高 job 的啟動速度8. 異步和同步的 job API,其中同步 API 對低延時作業非常有效9. 支持Standalone Spark和Mesos、yarn10. Job和jar信息通過一個可插拔的DAO接口來持久化11. 對RDD或DataFrame對象命名并緩存,通過該名稱獲取RDD或DataFrame。這樣可以提高對象在作業間的共享和重用
建議大家可以從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源碼的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。