从bash中获取参数从文本文件中启动spark作业

时间:2016-05-19 11:31:04

标签: bash apache-spark

我正在运行一个我发布的独立spark实例:

/usr/local/spark-1.6.0/bin/spark-submit --class "run.Main" --conf spark.driver.userClassPathFirst=true --driver-memory 45G --jars $(echo /var/myapp/lib/*.jar | tr ' ' ',') mycoolapp.jar "local[6]" "parA" "parB" "parC" "parD"

我手动做的是为特定的" parA"值。

然后,一旦完成,我重新启动它为" parA"的新值。我有所有可能的" parA" .txt文件中列出的值,我想知道是否有可能为我编写一个bash脚本,即启动脚本并自动选择下一个" parA"来自文本文件的值。

当然,我需要在启动下一个之前等待完成Spark工作,因为我在一台机器上使用Spark,而且每个工作几乎占用了机器上的所有RAM ......

任何关于此的指导都非常受欢迎。

1 个答案:

答案 0 :(得分:1)

像这样的东西。您只需迭代一组参数。而且您无需担心如何等到作业结束,因为提交操作是同步的。

#!/bin/bash

declare -a parAs=('parA0' 'parA1' 'parA2')

for parA in "${parAs[@]}"; do
    echoString=$(eval echo /var/myapp/lib/*.jar | tr ' ' ',')
    ./bin/submit ....--jars $echoString...... $parA .....
done