如何使用 AWS SDK for Go 创建 EMR 集群

我想使用 AWS SDK for Go 创建 EMR 集群,但在官方文档中找不到方法。

包:emr — 适用于 Go 的 AWS 开发工具包

你能帮我提供一个详细的代码吗?


守候你守候我
浏览 263回答 1
1回答

12345678_0001

实际上,遇到同样的问题,文档中描述了一种方法。对我来说,这也不简单,因为措辞不同。似乎“运行作业流”基本上等于创建集群并向其添加步骤。所以你想要的是在这里找到的RunJobFlow函数:https://docs.aws.amazon.com/sdk-for-go/api/service/emr/EMR.html#RunJobFlow-instance_method因此,一个无需步骤即可创建集群的简单代码示例如下(确保您配置了正确的凭据):package mainimport (    "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("eu-west-1")})    svc := emr.New(sess)    params := &emr.RunJobFlowInput{        Instances: &emr.JobFlowInstancesConfig{ // Required            Ec2KeyName:                    aws.String("keyname"),            HadoopVersion:                 aws.String("2.7.2"),            InstanceCount:                 aws.Int64(1),            KeepJobFlowAliveWhenNoSteps: aws.Bool(true),            MasterInstanceType:          aws.String("m1.medium"),            Placement: &emr.PlacementType{                AvailabilityZone: aws.String("eu-west-1a"), // Required            },            TerminationProtected:       aws.Bool(true),        },        Name:           aws.String("Go Test Cluster"), // Required        Applications: []*emr.Application{            { // Required                Name:    aws.String("Ganglia"),            },            {                 Name: aws.String("Spark"),            },            // More values...        },        JobFlowRole: aws.String("EMR_EC2_DefaultRole"),        LogUri:      aws.String("s3://aws-logs-0000000000-eu-west-1/elasticmapreduce/"),        ReleaseLabel: aws.String("emr-4.6.0"),        ServiceRole:  aws.String("EMR_DefaultRole"),        VisibleToAllUsers: aws.Bool(true),    }    resp, err := svc.RunJobFlow(params)    if err != nil {        // Print the error, cast err to awserr.Error to get the Code and        // Message from an error.        fmt.Println(err.Error())        return    }    // Pretty-print the response data.    fmt.Println(resp)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go