

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar aplicações ao criar um cluster
<a name="emr-configure-apps-create-cluster"></a>

Ao criar um cluster, você pode substituir as configurações padrão dos aplicativos usando o console do Amazon EMR, o AWS Command Line Interface (AWS CLI) ou o SDK. AWS 

Para substituir a configuração padrão de uma aplicação, especifique valores personalizados em uma classificação de configuração. Uma classificação de configuração corresponde a um arquivo XML de configuração de uma aplicação, como `hive-site.xml`. 

As classificações de configuração variam de acordo com a versão do Amazon EMR. Para obter uma lista de classificações de configuração que estão disponíveis em uma versão específica, consulte a página de detalhes da versão. Por exemplo, o [Amazon EMR versão 6.4.0.](emr-640-release.md#emr-640-class)

## Fornecer uma configuração no console ao criar um cluster
<a name="emr-configure-apps-create-cluster-console"></a>

Para fornecer uma configuração, navegue até a página **Criar cluster** e expanda **Configurações do software**. Você poderá inserir a configuração diretamente usando JSON ou uma sintaxe abreviada demonstrada no texto sombreado no console. Caso contrário, você pode fornecer um URI do Amazon S3 para um arquivo com um objeto JSON `Configurations`.

Para fornecer uma configuração para um grupo de instâncias, escolha um cluster na lista de clusters e selecione a guia **Configurações**. Na tabela de **Configurações do grupo de instâncias**, escolha o grupo de instâncias a ser editado e, em seguida, **Reconfigurar**.

## Forneça uma configuração usando o AWS CLI ao criar um cluster
<a name="emr-configure-apps-create-cluster-cli"></a>

Você pode fornecer uma configuração para **create-cluster** fornecendo um caminho para um arquivo JSON armazenado localmente ou no Amazon S3. O exemplo a seguir pressupõe que você esteja usando perfis padrão para o Amazon EMR e que esses perfis foram criados. Se você precisar criar as funções, execute `aws emr create-default-roles` primeiro.

Se a configuração estiver em seu diretório local, você poderá usar o exemplo de comando a seguir.

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

Se a configuração estiver em um caminho do Amazon S3, você precisará configurar a seguinte solução alternativa antes de passar o caminho do Amazon S3 para o 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://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
```

## Fornecer uma configuração usando o SDK do Java ao criar um cluster
<a name="emr-configure-apps-create-cluster-sdk"></a>

O trecho de programa a seguir mostra como fornecer uma configuração usando o AWS SDK para 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")
	);
```