![](/img/trans.png)
[英]Submitting Spark job in HDInsight cluster for secure enabled storage account
[英]Remotely execute a Spark job on an HDInsight cluster
我試圖從Microsoft Azure自動在HDInsight群集上啟動Spark作業。 我知道有幾種方法可以自動化Hadoop作業提交(由Azure本身提供),但到目前為止,我還沒有找到一種方法來遠程運行Spark作業,而無需使用主實例設置RDP。
有沒有辦法實現這個目標?
Spark-jobserver提供RESTful接口,用於提交和管理Apache Spark作業,jar和作業上下文。
https://github.com/spark-jobserver/spark-jobserver
我的解決方案是使用Scheduler和Spark-jobserver定期啟動Spark-job。
在撰寫本文時,似乎沒有正式的方法來實現這一目標。 然而,到目前為止,我已經能夠以某種方式使用Oozie shell工作流遠程運行Spark作業。 它只不過是一個補丁,但到目前為止它對我有用。 這些是我遵循的步驟:
<workflow-app name="myWorkflow" xmlns="uri:oozie:workflow:0.2">
<start to = "myAction"/>
<action name="myAction">
<shell xmlns="uri:oozie:shell-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>myScript.cmd</exec>
<file>wasb://myContainer@myAccount.blob.core.windows.net/myScript.cmd#myScript.cmd</file>
<file>wasb://myContainer@myAccount.blob.core.windows.net/mySpark.jar#mySpark.jar</file>
</shell>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
請注意,無法識別要在哪個HDInsight節點上執行腳本,因此有必要將它與Spark應用程序.jar一起放在wasb存儲庫中。 然后將其重定向到執行Oozie作業的本地目錄。
C:\apps\dist\spark-1.2.0\bin\spark-submit --class spark.azure.MainClass
--master yarn-cluster
--deploy-mode cluster
--num-executors 3
--executor-memory 2g
--executor-cores 4
mySpark.jar
有必要將.cmd和Spark .jar上傳到wasb存儲庫(此答案中未包含的進程),具體到工作流中指向的方向:
wasb://myContainer@myAccount.blob.core.windows.net/
powershell腳本非常取自官方Oozie的HDInsight教程。 由於它與我的方法幾乎完全相同,因此我不在此答案中包含腳本。
我在天藍色反饋門戶上提出了一個新的建議,表明需要官方支持遠程Spark作業提交。
2016年8月17日更新:我們的火花群集現在包括一個Livy服務器,它提供休息服務以提交火花作業。 您也可以通過Azure Data Factory自動執行spark作業。
原帖:1)目前不支持針對spark的遠程作業提交。
2)如果您希望每次都自動設置主設備(即每次執行時添加--master yarn-client),您可以使用以下配置在%SPARK_HOME \\ conf \\ spark-defaults.conf文件中設置值:
spark.master紗線客戶端
您可以在apache spark網站上找到有關spark-defaults.conf的更多信息。
3)如果要在部署時將其自動添加到spark-defaults.conf文件,請使用群集自定義功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.