Todos os produtos
Search
Central de documentação

E-MapReduce:Funções de aplicação ECS para EMR V3.32 e anteriores e EMR V4.5 e anteriores

Última atualização: Sep 17, 2026

O E-MapReduce (EMR) vincula automaticamente uma função de aplicação ECS chamada MetaService a cada cluster criado. Jobs e aplicações em execução no cluster usam essa função para acessar recursos da Alibaba Cloud sem exigir um par de AccessKey nos arquivos de configuração ou no código, o que elimina o risco de exposição de credenciais.

O MetaService permite acesso aos seguintes service sem um par de AccessKey:

Serviço

Ativado por padrão

Object Storage Service (OSS)

Sim

Log Service

Não — requer permissões adicionais do RAM

Message Service (MNS)

Não — requer permissões adicionais do RAM

Para ative o acesso ao Log Service ou ao MNS, conceda as permissões necessárias à função AliyunEmrEcsDefaultRole no console do RAM. Para mais informações, consulte Grant permissions to a RAM role.

Pré-requisitos

Antes de começar, verifique se você já:

Como o MetaService funciona

Quando um job ou aplicação chama um service compatível da Alibaba Cloud, o MetaService fornece uma credencial temporária do Security Token Service (STS) em segundo plano. Assim, não é necessário incluir um par de AccessKey no código ou na configuração.

Rotação de credenciais STS: O sistema gera uma nova credencial temporária do STS 30 minutos antes da expiração da atual. Ambas as credenciais permanecem válidas durante essa janela de sobreposição de 30 minutos.

Permissões padrão

A função AliyunEmrEcsDefaultRole vem configurada com a política AliyunEmrECSRolePolicy, que concede as permissões listadas abaixo.

Permissões do OSS

Permissão (Action)

Descrição

oss:PutObject

Faz upload de um arquivo ou pasta

oss:GetObject

Consulta um arquivo ou pasta

oss:ListObjects

Lista arquivos

oss:DeleteObject

Exclui um arquivo

oss:ListBuckets

Lista buckets

oss:AbortMultipartUpload

Cancela um evento de upload multipart

oss:ListMultipartUploads

Lista todos os eventos de upload multipart em andamento

oss:RestoreObject

Restaura um objeto Archive ou Cold Archive

oss:GetBucketInfo

Obtém informações sobre um bucket

oss:ListObjectVersions

Lista as versões de todos os objetos em um bucket, incluindo marcadores de exclusão

oss:DeleteObjectVersion

Exclui uma versão específica de um objeto

oss:PostDataLakeStorageFileOperation

Acessa o OSS-HDFS

Permissões do Tablestore

Permissão (Action)

Descrição

ots:CreateTable

Crie uma tabela com base no schema especificado

ots:DeleteTable

Exclui uma tabela específica da instância atual

ots:GetRow

Lê dados de uma única linha com base em uma chave primária específica

ots:PutRow

Insira dados em uma linha específica

ots:UpdateRow

Atualiza dados em uma linha específica

ots:DeleteRow

Exclui uma linha de dados

ots:GetRange

Lê dados dentro de um intervalo de valores específico da chave primária

ots:BatchWriteRow

Insira, modifica ou exclui várias linhas de dados de uma ou mais tabelas simultaneamente

ots:BatchGetRow

Lê várias linhas de dados de uma ou mais tabelas simultaneamente

ots:ComputeSplitPointsBySize

Divide logicamente os dados de uma tabela em vários shards com tamanhos próximos ao especificado e retorna os pontos de divisão entre os shards, além de informações sobre os hosts onde as partições residem

ots:StartLocalTransaction

Inicia uma transação local com base em um valor de chave de partição especificado e obtém o ID da transação

ots:CommitTransaction

Confirma uma transação local

ots:AbortTransaction

Cancela uma transação local

Permissões do Data Lake Formation (DLF)

Permissão (Action)

Descrição

dlf:BatchCreatePartitions

Crie múltiplas partições simultaneamente

dlf:BatchCreateTables

Crie múltiplas tabelas simultaneamente

dlf:BatchDeletePartitions

Exclui múltiplas partições simultaneamente

dlf:BatchDeleteTables

Exclui múltiplas tabelas simultaneamente

dlf:BatchGetPartitions

Consulta informações de múltiplas partições simultaneamente

dlf:BatchGetTables

Consulta informações de múltiplas tabelas simultaneamente

dlf:BatchUpdatePartitions

Atualiza múltiplas partições simultaneamente

dlf:BatchUpdateTables

Atualiza múltiplas tabelas simultaneamente

dlf:CreateDatabase

Crie um banco de dados

dlf:CreateFunction

Crie uma função

dlf:CreatePartition

Crie uma partição

dlf:CreateTable

Crie uma tabela

dlf:DeleteDatabase

Exclui um banco de dados

dlf:DeleteFunction

Exclui uma função

dlf:DeletePartition

Exclui uma partição

dlf:DeleteTable

Exclui uma tabela

dlf:GetDatabase

Consulta informações sobre um banco de dados

dlf:GetFunction

Consulta informações sobre uma função

dlf:GetPartition

Consulta informações sobre uma partição

dlf:GetTable

