2

Microsoft Azure HDInsight サービスによってホストされている Hadoop クラスターで C# ジョブを実行しています。カスタム Java 入力形式を使用するには、hdinsight サーバーで hadoop コマンド ラインを直接使用する必要がありました。

bin\hadoop jar lib\hadoop-streaming.jar -D "mapred.max.split.size=33554432" を呼び出します -libjars "../mycustom-hadoop-streaming.jar" -inputformat "mycustom.hadoop.CombinedInputFormat" .. .(コマンドの残りをカットしました)

今、私はpowershellコマンドライン(別のAzureマシンからのリモートジョブ送信)を介したジョブ送信で同じことをしようとしています:

$jobDefinition = New-AzureHDInsightStreamingMapReduceJobDefinition -Defines @{ "mapred.max.split.size"="33554432", "mapred.input.format.class"="mycustom.hadoop.CombinedInputFormat" } ... (残りはカットしましたコマンドの)

しかし、powershell コマンドラインで -libjars を定義する方法はどこにありますか? Microsoft はその機能について考えていなかったようです: http://msdn.microsoft.com/en-us/library/windowsazure/dn527638.aspx

誰かがそれを実行しようとしましたか、または HDInsight ストリーミング ジョブの送信で libjars を定義するための回避策がありますか?

4

1 に答える 1

1

ご存じかもしれませんが、HDInsight PowerShell と .Net SDK は WebHcat/Templeton REST API を使用しています。私が思うに、New-AzureHDInsightStreamingMapReduceJobDefinition にパラメータとして -libjars がない理由は、Templeton REST API にそれがないか、サポートされていないことです。ここのApache Templetonドキュメントで - http://people.apache.org/~thejas/templeton_doc_latest/mapreducestreaming.html

一方、MapReduce/JAR 用の Templeton REST API は、libjars http://people.apache.org/~thejas/templeton_doc_latest/mapreducejar.htmlをサポートしています。

したがって、対応する HDInsight コマンドレット New-AzureHDInsightMapReduceJobDefinition には -Libjars パラメーターがあります。

説明に役立つことを願っています!

アジム(MSFT)

于 2014-02-19T18:32:33.073 に答える