

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á.

# Preparo dos dados de entrada para processamento com o Amazon EMR
<a name="emr-plan-input"></a>

A maioria dos clusters carrega dados de entrada e depois processa esses dados. Para carregar dados, eles precisam estar em um local que o cluster possa acessar e ter um formato que o cluster possa processar. O cenário mais comum é carregar dados de entrada no Amazon S3. O Amazon EMR fornece ferramentas para o seu cluster importar ou ler dados do Amazon S3.

O formato de entrada padrão no Hadoop é um arquivo de texto, embora você possa personalizar o Hadoop e usar ferramentas para importar dados armazenados em outros formatos. 

**Topics**
+ [Tipos de entrada que o Amazon EMR pode aceitar](emr-plan-input-accept.md)
+ [Diferentes formas de inserir dados no Amazon EMR](emr-plan-get-data-in.md)

# Tipos de entrada que o Amazon EMR pode aceitar
<a name="emr-plan-input-accept"></a>

O formato de entrada padrão para um cluster é um arquivo de texto, com cada linha separada por um caractere de nova linha (\$1n), que é o formato de entrada mais usado. 

Se os seus dados de entrada estiverem em um formato diferente do formato de arquivo de texto padrão, você poderá usar a interface do Hadoop `InputFormat` para especificar outros tipos de entradas. Você pode até mesmo criar uma subclasse da classe `FileInputFormat` para tratar os tipos de dados personalizados. Para obter mais informações, consulte [http://hadoop.apache. org/docs/current/api/org/apache/hadoop/mapred/InputFormat.html](http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/InputFormat.html). 

Se você estiver usando o Hive, poderá usar a serializer/deserializer (SerDe) para ler dados de um determinado formato no HDFS. Para obter mais informações, consulte [https://cwiki.apache. org/confluence/display/Hive/SerDe](https://cwiki.apache.org/confluence/display/Hive/SerDe). 

# Diferentes formas de inserir dados no Amazon EMR
<a name="emr-plan-get-data-in"></a>

O Amazon EMR fornece várias maneiras de colocar dados em um cluster. A mais comum é carregar os dados para o Amazon S3 e usar os recursos internos do Amazon EMR para carregar os dados no cluster. Você também pode usar o recurso DistributedCache do Hadoop para transferir arquivos de um sistema de arquivos distribuído para o sistema de arquivos local. A implementação do Hive fornecida pelo Amazon EMR (Hive versão 0.7.1.1 e posteriores) inclui a funcionalidade que você pode usar para importar e exportar dados entre o DynamoDB e um cluster do Amazon EMR. Se tiver grandes quantidades de dados on-premises para processar, talvez considere o serviço Direct Connect útil. 

**Topics**
+ [Carregar dados no Amazon S3](emr-plan-upload-s3.md)
+ [Carregar dados com AWS DataSync](emr-plan-upload-datasync.md)
+ [Importação de arquivos com o cache distribuído e o Amazon EMR](emr-plan-input-distributed-cache.md)
+ [Detecção e processamento de arquivos compactados com o Amazon EMR](HowtoProcessGzippedFiles.md)
+ [Importação de dados do DynamoDB para o Hive com o Amazon EMR](emr-plan-input-dynamodb.md)
+ [Conecte-se aos dados com o AWS Direct Connect Amazon EMR](emr-plan-input-directconnect.md)
+ [Faça upload de grandes quantidades de dados para o Amazon EMR com AWS Snowball Edge](emr-plan-input-snowball.md)

# Carregar dados no Amazon S3
<a name="emr-plan-upload-s3"></a>

Para obter instruções sobre como carregar objetos no Amazon S3, consulte [Add an object to your bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html) no *Guia do usuário do Amazon Simple Storage Service*. [Para obter mais informações sobre o uso do Amazon S3 com o Hadoop, consulte http://wiki.apache. org/hadoop/AmazonS](http://wiki.apache.org/hadoop2/AmazonS3)3. 

**Topics**
+ [Criar e configurar um bucket do Amazon S3](#create-s3-bucket-input)
+ [Configurar o carregamento multiparte para o Amazon S3](#Config_Multipart)
+ [Práticas recomendadas](#emr-bucket-bestpractices)
+ [Upload de dados no Amazon S3 Express One Zone](emr-express-one-zone.md)

## Criar e configurar um bucket do Amazon S3
<a name="create-s3-bucket-input"></a>

O Amazon EMR usa o AWS SDK para Java com o Amazon S3 para armazenar dados de entrada, arquivos de log e dados de saída. O Amazon S3 se refere a esses locais de armazenamento como *bucket*. Os buckets têm algumas restrições e limitações para estar em conformidade com os requisitos do Amazon S3 e do DNS. Para obter mais informações, consulte [Restrições e limitações de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) no *Manual do usuário do Amazon Simple Storage Service*.

Esta seção mostra como usar o Amazon S3 Console de gerenciamento da AWS para criar e depois definir permissões para um bucket do Amazon S3. Você também pode criar e definir permissões para um bucket do Amazon S3 usando a API do Amazon S3 ou a AWS CLI. Você também pode usar curl junto com uma modificação para transmitir os parâmetros de autenticação apropriados para o Amazon S3.

Consulte os recursos a seguir:
+ Para criar um bucket usando o console, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html), no *Guia do usuário do Amazon S3*.
+ Para criar e trabalhar com buckets usando o AWS CLI, consulte Como [usar comandos de alto nível do S3 com o AWS Command Line Interface no Guia do usuário do](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-s3-commands.html) *Amazon* S3.
+ Para criar um bucket usando um SDK, veja [exemplos de criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-get-location-example.html) no *Guia do usuário do Amazon Simple Storage Service*.
+ Para trabalhar com buckets usando Curl, consulte [Amazon S3 authentication tool for curl](https://aws.amazon.com/code/amazon-s3-authentication-tool-for-curl/).
+ Para obter mais informações sobre buckets específicos para regiões, consulte [Acesso a um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html#access-bucket-intro) no *Guia do usuário do Amazon Simple Storage Service*.
+ Para trabalhar com buckets usando Pontos de Acesso Amazon S3, consulte [Usar um alias em estilo de bucket para seu ponto de acesso de bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-alias.html) no *Guia do usuário do Amazon S3*. Você facilmente pode usar os Pontos de Acesso Amazon S3 com o alias do Ponto de Acesso Amazon S3 em vez do nome do bucket do Amazon S3. Use o Ponto de Acesso Amazon S3 para aplicações novas e já existentes, inclusive Spark, Hive, Presto e outros.

**nota**  
Se você ativar o registro em log para um bucket, ele só permitirá logs de acesso do bucket, e não logs de cluster do Amazon EMR. 

Durante a criação do bucket ou depois, você pode definir as permissões apropriadas para acessar o bucket, dependendo de seu aplicativo. Normalmente, você atribui acesso de leitura e gravação para si mesmo (o proprietário) e atribui acesso de leitura para os usuários autenticados.

Os buckets do Amazon S3 obrigatórios devem existir para que você possa criar um cluster. Você deve carregar todos os scripts necessários ou dados referenciados no cluster no Amazon S3. 

## Configurar o carregamento multiparte para o Amazon S3
<a name="Config_Multipart"></a>

O Amazon EMR oferece suporte ao upload de várias partes do Amazon S3 por meio do SDK AWS for Java. O multipart upload permite que você faça upload de um único objeto como um conjunto de partes. O upload dessas partes de objetos pode ser feito de maneira independente e em qualquer ordem. Se a transmissão de alguma parte falhar, você poderá retransmitir essa parte sem afetar outras partes. Depois que todas as partes do objeto forem carregadas, o Amazon S3 montará as partes e criará o objeto.

Para obter mais informações, consulte [Visão geral do carregamento fracionado](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) no *Manual do usuário do Amazon Simple Storage Service*.

Além disso, o Amazon EMR oferece propriedades que permitem controlar mais precisamente a limpeza de partes de carregamentos multiparte com falha.

A tabela a seguir descreve as propriedades de configuração do Amazon EMR para o carregamento multiparte. Você pode configurar esses valores usando a classificação de configuração `core-site`. Para obter mais informações, consulte [Configure applications](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/configure-apps.html) no *Guia de lançamento do Amazon EMR*.


| Nome do parâmetro de configuração | Valor padrão  | Description | 
| --- | --- | --- | 
| fs.s3n.multipart.uploads.enabled | true | Um tipo booleano que indica se os carregamentos multiparte devem ou não ser habilitados. Quando a visualização consistente do EMRFS está habilitada, os carregamentos multiparte são habilitados por padrão, e a definição desse valor como false é ignorada. | 
| fs.s3n.multipart.uploads.split.size | 134217728 | Especifica o tamanho máximo de uma parte, em bytes, antes que o EMRFS inicie o upload de uma nova parte quando os multipart uploads estão habilitados. O valor mínimo é `5242880` (5 MB). Se um valor menor for especificado, `5242880` será usado. O máximo é `5368709120` (5 GB). Se um valor maior for especificado, `5368709120` será usado. Se a criptografia do lado do cliente do EMRFS estiver desabilitada e o confirmador otimizado para Amazon S3 também estiver desabilitado, esse valor também controlará o tamanho máximo que um arquivo de dados pode crescer até que o EMRFS use carregamentos multiparte em vez de uma solicitação `PutObject` para carregar o arquivo. Para obter mais informações, consulte .  | 
| fs.s3n.ssl.enabled | true | Um tipo booleano que indica se o http ou o https deve ser usado.  | 
| fs.s3.buckets.create.enabled | false | Um tipo booleano que indica se um bucket deve ser criado caso ele não exista. Configurar como false gera uma exceção em operações CreateBucket. | 
| fs.s3.multipart.clean.enabled | false | Um tipo booliano que indica se deseja habilitar a limpeza periódica em segundo plano de carregamentos multiparte incompletos. | 
| fs.s3.multipart.clean.age.threshold | 604800 | Um tipo longo que especifica a idade mínima de um multipart upload, em segundos, antes de ser considerado para limpeza. O padrão é uma semana. | 
| fs.s3.multipart.clean.jitter.max | 10000 | Um tipo inteiro que especifica o valor máximo de atraso de oscilação aleatória em segundos adicionado ao atraso fixo de 15 minutos antes de programar a próxima execução de limpeza. | 

### Desabilitar carregamentos multiparte
<a name="emr-dev-multipart-upload"></a>

------
#### [ Console ]

**Para desabilitar uploads multiparte usando o console**

1. [Faça login no e abra Console de gerenciamento da AWS o console do Amazon EMR em https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Em **EMR no EC2**, no painel de navegação esquerdo, escolha **Clusters** e depois **Criar cluster**.

1. Em **Configurações do software**, insira a seguinte configuração: `classification=core-site,properties=[fs.s3n.multipart.uploads.enabled=false]`.

1. Escolha qualquer outra opção que se aplique ao cluster. 

1. Para iniciar o cluster, escolha **Criar cluster**.

------
#### [ CLI ]

**Para desativar o upload de várias partes usando o AWS CLI**

Esse procedimento explica como desabilitar o multipart upload usando a AWS CLI. Para desabilitar o multipart upload, digite o comando `create-cluster` com o parâmetro `--bootstrap-actions`. 

1. Crie um arquivo, `myConfig.json`, com o seguinte conteúdo e salve-o no mesmo diretório onde você executa o comando:

   ```
   [
     {
       "Classification": "core-site",
       "Properties": {
         "fs.s3n.multipart.uploads.enabled": "false"
       }
     }
   ]
   ```

1. Digite o seguinte comando, substituindo *myKey* pelo nome do par de chaves do EC2.
**nota**  
Os caracteres de continuação de linha do Linux (\$1) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

   ```
   1. aws emr create-cluster --name "Test cluster" \
   2. --release-label emr-7.12.0 --applications Name=Hive Name=Pig \
   3. --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \
   4. --instance-count 3 --configurations file://myConfig.json
   ```

------
#### [ API ]

**Desabilitar carregamento multiparte usando a API**
+ Para obter informações sobre o uso programático de carregamentos multiparte do Amazon S3, consulte [Using the AWS SDK for Java for multipart upload](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMPDotJavaAPI.html) no *Guia do usuário do Amazon Simple Storage Service*.

  Para obter mais informações sobre o AWS SDK para Java, [AWS consulte SDK](https://aws.amazon.com/sdkforjava/) for Java.

------

## Práticas recomendadas
<a name="emr-bucket-bestpractices"></a>

Veja a seguir as recomendações para o uso de buckets do Amazon S3 com clusters do EMR.

### Habilitar o versionamento
<a name="emr-enable-versioning"></a>

O versionamento é uma configuração recomendada para o seu bucket do Amazon S3. Habilitando o versionamento, você garante que, mesmo que os dados sejam excluídos ou substituídos sem querer, eles possam ser recuperados. Para obter mais informações, consulte [Usando versionamento](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) no Guia do usuário do Amazon Simple Storage Service.

### Limpar carregamentos multiparte com falha
<a name="emr-multipart-cleanup"></a>

Os componentes de cluster do EMR usam uploads de várias partes por meio do SDK for AWS Java com o Amazon S3 para gravar arquivos de log e enviar dados para o Amazon APIs S3 por padrão. Para obter informações sobre como alterar as propriedades relacionadas a essa configuração usando o Amazon EMR, consulte [Configurar o carregamento multiparte para o Amazon S3](#Config_Multipart). Às vezes, carregar um arquivo grande pode resultar em um carregamento multiparte do Amazon S3 incompleto. Quando não é possível concluir com êxito um multipart upload em andamento, este continua a ocupar seu bucket e resulta em cobranças de armazenamento. Recomendamos as seguintes opções para evitar excesso de armazenamento de arquivos:
+ Para buckets usados com o Amazon EMR, use uma regra de configuração de ciclo de vida no Amazon S3 para remover carregamentos multiparte incompletos três dias após a data de início do carregamento. As regras de configuração de ciclo de vida permitem que você controle a classe de armazenamento e o tempo de vida dos objetos. Para obter mais informações, consulte [Object lifecycle management](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) e [Aborting incomplete multipart uploads using a bucket lifecycle policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config).
+ Habilite o atributo de limpeza de multiparte do Amazon EMR definindo `fs.s3.multipart.clean.enabled` como `true` e ajustando outros parâmetros de limpeza. Esse recurso é útil em alto volume, grande escala e com clusters que tenham tempo limitado. Nesse caso, o parâmetro `DaysAfterIntitiation` de uma regra de configuração do ciclo de vida pode ser muito longo, mesmo se definido como o mínimo, causando picos no armazenamento do Amazon S3. A limpeza multiparte do Amazon EMR possibilita um controle mais preciso. Para obter mais informações, consulte [Configurar o carregamento multiparte para o Amazon S3](#Config_Multipart). 

### Gerenciar marcadores de versão
<a name="w2aac28c11c17c11b7c11b9"></a>

Recomendamos habilitar a regra de configuração do ciclo de vida no Amazon S3 para remover marcadores de exclusão de objetos expirados para buckets com versionamento que você usa no Amazon EMR. Ao excluir um objeto em um bucket com versionamento, um marcador de exclusão é criado. Se todas as versões anteriores do objeto expirarem posteriormente, um marcador de exclusão de objeto expirado será deixado no bucket. Embora você não seja cobrado por marcadores de exclusão, a remoção dos marcadores expirados pode melhorar o desempenho das solicitações LIST. Para obter mais informações, consulte [Lifecycle configuration for a bucket with versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-bucket-with-versioning.html) no Guia do usuário do Amazon Simple Storage Service.

### Práticas recomendadas de performance
<a name="w2aac28c11c17c11b7c11c11"></a>

Dependendo das suas workloads, tipos específicos de uso de clusters do EMR e de aplicativos nesses clusters podem resultar em um alto número de solicitações em um bucket. Para obter mais informações, consulte [Request rate and performance considerations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/request-rate-perf-considerations.html) no *Guia do usuário do Amazon Simple Storage Service*. 

# Upload de dados no Amazon S3 Express One Zone
<a name="emr-express-one-zone"></a>

## Visão geral do
<a name="emr-express-one-zone-overview"></a>

Com o Amazon EMR 6.15.0 e versões superiores, você pode usar o Amazon EMR com o Apache Spark e a classe de armazenamento [Amazon S3 Express One Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html) para melhorar a performance nos trabalhos do Spark. As versões 7.2.0 e superiores do Amazon EMR também oferecem suporte ao HBase Flink e ao Hive, portanto, você também pode se beneficiar do S3 Express One Zone se usar esses aplicativos. O *S3 Express One Zone* é uma classe de armazenamento do S3 para aplicações que acessam dados frequentemente com centenas de milhares de solicitações por segundo. Na hora da execução, o S3 Express One Zone oferece o armazenamento de objetos na nuvem com a menor latência e a maior performance do Amazon S3. 

## Pré-requisitos
<a name="emr-express-one-zone-prereqs"></a>
+ **Permissões do S3 Express One Zone**: quando o S3 Express One Zone inicialmente executa uma ação como `GET`, `LIST` ou `PUT` em um objeto do S3, a classe de armazenamento chama `CreateSession` em seu nome. Sua política do IAM deve conceder a permissão `s3express:CreateSession` para que o conector S3A possa invocar a API `CreateSession`. Para obter um exemplo de política com essa permissão, consulte [Conceitos básicos da classe Amazon S3 Express One Zone](#emr-express-one-zone-start).
+ **Conector S3A**: para configurar o cluster do Spark para acessar dados de um bucket do Amazon S3 que usa a classe de armazenamento S3 Express One Zone, você deve usar o conector S3A do Apache Hadoop. Para usar o conector, certifique-se de que todos os S3 URIs usem o `s3a` esquema. Caso contrário, você pode alterar a implementação do sistema de arquivos usado para os esquemas do `s3` e do `s3n`.

Para alterar o esquema do `s3`, especifique as seguintes configurações de cluster: 

```
[
  {
    "Classification": "core-site",
    "Properties": {
      "fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
      "fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A"
    }
  }
]
```

Para alterar o esquema do `s3n`, especifique as seguintes configurações de cluster: 

```
[
  {
    "Classification": "core-site",
    "Properties": {
      "fs.s3n.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
      "fs.AbstractFileSystem.s3n.impl": "org.apache.hadoop.fs.s3a.S3A"
    }
  }
]
```

## Conceitos básicos da classe Amazon S3 Express One Zone
<a name="emr-express-one-zone-start"></a>

**Topics**
+ [Criação de uma política de permissões](#emr-express-one-zone-permissions)
+ [Criação e configuração de um cluster](#emr-express-one-zone-create)
+ [Visão geral das configurações](#emr-express-one-zone-configs)

### Criação de uma política de permissões
<a name="emr-express-one-zone-permissions"></a>

Antes de criar um cluster que use o Amazon S3 Express One Zone, você deve criar uma política do IAM para anexar ao perfil de instância do Amazon EC2 para o cluster. A política deve ter permissões para acessar a classe de armazenamento S3 Express One Zone. O exemplo de política a seguir mostra como conceder a permissão necessária. Após criar a política, anexe-a à função do perfil de instância usada para criar seu cluster do EMR, conforme descrito na seção [Criação e configuração de um cluster](#emr-express-one-zone-create).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3express:*:123456789012:bucket/example-s3-bucket"
      ],
      "Action": [
        "s3express:CreateSession"
      ],
      "Sid": "AllowS3EXPRESSCreatesession"
    }
  ]
}
```

------

### Criação e configuração de um cluster
<a name="emr-express-one-zone-create"></a>

Em seguida, crie um cluster que execute o Spark HBase, o Flink ou o Hive com o S3 Express One Zone. As seguinte etapas descrevem uma visão geral de alto nível para criar um cluster no Console de gerenciamento da AWS:

1. Navegue até o console do Amazon EMR e selecione **Clusters** na barra lateral. Depois, selecione **Criar cluster**.

1. Se você usa o Spark, selecione a versão `emr-6.15.0` ou superior do Amazon EMR. Se você usa HBase o Flink ou o Hive, selecione `emr-7.2.0` ou superior.

1. Selecione os aplicativos que você deseja incluir em seu cluster, como Spark ou Flink. HBase

1. Para habilitar o Amazon S3 Express One Zone, insira uma configuração semelhante ao exemplo a seguir na seção **Configurações de software**. As configurações e os valores recomendados estão descritos na seção [Visão geral das configurações](#emr-express-one-zone-configs) após esse procedimento.

   ```
   [
     {
       "Classification": "core-site",
       "Properties": {
         "fs.s3a.aws.credentials.provider": "software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider",
         "fs.s3a.change.detection.mode": "none",
         "fs.s3a.endpoint.region": "aa-example-1",
         "fs.s3a.select.enabled": "false"
       }
     },
     {
       "Classification": "spark-defaults",
       "Properties": {
         "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false"
       }
     }
   ]
   ```

1. Na seção **Perfil de instância do EC2 para o Amazon EMR**, escolha usar um perfil existente e use um perfil com a política anexada que você criou na seção [Criação de uma política de permissões](#emr-express-one-zone-permissions) acima.

1. Defina o restante das configurações do cluster conforme apropriado para a sua aplicação e selecione **Criar cluster**.

### Visão geral das configurações
<a name="emr-express-one-zone-configs"></a>

As tabelas a seguir descrevem as configurações e os valores sugeridos que você deve especificar ao configurar um cluster que usa o S3 Express One Zone com o Amazon EMR, conforme descrito na seção [Criação e configuração de um cluster](#emr-express-one-zone-create).

**Configurações do S3A**


| Parâmetro | Valor padrão  | Valor sugerido | Explicação | 
| --- | --- | --- | --- | 
|  `fs.s3a.aws.credentials.provider`  |  Se não for especificado, usa `AWSCredentialProviderList` na seguinte ordem: `TemporaryAWSCredentialsProvider`, `SimpleAWSCredentialsProvider`, `EnvironmentVariableCredentialsProvider`, `IAMInstanceCredentialsProvider`.  |  <pre>software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider</pre>  |  A função do perfil de instância do Amazon EMR deve ter a política que permita ao sistema de arquivos do S3A chamar `s3express:CreateSession`. Outros provedores de credenciais também funcionam se tiverem as permissões do S3 Express One Zone.  | 
|  `fs.s3a.endpoint.region`  |  nulo  |  O Região da AWS local em que você criou o bucket.  |  A lógica de resolução da região não funciona com a classe de armazenamento S3 Express One Zone.  | 
|  `fs.s3a.select.enabled`  |  `true`  |  `false`  |  O valor `select` do Amazon S3 não é compatível com a classe de armazenamento S3 Express One Zone.  | 
|  `fs.s3a.change.detection.mode`  |  `server`  |  nenhuma  |  A detecção de alterações pelo S3A funciona verificando `etags` baseadas em MD5. A classe de armazenamento S3 Express One Zone não é compatível com `checksums` de MD5.  | 

**Configurações do Spark**


| Parâmetro | Valor padrão  | Valor sugerido | Explicação | 
| --- | --- | --- | --- | 
|  `spark.sql.sources.fastS3PartitionDiscovery.enabled`  |  `true`  |  false  |  A otimização interna usa um parâmetro de API do S3 que não é compatível com a classe de armazenamento S3 Express One Zone.  | 

**Configurações do Hive**


| Parâmetro | Valor padrão  | Valor sugerido | Explicação | 
| --- | --- | --- | --- | 
|  `hive.exec.fast.s3.partition.discovery.enabled`  |  `true`  |  false  |  A otimização interna usa um parâmetro de API do S3 que não é compatível com a classe de armazenamento S3 Express One Zone.  | 

## Considerações
<a name="emr-express-one-zone-considerations"></a>

Considere os seguintes pontos ao integrar o Apache Spark no Amazon EMR à classe de armazenamento S3 Express One Zone:
+ O conector S3A é necessário para usar o S3 Express One Zone com o Amazon EMR. Somente o S3A tem os recursos e as classes de armazenamento necessários para interagir com o S3 Express One Zone. Para ver as etapas de configuração do conector, consulte [Pré-requisitos](#emr-express-one-zone-prereqs).
+ A classe de armazenamento Amazon S3 Express One Zone oferece suporte para criptografia SSE-S3 e SSE-KMS. Para obter mais informações, consulte [Criptografia no lado do servidor com o Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-data-protection.html#s3-express-ecnryption).
+ A classe de armazenamento Amazon S3 Express One Zone não oferece suporte a gravações com o `FileOutputCommitter` do S3A. As gravações com o `FileOutputCommitter` do S3A em buckets do S3 Express One Zone resultam em um erro: *InvalidStorageClass: The storage class you specified is not valid*.
+ O Amazon S3 Express One Zone é compatível com as versões 6.15.0 e superiores do Amazon EMR no EC2. Além disso, é compatível com as versões 7.2.0 e superiores do Amazon EMR no EKS e no Amazon EMR Sem Servidor.

# Carregar dados com AWS DataSync
<a name="emr-plan-upload-datasync"></a>

AWS DataSync é um serviço de transferência de dados on-line que simplifica, automatiza e acelera o processo de movimentação de dados entre seus serviços de armazenamento e armazenamento locais ou entre serviços AWS de armazenamento. AWS DataSync oferece suporte a uma variedade de sistemas de armazenamento local, como Hadoop Distributed File System (HDFS), servidores de arquivos NAS e armazenamento autogerenciado de objetos.

A maneira mais comum de colocar dados em um cluster é carregar os dados no Amazon S3 e usar os atributos integrados do Amazon EMR para carregar os dados no cluster.

DataSync pode ajudá-lo a realizar as seguintes tarefas:
+ Replicar o HDFS no cluster do Hadoop para o Amazon S3 para continuidade dos negócios
+ Copiar o HDFS no Amazon S3 para preencher data lakes
+ Transferir dados entre o HDFS do cluster do Hadoop e o Amazon S3 para análise e processamento

Para fazer upload de dados para seu bucket do S3, primeiro você implanta um ou mais DataSync agentes na mesma rede do seu armazenamento local. O *agente* é uma máquina virtual (VM) usada para ler ou gravar dados em um local autogerenciado. Em seguida, você ativa seus agentes no bucket do S3 Conta da AWS e Região da AWS onde ele está localizado.

Depois que o agente é ativado, crie um local de origem para o armazenamento on-premises, um local de destino para o bucket do S3 e uma tarefa. Uma *tarefa* é um conjunto de dois locais (origem e destino) e um conjunto de opções padrão que você usa para controlar o comportamento da tarefa.

Finalmente, você executa sua DataSync tarefa de transferir dados da origem para o destino. 

Para obter mais informações, consulte [Conceitos básicos do AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/getting-started.html).

# Importação de arquivos com o cache distribuído e o Amazon EMR
<a name="emr-plan-input-distributed-cache"></a>

O DistributedCache é um recurso do Hadoop que pode aumentar a eficiência quando uma tarefa map ou reduce precisa acessar dados comuns. Se o cluster depender de aplicações já existentes ou binárias que não estão instaladas quando o cluster é criado, você poderá usar o DistributedCache para importar esses arquivos. Esse recurso permite que um nó de cluster leia os arquivos importados do seu sistema de arquivos local, em vez de recuperar os arquivos de outros nós do cluster. 

Para obter mais informações, acesse [http://hadoop.apache. org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html](http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html).

Você invoca o DistributedCache ao criar o cluster. Os arquivos são armazenados em cache logo antes do início do trabalho do Hadoop e permanecem no cache pela duração do trabalho. Você pode armazenar em cache os arquivos armazenados em qualquer sistema de arquivos compatível com o Hadoop, por exemplo, o HDFS ou o Amazon S3. O tamanho padrão do cache de arquivo é 10 GB. Para alterar o tamanho do cache, reconfigure o parâmetro Hadoop `local.cache.size` usando a ação de bootstrap. Para obter mais informações, consulte [Como criar ações de bootstrap para instalar softwares adicionais com um cluster do Amazon EMR](emr-plan-bootstrap.md).

**Topics**
+ [Tipos de arquivos compatíveis](#emr-dev-supported-file-types)
+ [Local dos arquivos em cache](#locationofcache)
+ [Acessar arquivos em cache de aplicações de transmissão](#cachemapper)
+ [Acessar arquivos em cache de aplicações de transmissão](#cacheinconsole)

## Tipos de arquivos compatíveis
<a name="emr-dev-supported-file-types"></a>

O DistributedCache permite arquivos únicos e arquivamentos. Arquivos individuais são armazenados em cache como somente leitura. Executáveis e arquivos binários têm permissões de execução definidas.

Os arquivamentos são um ou mais arquivos empacotados por meio de um utilitário, como o `gzip`. O DistributedCache passa os arquivos compactados para cada nó central e descompacta o arquivo como parte do armazenamento em cache. O DistributedCache é compatível com os seguintes formatos de compactação:
+ zip
+ tgz
+ tar.gz
+ tar
+ jar

## Local dos arquivos em cache
<a name="locationofcache"></a>

O DistributedCache copia arquivos apenas para nós centrais. Se não houver um nó central no cluster, o DistributedCache copiará os arquivos para o nó primário.

O DistributedCache associa os arquivos de cache ao diretório de trabalho atual do mapper e do reducer usando links simbólicos. Um link simbólico é um alias para uma localização de arquivo, e não essa localização propriamente dita. O valor do parâmetro, `yarn.nodemanager.local-dirs` em `yarn-site.xml`, especifica a localização dos arquivos temporários. O Amazon EMR define esse parâmetro como `/mnt/mapred` ou alguma variação com base no tipo de instância e na versão do EMR. Por exemplo, uma configuração pode ter `/mnt/mapred` e `/mnt1/mapred` porque o tipo de instância tem dois volumes temporários. Arquivos de cache estão localizados em um subdiretório da localização de arquivo temporária em `/mnt/mapred/taskTracker/archive`. 

Se você armazenar um único arquivo em cache, o DistributedCache colocará o arquivo no diretório `archive`. Se você armazenar um arquivamento em cache, o DistributedCache descompactará o arquivo e criará um subdiretório em `/archive` com o mesmo nome do arquivamento. Os arquivos individuais estão localizados no novo subdiretório.

Você pode usar o DistributedCache somente ao utilizar o Streaming.

## Acessar arquivos em cache de aplicações de transmissão
<a name="cachemapper"></a>

Para acessar os arquivos em cache dos seus aplicativos de mapeador ou redutor, certifique-se de ter adicionado o diretório de trabalho atual (. /) ao caminho do aplicativo e referenciado os arquivos em cache como se estivessem presentes no diretório de trabalho atual.

## Acessar arquivos em cache de aplicações de transmissão
<a name="cacheinconsole"></a>

Você pode usar o Console de gerenciamento da AWS e o AWS CLI para criar clusters que usam o cache distribuído. 

------
#### [ Console ]

**Especificar arquivos de cache distribuído usando o novo console**

1. [Faça login no e abra Console de gerenciamento da AWS o console do Amazon EMR em https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Em **EMR no EC2**, no painel de navegação esquerdo, escolha **Clusters** e depois **Criar cluster**.

1. Em **Etapas**, escolha **Adicionar etapa**. Isso abrirá a caixa de diálogo **Adicionar etapa**. No campo **Argumentos**, inclua os arquivos e arquivamentos para salvar no cache. O tamanho do arquivo (ou o tamanho total dos arquivos em um arquivamento) deve ser menor que o tamanho do cache alocado.

   Para adicionar um arquivo individual ao cache distribuído, especifique `-cacheFile` seguido do nome e do local do arquivo, do sinal de cerquilha (\$1) e do nome que você deseja dar ao arquivo quando ele for inserido no cache local. O exemplo a seguir demonstra como adicionar um arquivo individual ao cache distribuído.

   ```
   -cacheFile \
   s3://amzn-s3-demo-bucket/file-name#cache-file-name
   ```

   Para adicionar um arquivo ao cache distribuído, insira `-cacheArchive` seguido da localização dos arquivos no Amazon S3, do sinal de cerquilha (\$1) e do nome que você deseja dar à coleção de arquivos no cache local. O exemplo a seguir demonstra como adicionar um arquivo de arquivamento ao cache distribuído.

   ```
   -cacheArchive \
   s3://amzn-s3-demo-bucket/archive-name#cache-archive-name
   ```

   Insira os valores correspondentes nos outros campos da caixa de diálogo. As opções diferem dependendo do tipo de etapa. Para adicionar a etapa e sair da caixa de diálogo, escolha **Adicionar etapa**.

1. Escolha qualquer outra opção que se aplique ao cluster. 

1. Para iniciar o cluster, escolha **Criar cluster**.

------
#### [ CLI ]

**Para especificar arquivos de cache distribuídos com o AWS CLI**
+ Para enviar uma etapa de Streaming quando um cluster é criado, digite o comando `create-cluster` com o parâmetro `--steps`. Para especificar arquivos de cache distribuídos usando o AWS CLI, especifique os argumentos apropriados ao enviar uma etapa de streaming. 

  Para adicionar um arquivo individual ao cache distribuído, especifique `-cacheFile` seguido do nome e do local do arquivo, do sinal de cerquilha (\$1) e do nome que você deseja dar ao arquivo quando ele for inserido no cache local. 

  Para adicionar um arquivo ao cache distribuído, insira `-cacheArchive` seguido da localização dos arquivos no Amazon S3, do sinal de cerquilha (\$1) e do nome que você deseja dar à coleção de arquivos no cache local. O exemplo a seguir demonstra como adicionar um arquivo de arquivamento ao cache distribuído.

  Para obter mais informações sobre o uso dos comandos do Amazon EMR no AWS CLI, consulte. [https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)

**Example 1**  
Digite o seguinte comando para executar um cluster e envie um etapa de Streaming que use `-cacheFile` para adicionar um arquivo, `sample_dataset_cached.dat`, ao cache.   

```
aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheFile","s3://my_bucket/sample_dataset.dat#sample_dataset_cached.dat"]
```
Quando você especifica a contagem de instâncias sem usar o parâmetro `--instance-groups`, um único nó primário é executado, e as instâncias restantes são executadas como nós centrais. Todos os nós usarão o tipo de instância especificado no comando.  
Se você não tiver criado o perfil de serviço padrão do EMR e o perfil de instância do EC2, digite `aws emr create-default-roles` para criá-los antes de digitar o subcomando `create-cluster`.

**Example 2**  
O comando a seguir mostra a criação de um cluster de streaming e usa `-cacheArchive` para adicionar um arquivamento de arquivos ao cache.   

```
aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheArchive","s3://my_bucket/sample_dataset.tgz#sample_dataset_cached"]
```
Quando você especifica a contagem de instâncias sem usar o parâmetro `--instance-groups`, um único nó primário é executado, e as instâncias restantes são executadas como nós centrais. Todos os nós usarão o tipo de instância especificado no comando.  
Se você não tiver criado o perfil de serviço padrão do EMR e o perfil de instância do EC2, digite `aws emr create-default-roles` para criá-los antes de digitar o subcomando `create-cluster`.

------

# Detecção e processamento de arquivos compactados com o Amazon EMR
<a name="HowtoProcessGzippedFiles"></a>

O Hadoop verifica a extensão do arquivo para detectar arquivos compactados. Os tipos de compactação com suporte pelo Hadoop são: gzip, bzip2 e LZO. Você não precisa tomar medidas adicionais para extrair arquivos usando esses tipos de compactação; o Hadoop manipula o processo para você.

[Para indexar arquivos LZO, você pode usar a biblioteca hadoop-lzo, que pode ser baixada do hadoop-lzo. https://github.com/kevinweil/](https://github.com/kevinweil/hadoop-lzo) Como esta é uma biblioteca de terceiros, o Amazon EMR não oferece suporte de desenvolvedor sobre como utilizar essa ferramenta. Para obter informações de uso, consulte o arquivo leiame da [hadoop-lzo.](https://github.com/kevinweil/hadoop-lzo/blob/master/README.md) 

# Importação de dados do DynamoDB para o Hive com o Amazon EMR
<a name="emr-plan-input-dynamodb"></a>

A implementação do Hive fornecida pelo Amazon EMR inclui a funcionalidade que você pode usar para importar e exportar dados entre o DynamoDB e um cluster do Amazon EMR. Isso é útil quando seus dados de entrada estão armazenados no DynamoDB. Para obter mais informações, consulte [Export, import, query, and join tables in DynamoDB using Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/EMRforDynamoDB.html). 

# Conecte-se aos dados com o AWS Direct Connect Amazon EMR
<a name="emr-plan-input-directconnect"></a>

Direct Connect é um serviço que você pode usar para estabelecer uma conexão de rede privada dedicada com a Amazon Web Services a partir do seu data center, escritório ou ambiente de colocation. Se você tiver grandes quantidades de dados de entrada, o uso Direct Connect pode reduzir seus custos de rede, aumentar a taxa de transferência da largura de banda e fornecer uma experiência de rede mais consistente do que as conexões baseadas na Internet. Para obter mais informações, consulte o [Guia do usuário do Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/). 

# Faça upload de grandes quantidades de dados para o Amazon EMR com AWS Snowball Edge
<a name="emr-plan-input-snowball"></a>

AWS Snowball Edge é um serviço que você pode usar para transferir grandes quantidades de dados entre o Amazon Simple Storage Service (Amazon S3) e seu local de armazenamento de dados no local em alta velocidade. faster-than-internet O Snowball Edge oferece suporte a dois tipos de trabalho: trabalhos de importação e trabalhos de exportação. Os trabalhos de importação envolvem a transferência de dados de uma fonte on-premises para um bucket do Amazon S3. Os trabalhos de exportação envolvem a transferência de dados de um bucket do Amazon S3 para uma fonte on-premises. Para ambos os tipos de trabalho, os dispositivos Snowball Edge protegem seus dados, enquanto as transportadoras regionais os transportam entre o Amazon S3 e a local do armazenamento de dados. Os dispositivos Snowball Edge são fisicamente robustos e protegidos pelo AWS Key Management Service ().AWS KMS Para obter mais informações, consulte o [Guia do desenvolvedor do AWS Snowball Edge Edge](https://docs.aws.amazon.com/snowball/latest/developer-guide/).