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á.
Visão geral
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 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
-
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 política do IAM deve permitir as3express:CreateSession
permissão para que o S3A o conector pode invocar aCreateSession
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 política do IAM 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. 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.
{
"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 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 AWS Management Console:
-
Navegue até o console do Amazon EMR e selecione Clusters na barra lateral. Depois, selecione Criar cluster.
-
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, 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 seção Perfil de EC2 instância do Amazon EMR, 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 o Amazon EMR, conforme descrito na seção Criação e configuração de um cluster.
S3A configurações
Parameter | Valor padrão | Valor sugerido | Explicação |
---|---|---|---|
|
Se não for especificado, usa |
|
A função do perfil da instância do Amazon EMR 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 parâmetro de API do S3 que não é compatível com a classe de armazenamento S3 Express One Zone. |
Hive configurações
Parameter | Valor padrão | Valor sugerido | Explicação |
---|---|---|---|
|
|
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
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.
-
A classe de armazenamento Amazon S3 Express One Zone só é compatível com o Spark em um cluster do Amazon EMR 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 pelo Amazon S3 (SSE-S3).
-
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 o Amazon EMR versões 6.15.0 e superiores no EMR on. 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.