Ich möchte mithilfe von AWS SDK for Go EMR-Cluster erstellen, aber ich finde keinen Weg in der offiziellen Dokumentation.Erstellen eines EMR-Clusters mit AWS SDK for Go
Cound Sie mit einem detaillierten Code mir bitte helfen?
Ich möchte mithilfe von AWS SDK for Go EMR-Cluster erstellen, aber ich finde keinen Weg in der offiziellen Dokumentation.Erstellen eines EMR-Clusters mit AWS SDK for Go
Cound Sie mit einem detaillierten Code mir bitte helfen?
Eigentlich kommt auf das gleiche Problem, gibt es einen Weg, der in der Dokumentation beschrieben wird. Für mich war es auch nicht einfach, weil die Formulierung anders ist. Es scheint, dass das "Ausführen eines Jobflusses" im Grunde dem Erstellen eines Clusters und dem Hinzufügen von Schritten entspricht.
Also, was Sie wollen, ist die Funktion RunJobFlow hier:
https://docs.aws.amazon.com/sdk-for-go/api/service/emr/EMR.html#RunJobFlow-instance_method
So ein einfaches Codebeispiel, das ohne Schritte, um einen Cluster erstellt, ist der folgende (stellen Sie sicher, dass Sie die richtigen Anmeldeinformationen konfiguriert haben) :
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)
}