

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

# 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 a HBase, Flink e Hive, portanto, você também pode se beneficiar do S3 Express One Zone se usar essas aplicações. 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 URIs do S3 usem o esquema do `s3a`. 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 Spark, HBase, Flink ou Hive com 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, Flink ou Hive, selecione `emr-7.2.0` ou superior.

1. Selecione as aplicações que deseja incluir no cluster, como Spark, HBase ou Flink.

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 onde 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 [Server-side criptografia 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.