天天看点

spark-submit的执行原理

Created by Wang, Jerry on Aug 08, 2015

$ cd dirname $0 和PWD%/* shell变量的一些特殊用法

在命令行状态下单纯执行 $ cd dirname $0 是毫无意义的。因为他返回当前路径的"."。

这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。

在/home/admin/test/下新建test.sh内容如下:

cd dirname $0

echo pwd

然后返回到/home/admin/执行

sh test/test.sh

运行结果:

/home/admin/test

这样就可以知道一些和脚本一起部署的文件的位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这样脚本的可移植性就提高了,扔到任何一台服务器,(如果是部署脚本)都可以执行。

$0当前Shell程序的文件名

dirname $0,获取当前Shell程序的路径

cd dirname $0,进入当前Shell程序的目录

实际上是直接执行pwd命令:

spark-submit的执行原理

使用printf 打印变量的值:

spark-submit的执行原理

执行结果:

spark-submit的执行原理

实际上是调用bin folder下的spark-class(也是一个脚本), 输入参数为org.apache.spark.deploy.sparkSubmit:

spark-submit的执行原理

–help只显示help:

spark-submit的执行原理

真正的执行:

spark-submit的执行原理