亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

Go
守候你守候我 2021-12-27 15:59:41
我想使用 AWS SDK for Go 創建 EMR 集群,但在官方文檔中找不到方法。包:emr — 適用于 Go 的 AWS 開發工具包你能幫我提供一個詳細的代碼嗎?
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

實際上,遇到同樣的問題,文檔中描述了一種方法。對我來說,這也不簡單,因為措辭不同。似乎“運行作業流”基本上等于創建集群并向其添加步驟。


所以你想要的是在這里找到的RunJobFlow函數:


https://docs.aws.amazon.com/sdk-for-go/api/service/emr/EMR.html#RunJobFlow-instance_method


因此,一個無需步驟即可創建集群的簡單代碼示例如下(確保您配置了正確的憑據):


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("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)

}


查看完整回答
反對 回復 2021-12-27
  • 1 回答
  • 0 關注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號