gpt4 book ai didi

c# - 通过 .NET Azure HDInsight API 提交 Spark Scala (.jar) 作业

转载 作者:行者123 更新时间:2023-12-03 04:27:02 25 4
gpt4 key购买 nike

我一直在尝试通过 .NET 中的 azure hdinsight API 将作业提交到我的 Spark 集群。我已经通过 Intellij Azure 插件 -> 将 Spark 应用程序提交到 HDInsight 提交来检查我的 scala 代码是否有效,但在通过 .net api 提交作业时无法使其工作。 (可能作业提交类型不正确?)我得到了 jobId 和 jobComplete 状态,但它没有正确写入输出。

斯卡拉:

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object HDInsightScala{

def main (arg: Array[String]): Unit = {
val conf = new SparkConf().setAppName("HDInsightScala")
val sc = new SparkContext(conf)

val rdd = sc.textFile("wasbs:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")

//find the rows which have only one digit in the 7th column in the CSV
val rdd1 = rdd.filter(s => s.split(",")(6).length() == 1)

rdd1.saveAsTextFile("wasbs:///myOutputs")
}
}

C#:

public void runCurrentJob()
{
List<string> args = new List<string> {}; // No parameters

// JarFile leads to "wasbs:///tmp/default_artifact.jar"
// JarClass is the name of my main class -> "HDInsightScala"
var parameters = new MapReduceJobSubmissionParameters
{
JarFile = "wasbs:///"+ConfigurationManager.AppSettings["jarPath"],
JarClass = ConfigurationManager.AppSettings["mainClassName"],
//Arguments = args
};

var jobResponse = hdiJobManager.JobManagement.SubmitMapReduceJob(parameters);
var jobID = jobResponse.JobSubmissionJsonResponse.Id;
MessageBox.Show("My job ID is " + jobID + "\n wait for completion . . .");
var jobDetail = hdiJobManager.JobManagement.GetJob(jobID).JobDetail;
while (!jobDetail.Status.JobComplete)
{
Thread.Sleep(1000);
jobDetail = hdiJobManager.JobManagement.GetJob(jobID).JobDetail;
}
MessageBox.Show("JOB IS COMPLETE.");
}

最佳答案

根据您的描述,根据我的理解,您能够通过 Intellij Azure Plugin 将 scala 代码作为 Spark 作业提交到 HDInsight Spark Cluster 并正常工作。

根据官方文档Use HDInsight Tools in Azure Toolkit for IntelliJ to create Spark applications for HDInsight Spark Linux cluster ,看来IntelliJ插件会帮助你打包你的scala代码并将这些作业文件上传到集群,然后将作业提交到yarn manager来运行。

因此,为了解决您的问题,我认为第一步是检查您是否已将 scala 代码打包到作业中并将其上传到 HDFS。其次,可以引用REST API https://learn.microsoft.com/en-us/rest/api/hdinsightspark/hdinsight-spark-batch-job#create-a-new-batch-job 尝试提交作业以通过某些 HTTP 客户端(例如 postman)运行。

然后,您可以按照上述故障排除步骤来调试和改进 C# 代码,使其正常工作。希望对您有所帮助。

关于c# - 通过 .NET Azure HDInsight API 提交 Spark Scala (.jar) 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42010519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com