0

我按照本教程从 .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 群集时,它会自动放在那里。

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

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

4

1 回答 1

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 群集有两种受支持的方式。一种是在提供过程中使用配置文件。第二种是运行一些可以在 HDInsight 群集上作为 Jar 文件运行的本机 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/

于 2014-02-11T20:14:05.387 回答