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
Visão geral
Com o Amazon EMR 6.15.0 e superior, você pode usar o Amazon EMR com o Apache Spark em conjunto com a classe de armazenamento Amazon S3 Express One Zone para melhorar o desempenho em suas tarefas do Spark. As EMR versões 7.2.0 e superiores da Amazon também oferecem suporte ao HBase Flink e ao Hive, então 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
-
Permissões do S3 Express One Zone: quando o S3 Express One Zone inicialmente executa uma ação como
GET
,LIST
ouPUT
em um objeto do S3, a classe de armazenamento chamaCreateSession
em seu nome. Sua IAM política deve permitir as3express:CreateSession
permissão para que o S3A o conector pode invocar o.CreateSession
API Para obter um exemplo de política com essa permissão, consulte Conceitos básicos da classe Amazon S3 Express One Zone. -
S3A conector — Para configurar seu cluster Spark para acessar dados de um bucket Amazon S3 que usa a classe de armazenamento S3 Express One Zone, você deve usar o conector Apache Hadoop S3A. 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 dos3
e dos3n
.
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
Tópicos
Criação de uma política de permissões
Antes de criar um cluster que usa o Amazon S3 Express One Zone, você deve criar uma IAM política para anexar ao perfil de EC2 instância da Amazon 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. Depois de criar a política, anexe a política à função de perfil da instância que você usa para criar seu EMR cluster, conforme descrito na Criação e configuração de um cluster seção.
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:s3express:
region-code
:account-id
:bucket/amzn-s3-demo-bucket", "Action": [ "s3express:CreateSession" ] } ] }
Criação e configuração de um cluster
Em seguida, crie um cluster que execute o SparkHBase, 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 AWS Management Console:
-
Navegue até o EMR console da Amazon e selecione Clusters na barra lateral. Depois, selecione Criar cluster.
-
Se você usa o Spark, selecione a EMR versão Amazon
emr-6.15.0
ou superior. Se você usa HBase o Flink ou o Hive, selecioneemr-7.2.0
ou superior. -
Selecione os aplicativos que você deseja incluir em seu cluster, como Spark ou Flink. HBase
-
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 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" } } ] -
Na EMR seção Perfil de EC2 instância da Amazon, escolha usar uma função existente e use uma função com a política anexada que você criou na Criação de uma política de permissões seção acima.
-
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
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 a AmazonEMR, conforme descrito na Criação e configuração de um cluster seção.
S3A configurações
Parameter | Valor padrão | Valor sugerido | Explicação |
---|---|---|---|
|
Se não for especificado, usa |
|
A função do perfil da EMR instância da Amazon deve ter a política que permita a S3A sistema de arquivos a ser chamado. |
|
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. |
|
|
|
O valor |
|
|
nenhuma |
Detecção de alterações por S3A funciona verificando MD5baseado |
Spark configurações
Parameter | Valor padrão | Valor sugerido | Explicação |
---|---|---|---|
|
|
false
|
A otimização interna usa um API parâmetro S3 que a classe de armazenamento S3 Express One Zone não suporta. |
Considerações
Considere o seguinte ao integrar o Apache Spark na Amazon EMR com a classe de armazenamento S3 Express One Zone:
-
O conector S3A é necessário para usar o S3 Express One Zone com a 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.
-
A classe de armazenamento Amazon S3 Express One Zone só é compatível com o Spark em um EMR cluster da Amazon executado na Amazon. EC2
-
A classe de armazenamento Amazon S3 Express One Zone suporta somente SSE-S3 criptografia. Para obter mais informações, consulte Criptografia do lado do servidor com chaves gerenciadas do Amazon S3 (-S3). SSE
-
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 S3AFileOutputCommitter
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 EMR versões 6.15.0 e posteriores da Amazon. EMR EC2 Além disso, é compatível com as EMR versões 7.2.0 e superiores da Amazon na Amazon EMR on EKS e no Amazon EMR Serverless.