2017-07-06 1 views
0

Ich möchte die Cluster-Erstellung Aufgabe in EMR automatisieren. Ich habe eine JSON-Datei , die Konfigurationen enthält, die auf neuen Cluster angewendet werden müssen, und ich möchte ein Shell-Skript schreiben, das diese Aufgabe für mich automatisiert.Ist es möglich, Cluster in EMR zu erstellen, indem Sie alle Konfigurationen aus JSON-Datei

Ist es möglich, Cluster in EMR zu erstellen, indem Sie alle Konfigurationen aus der JSON-Datei angeben?

Zum Beispiel habe ich diese Datei haben

{ 
"Cluster": { 
    "Ec2InstanceAttributes": { 
     "EmrManagedMasterSecurityGroup": "sg-00b10b71", 
     "RequestedEc2AvailabilityZones": [], 
     "AdditionalSlaveSecurityGroups": [], 
     "AdditionalMasterSecurityGroups": [], 
     "RequestedEc2SubnetIds": [ 
      "subnet-02291b3e" 
     ], 
     "Ec2SubnetId": "subnet-02291b3e", 
     "IamInstanceProfile": "EMR_EC2_DefaultRole", 
     "Ec2KeyName": "perf_key_pair", 
     "Ec2AvailabilityZone": "us-east-1e", 
     "EmrManagedSlaveSecurityGroup": "sg-f2b30983" 
    }, 
    "Name": "NitinJ-Perf", 
    "ServiceRole": "EMR_DefaultRole", 
    "Tags": [ 
     { 
      "Value": "Perf-Nitink", 
      "Key": "Qubole" 
     } 
    ], 
    "Applications": [ 
     { 
      "Version": "3.7.2", 
      "Name": "Ganglia" 
     }, 
     { 
      "Version": "2.7.3", 
      "Name": "Hadoop" 
     }, 
     { 
      "Version": "2.1.1", 
      "Name": "Hive" 
     }, 
     { 
      "Version": "0.16.0", 
      "Name": "Pig" 
     }, 
     { 
      "Version": "0.8.4", 
      "Name": "Tez" 
     } 
    ], 
    "MasterPublicDnsName": "ec2-34-229-254-217.compute-1.amazonaws.com", 
    "ScaleDownBehavior": "TERMINATE_AT_INSTANCE_HOUR", 
    "InstanceGroups": [ 
     { 
      "RequestedInstanceCount": 4, 
      "Status": { 
       "Timeline": { 
        "ReadyDateTime": 1499150835.979, 
        "CreationDateTime": 1499150533.99 
       }, 
       "State": "RUNNING", 
       "StateChangeReason": { 
        "Message": "" 
       } 
      }, 
      "Name": "Core Instance Group", 
      "InstanceGroupType": "CORE", 
      "EbsBlockDevices": [], 
      "ShrinkPolicy": {}, 
      "Id": "ig-34P3CVF8ZL5CW", 
      "Configurations": [], 
      "InstanceType": "r3.4xlarge", 
      "Market": "ON_DEMAND", 
      "RunningInstanceCount": 4 
     }, 
     { 
      "RequestedInstanceCount": 1, 
      "Status": { 
       "Timeline": { 
        "ReadyDateTime": 1499150804.591, 
        "CreationDateTime": 1499150533.99 
       }, 
       "State": "RUNNING", 
       "StateChangeReason": { 
        "Message": "" 
       } 
      }, 
      "Name": "Master Instance Group", 
      "InstanceGroupType": "MASTER", 
      "EbsBlockDevices": [], 
      "ShrinkPolicy": {}, 
      "Id": "ig-3V7EHQ36187PY", 
      "Configurations": [], 
      "InstanceType": "r3.4xlarge", 
      "Market": "ON_DEMAND", 
      "RunningInstanceCount": 1 
     } 
    ], 
    "Configurations": [ 
     { 
      "Properties": { 
       "hive.vectorized.execution.enabled": "true" 
      }, 
      "Classification": "hive-site" 
     } 
    ] 
} 
} 

Kann ich einen Cluster auf EMR erstellen, indem Sie einen Befehl verwenden wie

aws emr create-cluster --cli-input-json file://'pwd'/emr_cluster_up.json 

Antwort

0

Es gibt keine solche Option durch die AWS CLI gemäß der AWS CLI Dokumentation. Wenn Sie jedoch die Erstellung des EMR-Clusters mithilfe einer JSON-Datei automatisieren möchten. Sie können die Cloud-Erstellung verwenden und die Cluster-Erstellung automatisieren.

Getting Started with AWS CloudFormation

+0

aber in diesem Dokument http://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html#examples in Beispiel 5 verwendet, sie haben configuration.json für configuraing Cluster. –

+0

Diese Option dient zum Festlegen der Konfiguration für Hadoop MapReduce, nicht für die zugrunde liegende Infrastruktur. – sudheerchamarthi

Verwandte Themen