Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 在AWS EMR sdk中使用AddJobFlowStep的正确方法是什么?_Scala_Go_Jar_Emr - Fatal编程技术网

Scala 在AWS EMR sdk中使用AddJobFlowStep的正确方法是什么?

Scala 在AWS EMR sdk中使用AddJobFlowStep的正确方法是什么?,scala,go,jar,emr,Scala,Go,Jar,Emr,我使用go AWS sdk创建了一个集群,并向其中添加了一个作业流步骤。 但是,当我以编程方式执行步骤时,该步骤总是失败。 值得注意的一点是,当我从UI附加jar时,它成功地执行了 因此,当从UI连接jar时,这是步骤执行的结果(它成功运行并移动到完成状态): (复制全文) JAR位置:command-runner.JAR 主类:无参数: spark提交--部署模式集群--类Hello s3://mdv testing/Util-assembly-1.0.jar失败时的操作:继续 但是,这是我尝

我使用go AWS sdk创建了一个集群,并向其中添加了一个作业流步骤。 但是,当我以编程方式执行步骤时,该步骤总是失败。 值得注意的一点是,当我从UI附加jar时,它成功地执行了

因此,当从UI连接jar时,这是步骤执行的结果(它成功运行并移动到完成状态): (复制全文)

JAR位置:command-runner.JAR 主类:无参数: spark提交--部署模式集群--类Hello s3://mdv testing/Util-assembly-1.0.jar失败时的操作:继续

但是,这是我尝试编程时步骤的输出:

状态:失败原因:找不到主类。 日志文件:s3://mdv testing/awsLogs/j-3RW9K14BS6GLO/steps/s-337M25MLV3BHT/stderr.gz 详细信息:原因:java.lang.ClassNotFoundException:scala.reflect.api.TypeCreator JAR位置:s3://mdv testing/Util-assembly-1.0.JAR主类:None>Arguments:spark submit“-class Hello” 失败时的操作:取消并等待

我尝试了各种参数组合,并意识到command-runner.jar从未出现过。 因此,我对代码进行了更改,现在将命令runner.jar作为参数发送。此现在反映的细节与成功执行的步骤相同。 这是修订后的产出:

状态:失败原因:未知错误。 日志文件:s3://mdv testing/awsLogs/j-3RW9K14BS6GLO/steps/s-3NI5ZO15VTWQK/ JAR位置:command-runner.JAR 主要类别:无 参数:“spark提交--部署模式集群--类Hello” s3://mdv testing/Util-assembly-1.0.jar 失败时的操作:取消并等待

密码
有人能帮帮我吗!!!我想我已经很接近解决方案了,但这让我大吃一惊:(

我设法解决了这个问题。
对于任何正在为类似问题而挣扎的人,答案是我们需要在一个数组中分别发送参数。

我设法解决了这个问题。 对于任何正在为类似问题而挣扎的人来说,答案是我们需要在一个数组中分别发送参数

package main
import (
"fmt"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/emr"
)

func main() {
sess := session.New(&aws.Config{Region: aws.String("us-east-1")})
svc := emr.New(sess)

params := &emr.AddJobFlowStepsInput{
JobFlowId: aws.String("j-3RW9K14BS6aaa"),
Steps: []*emr.StepConfig{
{
    ActionOnFailure: aws.String("CANCEL_AND_WAIT"), //TERMINATE_CLUSTER"),
    HadoopJarStep: &emr.HadoopJarStepConfig{
    Args: []*string{
                     aws.String("spark-submit --deploy-mode cluster --class Hello s3://mdv-testing/Util-assembly-1.0.jar"),
                   },
                     Jar: aws.String("command-runner.jar"), },
                     Name: aws.String("ReportJarExecution"),
    },
},
}

resp, err := svc.AddJobFlowSteps(params)

if err != nil {
// Print the error, cast err to awserr. sError to get the Code and
// Message from an error.
fmt.Println(err.Error())
return
}

// Pretty-print the response data.
fmt.Println(resp)
}