Consulta informações sobre uma tabela

dlf:ListCatalogs

Lista catálogos

dlf:ListDatabases

Lista bancos de dados

dlf:ListFunctionNames

Lista os nomes das funções

dlf:ListFunctions

Lista funções

dlf:ListPartitionNames

Lista os nomes das partições

dlf:ListPartitions

Lista partições

dlf:ListPartitionsByExpr

Consulta partições de tabelas de metadados por condições

dlf:ListPartitionsByFilter

Consulta partições de tabelas de metadados por filtros

dlf:ListTableNames

Lista os nomes das tabelas

dlf:ListTables

Lista tabelas

dlf:RenamePartition

Renomeia uma partição

dlf:RenameTable

Renomeia uma tabela

dlf:UpdateDatabase

Atualiza um banco de dados

dlf:UpdateFunction

Atualiza uma função

dlf:UpdateTable

Atualiza uma tabela

dlf:UpdateTableColumnStatistics

Atualiza as estatísticas de uma tabela de metadados

dlf:GetTableColumnStatistics

Consulta as estatísticas de uma tabela de metadados

dlf:DeleteTableColumnStatistics

Exclui as estatísticas de uma tabela de metadados

dlf:UpdatePartitionColumnStatistics

Atualiza as estatísticas de uma partição

dlf:GetPartitionColumnStatistics

Consulta as estatísticas de uma partição

dlf:DeletePartitionColumnStatistics

Exclui as estatísticas de uma partição

dlf:BatchGetPartitionColumnStatistics

Consulta as estatísticas de múltiplas partições simultaneamente

dlf:CreateLock

Crie um bloqueio de metadados

dlf:UnLock

Desbloqueia um bloqueio de metadados específico

dlf:AbortLock

Cancela um bloqueio de metadados

dlf:RefreshLock

Renova um bloqueio de metadados

dlf:GetLock

Consulta informações sobre um bloqueio de metadados

dlf:GetAsyncTaskStatus

Consulta o status de uma tarefa assíncrona

dlf:DeltaGetPermissions

Consulta permissões

dlf:GetPermissions

Consulta informações sobre permissões de dados

dlf:GetServiceInfo

Consulta informações sobre um service

dlf:GetRoles

Consulta informações sobre funções nas permissões de dados

dlf:CheckPermissions

Verifica permissões de dados

Uso do MetaService

Escolha a abordagem adequada para sua carga de trabalho:

Cenário

Abordagem

Benefício

Jobs em execução no cluster (Hadoop, Hive, Spark)

Use caminhos simplificados do OSS

Acesse o OSS sem credenciais no caminho

Serviços autogerenciados ou aplicações personalizadas

Chame a API HTTP do MetaService

Obtenha credenciais temporárias do STS para OSS, Log Service e MNS

Acesso ao OSS a partir de jobs do cluster

Com o MetaService ativo, use o formato de caminho simplificado em qualquer job do cluster:

oss://<bucket-name>/<object-path>

O MetaService gerencia a autenticação automaticamente, dispensando a inclusão de credenciais no caminho. Isso também melhora a experiência de interação com recursos do OSS, pois o caminho a ser inserido torna-se significativamente mais curto.

Hadoop — listar objetos:

# Without MetaService (credentials embedded in path)
hadoop fs -ls oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c

# With MetaService (simplified path)
hadoop fs -ls oss://bucket/a/b/c

Hive — crie uma tabela externa baseada no OSS:

-- Without MetaService (credentials embedded in path)
CREATE EXTERNAL TABLE test_table(id INT, name string)
        ROW FORMAT DELIMITED
        FIELDS TERMINATED BY '/t'
        LOCATION 'oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c';

-- With MetaService (simplified path)
CREATE EXTERNAL TABLE test_table(id INT, name string)
        ROW FORMAT DELIMITED
        FIELDS TERMINATED BY '/t'
        LOCATION 'oss://bucket/a/b/c';

Spark — ler dados do OSS:

// Without MetaService (credentials embedded in path)
val data = sc.textFile("oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c")

// With MetaService (simplified path)
val data = sc.textFile("oss://bucket/a/b/c")

Obtenção de credenciais STS em serviços autogerenciados

O MetaService expõe uma API HTTP em http://localhost:10011 em cada nó do cluster. Chame esses endpoints para obter a credencial temporária do STS necessária para que sua aplicação acesse recursos da Alibaba Cloud sem um par de AccessKey.

Exemplo — obter a região do cluster:

curl http://localhost:10011/cluster-region

Endpoints disponíveis:

Endpoint

Retorno

/cluster-region

Região onde o cluster está localizado

/cluster-role-name

Nome da função

/role-access-key-id

AccessKey ID da credencial STS

/role-access-key-secret

AccessKey secret da credencial STS

/role-security-token

Token de segurança da credencial STS

/cluster-network-type

Tipo de rede

Observações de uso

Importante

Modifique ou exclua a função AliyunEmrEcsDefaultRole com cautela. A exclusão ou configuração incorreta dessa função causa falhas na criação de clusters e na execução de jobs. Para minimizar riscos de segurança, siga o princípio do menor privilégio ao configurar permissões no console do RAM.