Configuración de las aplicaciones al crear un clúster - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de las aplicaciones al crear un clúster

Al crear un clúster, puede anular las configuraciones predeterminadas de las aplicaciones mediante la consola Amazon EMR, AWS Command Line Interface el AWS CLI() o AWS el SDK.

Para anular la configuración predeterminada de una aplicación, debe especificar valores personalizados en una clasificación de configuración. Una clasificación de configuración corresponde a un archivo XML de configuración para una aplicación, como hive-site.xml.

Las clasificaciones de configuración varían en función de la versión de Amazon EMR. Para ver una lista de las clasificaciones de configuración que están disponibles para cada versión de lanzamiento, consulte la página de detalles de lanzamiento. Por ejemplo, Versión 6.4.0. de Amazon EMR.

Proporcionar una configuración en la consola al crear un clúster

Para proporcionar una configuración, vaya a la página Crear clúster y expanda la configuración del software. A continuación, puede introducir la configuración directamente a través de JSON o una sintaxis abreviada mostrada en el texto en sombra en la consola. De lo contrario, puede proporcionar una URI de Amazon S3 para un archivo con un objeto Configurations de JSON.

Para proporcionar una configuración para un grupo de instancias, selecciona un clúster de la lista de clústeres y, a continuación, selecciona la pestaña Configuraciones. En la tabla de configuraciones de grupos de instancias, selecciona el grupo de instancias que deseas editar y, a continuación, selecciona Reconfigurar.

Proporciona una configuración mediante la opción AWS CLI al crear un clúster

Puede proporcionar una configuración para create-cluster suministrando una ruta a un archivo JSON almacenado localmente o en Amazon S3. En el siguiente ejemplo se supone que está utilizando los roles predeterminados de Amazon EMR y que roles ya se han creado. Si necesita crear los roles, ejecute aws emr create-default-roles en primer lugar.

Si la configuración está en su directorio local, puede utilizar el siguiente comando de ejemplo.

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

Si su configuración está en una ruta de Amazon S3, tendrá que configurar la siguiente solución alternativa antes de pasar la ruta de Amazon S3 al comando create-cluster.

#!/bin/sh # Assume the ConfigurationS3Path is not public, and its present in the same AWS account as the EMR cluster ConfigurationS3Path="s3://my-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

Proporcione una configuración mediante el SDK de Java al crear un clúster

El siguiente extracto de programa muestra cómo proporcionar una configuración utilizando 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") );