2017-07-06 1 views
0

Je veux automatiser la tâche de création de cluster dans DME. J'ai un fichier JSON qui contient des configurations qui doivent être appliquées sur le nouveau groupe et je veux écrire un script shell qui automatise cette tâche pour moi.Est-il possible de créer cluster dans DME en donnant toutes les configurations du fichier JSON

Est-il possible de créer cluster dans DME en donnant toutes les configurations de fichier JSON?

Par exemple, j'ai ce fichier

{ 
"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" 
     } 
    ] 
} 
} 

Puis-je créer un cluster sur DME en utilisant une commande comme

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

Répondre

0

Il n'y a pas une telle option par la AWS CLI selon l'AWS CLI Documentation. Mais si vous voulez automatiser la création du cluster EMR en utilisant un fichier JSON. Vous pouvez utiliser la formation Cloud et automatiser la création de cluster.

Getting Started with AWS CloudFormation

+0

mais dans ce doc http://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html#examples dans l'exemple 5 ils ont utilisé configuration.json pour configuraing grappe. –

+0

Cette option est de spécifier la configuration pour Hadoop MapReduce, pas pour l'infrastructure sous-jacente. – sudheerchamarthi