为了简化应用程序提交的复杂性,Spark提供了各种应用程序提交的统一入口,即spark-submit脚本,应用程序的提交都间接或直接地调用了该脚本。下面简单分析几个脚本,包含:./bin/pyspark、./bin/sparkR、./bin/spark-shell、./bin/spark-sql、./bin/run-exam-ple,以及所有脚本最终都调用到的一个执行Java类的脚本./bin/spark-class。
1.脚本spark-shell
通过该脚本可以打开使用Scala语言进行开发和调试的交互式界面,脚本代码如下。
对应第4行和第8行代码,调用了应用程序提交脚本spark-submit。脚本spark-shell的基本用法如下。
其他的脚本类似,下面分别针对各个脚本的用法(具体用法可查看脚本的帮助信息,比如通过--help选项来获取)与关键执行语句等进行简单解析。
说明:要了解如何使用工具(如脚本),最根本的是先查看其帮助信息,然后在此基础上进行扩展。
2.脚本./bin/pyspark
通过该脚本可以打开使用Python语言开发和调试的交互式界面。
1)该脚本的用法如下。
2)该脚本的执行语句如下。
3.脚本./bin/sparkR
通过该脚本可以打开使用SparkR语言开发和调试的交互式界面。
1)该脚本的用法如下。
2)该脚本的执行语句如下。
4.脚本./bin/spark-sql
通过该脚本可以打开使用Spark Sql语言开发和调试的交互式界面。(www.xing528.com)
1)该脚本的用法如下。
2)该脚本的执行语句如下。
5.脚本./bin/run-example
可以通过该脚本运行Spark自带的案例代码,该脚本中会自动补全案例类的路径。
1)该脚本的用法如下。
2)该脚本的执行语句如下。
6.脚本./bin/spark-submit
./bin/spark-submit是提交Spark应用程序最常用的一个脚本。从前面各个脚本的解析可以看出,各个脚本最终都调用了./bin/spark-submit脚本。
1)用法。该脚本的用法需要从源代码中获取,具体源代码位置参考SparkSubmitArgu-ments类的方法printUsageAndExit,代码如下。
2)该脚本的执行语句如下。
7.脚本./bin/spark-class
该脚本是所有其他脚本最终都调用到的一个执行Java类的脚本。其中关键的执行语句如下。
其中,负责运行的RUNNER变量设置如下。
在脚本中,LAUNCH_CLASSPATH变量对应了Java命令运行时所需的classpath信息。而最终Java命令启动的类是org.apache.spark.launcher.Main,Main类的入口函数main会根据输入参数构建出最终执行的命令,即这里返回的${CMD[@]}信息,然后通过exec执行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。