2015-05-19 43 views
0

我在HDInsight上運行一個隨機森林算法,並帶有一個Python腳本。 我使用C#代碼創建了一個定製的HDInsight集羣。HDInsight上的Python

爲了運行腳本,我建立了一個到集羣的遠程桌面連接並從命令行運行它。

我想從c#代碼運行python腳本,因此我可以在完成後立即刪除羣集。

有沒有人知道如何做到這一點。

+0

查看Tao Li的鏈接http://stackoverflow.com/a/29837310/2269997 – amutter

回答

0

假設您的隨機森林算法作爲MapReduce作業運行,您應該可以使用以下示例:http://azure.microsoft.com/en-us/documentation/articles/hdinsight-submit-hadoop-jobs-programmatically/#submit-hadoop-streaming-jobs-using-hdinsight-net-sdk提交一個將Python代碼作爲Mapper和Reducer調用的流式作業。

如果不是這種情況,您能否解釋當您通過RDP在集羣上本地啓動代碼時,代碼是如何啓動的?

+0

Python代碼使用spark。 (spark和python都是通過自定義腳本安裝的,我們在遠程桌面上打開命令提示符並運行:spark-submit pythoncode.py「 – amutter

+0

目前還沒有從SDK中啓動Spark命令的方法,但是您可以利用一個幾乎空的Hive腳本來啓動它,Hive允許你啓動像'!spark-submit pythondoce.py;'這樣的任意命令,這顯然是一種解決方法,但是可以滿足你的需求。對於運行Hive腳本的Templeton控制器作業,您將失去一個容器的容量值,並且您將不得不查看預期的輸出是否可用於該作業。Hive命令將在隨機的workernode上運行,因此spark-submit必須在所有節點上都可用 – RickH

+0

也使用oozie發現了一個解決方案http://stackoverflow.com/questions/28542415/remotely-execute-a-spark-job-on-an-hdinsight-cluster – amutter