如何通过命令行界面将作业(jar)提交到Azure Spark集群?

时间:2016-10-31 22:06:06

标签: azure apache-spark hdinsight azure-cli

我是HDInsight Spark的新手,我正在尝试运行一个用例来了解Azure Spark集群中的工作原理。这是我到目前为止所做的。

  1. 能够创建蔚蓝的火花群。

  2. 按照链接create standalone scala application to run on HDInsight Spark cluster中所述的步骤创建jar。我使用了与链接中给出的相同的scala代码。

  3. ssh到头节点

  4. 使用链接using azure CLI with azure storage

  5. 将jar上传到blob存储
  6. 将zip复制到机器上 hadoop fs -copyToLocal

  7. 我已经检查过jar会上传到headnode(机器)。 我想运行该jar并获得结果,如中所示的链接中所述 上面的第2点。 下一步将是什么?如何使用命令行界面提交spark作业并获得结果?

2 个答案:

答案 0 :(得分:2)

例如,考虑到您为程序Submit.jar创建了jar。为了将其提交给具有依赖性的群集,可以使用以下语法。

spark-submit --master yarn --deploy-mode cluster --packages "com.microsoft.azure:azure-eventhubs-spark_2.11:2.2.5" --class com.ex.abc.MainMethod "wasb://space-hdfs@yourblob.blob.core.windows.net/xx/xx/submit.jar" "param1.json" "param2"

这里--packages:是要包含对程序的依赖关系,可以使用--jars选项,然后使用jar路径。 --jars "path/to/dependency/abc.jar"

-class:程序的主要方法 之后,为您的程序jar指定路径。 您可以根据需要传递参数,如上所示

答案 1 :(得分:0)

提交火花罐的几个选项:

1)如果您想在headnode上提交作业,可以使用spark-submit 见Apache submit jar documentation

2)更容易的选择是在将jar上传到wasb存储器后通过livy提交spark jar。 见submit via livy doc。如果你这样做,你可以跳过第5步。