Configuration des applications lorsque vous créez un cluster - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des applications lorsque vous créez un cluster

Lorsque vous créez un cluster, vous pouvez remplacer les configurations par défaut pour les applications utilisant la EMR console Amazon, le AWS Command Line Interface (AWS CLI) ou le AWS SDK.

Pour remplacer la configuration par défaut d'une application, vous devez spécifier des valeurs personnalisées dans une classification de configuration. Une classification de configuration correspond à un XML fichier de configuration pour une application, tel quehive-site.xml.

Les classifications de configuration varient en fonction de EMR la version d'Amazon. Pour obtenir une liste des classifications de configuration disponibles dans une version spécifique, consultez la page des détails de la version. Par exemple, Amazon EMR version 6.4.0.

Fournir une configuration dans la console lorsque vous créez un cluster

Pour fournir une configuration, accédez à la page Créer un cluster et développez les paramètres du logiciel. Vous pouvez ensuite entrer la configuration directement en utilisant l'une JSON ou l'autre syntaxe abrégée illustrée dans le texte masqué dans la console. Sinon, vous pouvez fournir un Amazon S3 URI pour un fichier contenant un JSON Configurations objet.

Pour fournir une configuration pour un groupe d'instances, choisissez un cluster dans votre liste de clusters, puis cliquez sur l'onglet Configurations. Dans le tableau des configurations des groupes d'instances, choisissez le groupe d'instances à modifier, puis choisissez Reconfigurer.

Fournissez une configuration à l'aide du AWS CLI lorsque vous créez un cluster

Vous pouvez fournir une configuration à create-cluster en fournissant un chemin d'accès à un JSON fichier stocké localement ou dans Amazon S3. L'exemple suivant suppose que vous utilisez des rôles par défaut pour Amazon EMR et que les rôles ont été créés. Si vous devez créer les rôles, exécutez d'abord aws emr create-default-roles.

Si votre configuration se trouve dans votre répertoire local, vous pouvez utiliser l'exemple de commande suivant.

aws emr create-cluster --use-default-roles --release-label emr-7.3.0 --applications Name=Hive \ --instance-type m5.xlarge --instance-count 3 --configurations file://./configurations.json

Si votre configuration se trouve dans un chemin Amazon S3, vous devez configurer la solution de contournement suivante avant de transmettre le chemin Amazon S3 à la commande create-cluster.

#!/bin/sh # Assume the ConfigurationS3Path is not public, and its present in the same AWS account as the EMR cluster ConfigurationS3Path="s3://amzn-s3-demo-bucket/config.json" # Get a presigned HTTP URL for the s3Path ConfigurationURL=`aws s3 presign $ConfigurationS3Path --expires-in 300` # Fetch the presigned URL, and minify the JSON so that it spans only a single line Configurations=`curl $ConfigurationURL | jq -c .` aws emr create-cluster --use-default-roles --release-label emr-5.34.0 --instance-type m5.xlarge --instance-count 2 --applications Name=Hadoop Name=Spark --configurations $Configurations

Fournissez une configuration à l'aide de Java SDK lorsque vous créez un cluster

L'extrait de programme suivant montre comment fournir une configuration à l'aide de AWS SDK for Java.

Application hive = new Application().withName("Hive"); Map<String,String> hiveProperties = new HashMap<String,String>(); hiveProperties.put("hive.join.emit.interval","1000"); hiveProperties.put("hive.merge.mapfiles","true"); Configuration myHiveConfig = new Configuration() .withClassification("hive-site") .withProperties(hiveProperties); RunJobFlowRequest request = new RunJobFlowRequest() .withName("Create cluster with ReleaseLabel") .withReleaseLabel("emr-5.20.0") .withApplications(hive) .withConfigurations(myHiveConfig) .withServiceRole("EMR_DefaultRole") .withJobFlowRole("EMR_EC2_DefaultRole") .withInstances(new JobFlowInstancesConfig() .withEc2KeyName("myEc2Key") .withInstanceCount(3) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m4.large") .withSlaveInstanceType("m4.large") );