

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