我正在运行bin/run-example ml.ImputerExample
。我知道这会转换为spark-submit --name MyApp --class MyMainClass --master local[2] myapplication.jar
之类的东西。
但它变得如此令人兴奋?我已经看了bin/run-example
,但没有找到答案。 bin/run-example
if [ -z "${SPARK_HOME}" ]; then
source "$(dirname "$0")"/find-spark-home
fi
export _SPARK_CMD_USAGE="Usage: ./bin/run-example [options] example-class [example args]"
exec "${SPARK_HOME}"/bin/spark-submit run-example "$@"
答案 0 :(得分:1)
这是bin/run-example ml.ImputerExample
命令转换为:
${JAVA_HOME}/jre/bin/java -cp ${SPARK_HOME}/conf/:${SPARK_HOME}/jars/* -Xmx1g org.apache.spark.deploy.SparkSubmit --jars ${SPARK_HOME}/examples/jars/scopt_2.11-3.3.0.jar,${SPARK_HOME}/examples/jars/spark-examples_2.11-2.2.0.jar --class org.apache.spark.examples.ml.ImputerExample spark-internal
您可以通过回显exec
${SPARK_HOME}/bin/spark-class
命令来验证这一点
答案 1 :(得分:1)
使用Spark SPARK_PRINT_LAUNCH_COMMAND 环境变量的隐藏功能,一旦设置为任何内容,就会将整个Spark命令打印到标准输出。
$ SPARK_PRINT_LAUNCH_COMMAND=1 ./bin/run-example hello
Spark Command: /Library/Java/JavaVirtualMachines/Current/Contents/Home/bin/java -cp /Users/jacek/dev/oss/spark/conf/:...
========================================
请参阅最终从Spark的shell脚本执行的org.apache.spark.launcher.Main。
答案 2 :(得分:0)
spark-submit生成一个命令来触发Java的执行。看看Spark Code。
解析的一个关键入口点
./发射/ SRC /主/ JAVA /组织/阿帕奇/火花/发射器/ SparkSubmitCommandBuilder.java:70
。这里参数run-example用于为Spark中的命令构建器定义一个参数,然后你可以跟进如何在同一个类中解析执行的参数如下。