2016-03-24 24 views

答えて

2

実際、同じ問題が発生すると、ドキュメントに記載されている方法があります。私にとっては言葉遣いが違っていたので、それは簡単ではありませんでした。 「ジョブフローの実行」は、基本的にはクラスタの作成とステップの追加に相当します。

だから何あなたが望むことは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) 
} 
関連する問題