以编程方式运行HDInsight作业 - 群集节点上的.jar文件,而不是blob存储中的.jar文件

时间:2014-02-11 17:24:50

标签: .net azure hadoop hdinsight

我跟踪this tutorial从.NET控制台应用程序向HDInsight提交mapreduce作业。

它工作正常,但我想知道这一行:

var jobDefinition = new MapReduceJobCreateParameters()
{
            JarFile = "wasb:///example/jars/hadoop-examples.jar",
            ClassName = "wordcount"
};

“wasb:///example/jars/hadoop-examples.jar”是指我的Azure存储帐户中的一个jar,当我将该帐户连接到新的HDInsight群集时,该jar会自动放入该帐户。

超越示例(我想使用Mahout)...我可以引用我添加到群集节点的jar吗?我通过RDP将mahout安装到apps / dist目录中。我可以从那里运行Mahout工作,但我不能把这两个步骤放在一起。

感觉我不应该将jar文件添加到blob存储来使用它们。

1 个答案:

答案 0 :(得分:1)

HDInsight使用WASB(Windows Azure存储 - Blob)。它是Windows Azure blob存储上的HDFS实现。如果您可以使用“hadoop fs -ls”列出HDInsight上的jar文件,则该文件已经在WASB上。您可以使用WASB语法来引用jar文件。有关详细信息,请参阅http://www.windowsazure.com/en-us/documentation/articles/hdinsight-use-blob-storage/

自定义HDInsight群集有一些限制。有两种支持的方法可以自定义HDInsight群集。一种是在提供过程中使用配置文件。第二个是运行一些可以作为Jar文件在HDInsight集群上运行的本机Java组件。不支持通过RDP安装应用程序。 Mohout应该是第二个受支持的案例。如果Mohout jar文件不在WASB上,则可以使用“hadoop fs -copyFromLocal”或使用Windows Azure PowerShell将jar文件上载到WASB。有关上传方法的列表,请参阅http://www.windowsazure.com/en-us/documentation/articles/hdinsight-upload-data/