Todos os produtos
Search
Central de documentação

E-MapReduce:Conector Hive

Última atualização: Jun 27, 2026

O conector Hive consulta e analisa dados armazenados em um data warehouse Hive por meio do Presto.

Um data warehouse Hive é composto por três componentes:

  • Arquivos de dados em formatos como ORC e Parquet. Esses arquivos geralmente ficam armazenados no Hadoop Distributed File System (HDFS) ou em um sistema de armazenamento de objetos, como o Alibaba Cloud Object Storage Service (OSS).

  • Metadados que mapeiam os arquivos de dados para schemas e tabelas. Esses metadados residem em um banco de dados, como MySQL, e são acessados via metastore do Hive.

  • HiveQL, uma linguagem de consulta executada em frameworks de computação distribuída, como MapReduce ou Tez.

O Presto utiliza apenas os arquivos de dados e os metadados, sem usar o HiveQL.

Pré-requisitos

Antes de começar, verifique se você possui:

  • Um cluster de data lake ou cluster Hadoop com o serviço Presto selecionado. Para mais informações, consulte Criar um cluster.

Limitações

  • Configure um metastore do Hive antes de configurar o conector Hive.

  • O conector Hive oferece suporte a HDFS, Alibaba Cloud OSS e sistemas de armazenamento compatíveis com OSS. O nó coordenador e todos os nós workers do Presto precisam ter acesso tanto ao metastore do Hive quanto ao sistema de armazenamento de destino. Por padrão, o acesso ao metastore do Hive ocorre pelo protocolo Thrift na porta 9083.

Configuração

Para modificar a configuração do conector Hive, consulte Configurar conectores.

Configuração padrão

Na página do serviço Presto no console EMR, clique em Configure e, em seguida, clique em hive.properties para visualizar e editar essas propriedades.

Propriedade

Descrição

Padrão

hive.recursive-directories

Define se os dados devem ser lidos dos subdiretórios de uma tabela ou partição. Equivalente à propriedade hive.mapred.supports.subdirectories no Hive.

-

hive.metastore.uri

URI para acessar o metastore do Hive via protocolo Thrift. Formato: thrift://<master node name>.cluster-24****:9083.

-

hive.config.resources

Lista separada por vírgulas de arquivos de configuração do HDFS. Os arquivos devem existir em todos os hosts do Presto. Defina esta propriedade apenas ao acessar o HDFS.

-

hive.delta-table-enabled

Indica se o Presto pode ler tabelas do Delta Lake.

true

hive.delta-compatible-mode-enabled

Habilita o modo de compatibilidade para tabelas do Delta Lake.

true

hive.hdfs.impersonation.enabled

Ativa a representação de usuário do HDFS.

-

Múltiplos clusters Hive

Para conectar o Presto a vários clusters Hive, crie múltiplos arquivos .properties no diretório etc/catalog. O nome do arquivo (sem a extensão) torna-se o nome do catálogo. Por exemplo, um arquivo chamado sales.properties cria um catálogo denominado sales.

Configuração do HDFS

Na maioria dos casos, o Presto configura o cliente HDFS automaticamente. Para federação HDFS ou modo de alta disponibilidade do NameNode, adicione a propriedade hive.config.resources para referenciar os arquivos de configuração necessários do HDFS.

Importante

Especifique arquivos de configuração somente quando necessário. Isso minimiza a quantidade de propriedades e reduz o risco de incompatibilidades. Certifique-se de que os arquivos de configuração existam em todos os hosts do Presto. Se você referenciar um arquivo de configuração existente do Hadoop, copie-o para todos os nós do Presto que não executam o Hadoop.

Nome de usuário e permissões do HDFS

Antes de executar CREATE TABLE ou CREATE TABLE AS no Presto, verifique se a conta HDFS do Presto tem permissão para acessar o diretório de warehouse do Hive. O diretório de warehouse é especificado por hive.metastore.warehouse.dir em hive-site.xml. O caminho padrão é /user/hive/warehouse.

Formatos de arquivo suportados

Formato de arquivo

Observações

ORC

-

Parquet

-

Avro

-

RCText

RCFile que utiliza a classe ColumnarSerDe.

RCBinary

RCFile que utiliza a classe LazyBinaryColumnarSerDe.

SequenceFile

-

JSON

Utiliza a classe org.apache.hive.hcatalog.data.JsonSerDe.

CSV

Utiliza a classe org.apache.hadoop.hive.serde2.OpenCSVSerde.

TextFile

-

Tipos de tabela suportados

Tipo de tabela

Descrição

Tabela ACID (Atomicidade, Consistência, Isolamento, Durabilidade)

Com a versão 3.X do metastore do Hive, o conector Hive suporta leitura e escrita em tabelas insert-only e ACID. O particionamento e o bucketing são totalmente suportados. Operações de DELETE e UPDATE no nível de linha são permitidas em tabelas ACID. Colunas de chave de partição e colunas de bucket não podem ser atualizadas. O Hive Streaming Ingest não pode criar tabelas ACID. Para mais informações, consulte Streaming Data Ingest.

View materializada

O conector Hive lê views materializadas do Hive. No Presto, as views materializadas aparecem como tabelas comuns e somente leitura.

Views do Hive

As views do Hive são definidas em HiveQL e armazenadas em um metastore do Hive. O conector Hive suporta três modos de visualização: Disabled, Legacy e Experimental.

Modo

Descrição

Disabled

As views são ignoradas. A lógica de negócios e os dados codificados nas views não ficam visíveis no Presto. Este é o modo padrão.

Legacy

Adequado para views simples do Hive. Para ativar este modo, defina hive.translate-hive-views=true e hive.legacy-hive-view-translation=true. Para ativá-lo apenas para um catálogo específico, defina a propriedade de sessão do catálogo legacy_hive_view_translation como true. Neste modo, as consultas HiveQL que definem uma view são interpretadas como SQL sem tradução. Isso funciona para views simples, mas pode produzir resultados incorretos ou falhar em consultas complexas onde as funções HiveQL se comportam de maneira diferente de suas equivalentes em SQL.

Experimental

Analisa, processa e reescreve as views do Hive, incluindo suas expressões e instruções. Para habilitar este modo, defina hive.translate-hive-views=true (sem ativar o sinalizador legacy). Os seguintes recursos não são suportados: current_date, current_timestamp e funções similares do HiveQL; translate(), window functions e funções similares do Hive; common table expressions e expressões case simples; configurações de precisão de timestamp; mapeamento correto entre tipos de dados do Hive e do Presto; user-defined functions (UDFs).

Propriedades de configuração

Aceleração de consulta JindoTable

Cada cluster EMR possui dois conectores Hive integrados: hive.properties e hive-acc.properties. O conector hive-acc.properties inclui o mecanismo nativo JindoTable, que acelera consultas em arquivos ORC e Parquet. Para mais informações, consulte o tópico sobre aceleração de consulta correspondente à sua versão do SmartData. Por exemplo, se você usa o SmartData 3.6.X, veja Ativar aceleração de consulta baseada em mecanismo nativo.

Propriedades gerais

Propriedade

Descrição

Padrão

hive.config.resources

Lista separada por vírgulas de arquivos de configuração do HDFS. Os arquivos devem existir em todos os hosts do Presto. Defina esta propriedade apenas ao acessar o HDFS.

-

hive.recursive-directories

Define se os dados devem ser lidos dos subdiretórios de uma tabela ou partição. Equivalente à propriedade hive.mapred.supports.subdirectories no Hive.

-

hive.ignore-absent-partitions

Determina se uma partição cujo caminho de arquivo não existe deve ser ignorada, em vez de causar falha na consulta. Quando uma partição é ignorada, alguns dados da tabela podem ser omitidos.

false

hive.storage-format

Formato de arquivo padrão para novas tabelas.

ORC

hive.compression-codec

Codec de compressão para escrita de dados. Valores válidos: NONE, SNAPPY, LZ4, ZSTD, GZIP.

GZIP

hive.force-local-scheduling

Força o agendamento de splits no nó onde o DataNode armazena os dados do split. Melhora o desempenho quando o Presto está localizado nos mesmos nós dos DataNodes.

false

hive.respect-table-format

Define se as novas partições usam o formato existente da tabela (true) ou o formato padrão do Presto (false).

true

hive.immutable-partitions

Impede a inserção de novos dados em partições existentes. Quando definido como true, hive.insert-existing-partitions-behavior não pode ser definido como APPEND.

false

hive.insert-existing-partitions-behavior

Comportamento adotado ao inserir dados em uma partição existente. Valores válidos: APPEND (anexar dados), OVERWRITE (sobrescrever dados), ERROR (rejeitar a operação).

APPEND

hive.create-empty-bucket-files

Cria um arquivo vazio para um bucket que não contém dados.

false

hive.max-partitions-per-writers

Número máximo de partições por writer.

100

hive.max-partitions-per-scan

Quantidade máxima de partições para uma única varredura de tabela.

100000

hive.hdfs.authentication.type

Modo de autenticação do HDFS. NONE desativa a autenticação Kerberos. KERBEROS ativa a autenticação Kerberos.

NONE

hive.hdfs.impersonation.enabled

Ativa a representação de usuário do HDFS.

false

hive.hdfs.trino.principal

Principal Kerberos para o Presto se conectar ao HDFS.

-

hive.hdfs.trino.keytab

Caminho do arquivo de chave para o cliente HDFS.

-

hive.dfs.replication

Fator de replicação do HDFS.

-

hive.security

Modo de segurança. Para mais detalhes, consulte Configuração de segurança do conector Hive.

legacy

security.config-file

Caminho do arquivo de configuração de segurança. Obrigatório quando hive.security está definido como file.

-

hive.non-managed-table-writes-enabled

Permite a escrita de dados em tabelas Hive não gerenciadas (externas).

false

hive.non-managed-table-creates-enabled

Permite a criação de tabelas Hive não gerenciadas (externas).

true

hive.collect-column-statistics-on-write

Coleta automaticamente estatísticas no nível da coluna durante a escrita de dados.

true

hive.file-status-cache-tables

Tabelas a serem armazenadas em cache. Por exemplo, fruit.apple,fruit.orange armazena em cache apenas as tabelas apple e orange no schema fruit. fruit.*,vegetable.* armazena todas as tabelas nos schemas fruit e vegetable. * armazena todas as tabelas de todos os schemas.

-

hive.file-status-cache-size

Número máximo de entradas de status de arquivo em cache.

1000000

hive.file-status-cache-expire-time

Tempo de expiração para listagens de diretórios em cache, em minutos.

1

hive.rcfile.time-zone

Fuso horário para ajustar valores de timestamp codificados binariamente. Para Hive 3.1 ou posterior, defina como UTC.

Padrão da JVM

hive.timestamp-precision

Precisão para colunas TIMESTAMP do Hive. Valores válidos: MILLISECONDS, MICROSECONDS, NANOSECONDS. Valores com precisão superior são arredondados.

MILLISECONDS

hive.temporary-staging-directory-enabled

Usa o diretório temporário de staging especificado por hive.temporary-staging-directory-path para escrita de dados. Diretórios temporários de staging não estão disponíveis ao escrever em tabelas não ordenadas no OSS, HDFS criptografado ou sistemas externos. Quando definido como false, o armazenamento de destino guarda arquivos temporários durante operações de classificação, o que reduz a eficiência de escrita para tabelas ordenadas em armazenamento de objetos.

true

hive.temporary-staging-directory-path

Caminho do diretório temporário de staging para escrita de dados. Use o placeholder ${USER} para obter um caminho exclusivo por usuário.

/tmp/presto-${USER}

hive.translate-hive-views

Habilita a tradução de views do Hive.

false

hive.legacy-hive-view-translation

Usa o algoritmo legado para tradução de views do Hive. A propriedade de sessão do catálogo legacy_hive_view_translation pode substituir essa configuração para um catálogo específico.

false

hive.parallel-partitioned-bucketed-writes

Aumenta o paralelismo para escritas em tabelas particionadas e com bucketing. Quando definido como false, o número de threads de escrita não pode exceder o número de buckets.

true

Propriedades ORC

Propriedade

Descrição

Padrão

hive.orc.time-zone

Fuso horário padrão para arquivos ORC de versões anteriores que não declaram um fuso horário.

Padrão da JVM

hive.orc.use-columns-names

Acessa colunas ORC pelo nome em vez de sua posição sequencial na definição da tabela Hive. A propriedade de sessão do catálogo correspondente é orc_use_column_names.

false

Propriedades Parquet

Propriedade

Descrição

Padrão

hive.parquet.time-zone

Fuso horário para ajustar valores de timestamp. Para Hive 3.1 ou posterior, defina como UTC.

Padrão da JVM

hive.parquet.use-columns-names

Acessa colunas Parquet pelo nome em vez de sua posição sequencial na definição da tabela Hive. Quando definido como true, a ordem das colunas não precisa corresponder à do arquivo Parquet. A propriedade de sessão do catálogo correspondente é parquet_use_column_names.

-

Propriedades do Metastore

As propriedades abaixo configuram o metastore do Hive. Para propriedades específicas do Thrift, consulte Propriedades do metastore Thrift.

Propriedade

Descrição

Padrão

hive.metastore

Tipo de metastore do Hive. O Presto suporta o metastore baseado em Thrift e seus derivados.

thrift

hive.metastore-cache-ttl

Tempo de vida (TTL) para dados do metastore em cache, em segundos.

0

hive.metastore-cache-maximum-size

Quantidade máxima de objetos de dados do metastore em cache.

10000

hive.metastore-refresh-interval

Intervalo em que os dados do metastore em cache são atualizados assincronamente após o acesso. Apenas dados não expirados são atualizados.

-

hive.metastore-refresh-max-threads

Número máximo de threads para atualizar dados do metastore em cache.

10

hive.metastore-timeout

Tempo limite para requisições ao metastore do Hive, em segundos.

10

Propriedades do metastore Thrift

Propriedade

Descrição

Padrão

hive.metastore.uri

URI para acessar o metastore do Hive via protocolo Thrift. Quando múltiplas URIs são especificadas, a primeira é o metastore primário e as demais são secundárias. Obrigatório. Exemplo: thrift://192.0.**.**:9083 ou thrift://192.0.**.**:9083,thrift://192.0.**.**:9083.

-

hive.metastore.username

Nome de usuário para o Presto acessar o metastore do Hive.

-

hive.metastore.authentication.type

Modo de autenticação para o metastore do Hive. NONE desativa a autenticação Kerberos. KERBEROS ativa a autenticação Kerberos.

NONE

hive.metastore.thrift.impersonation.enabled

Habilita a representação de usuário para o metastore do Hive.

-

hive.metastore.thrift.delegation-token.cache-ttl

Tempo de vida do cache de delegation token, em horas.

1

hive.metastore.thrift.delegation-token.cache-maximum-size

Tamanho máximo do cache de delegation token.

1000

hive.metastore.thrift.client.ssl.enabled

Ativa SSL para a conexão com o metastore do Hive.

false

hive.metastore.thrift.client.ssl.key

Caminho da chave privada e do certificado do cliente no key store.

-

hive.metastore.thrift.client.ssl.key-password

Senha da chave privada.

-

hive.metastore.thrift.client.ssl.trust-certificate

Caminho da cadeia de certificados do servidor no trust store. Obrigatório quando o SSL está ativado.

-

hive.metastore.thrift.client.ssl.trust-certificate-password

Senha da cadeia de certificados do servidor.

-

hive.metastore.service.principal

Principal Kerberos do serviço de metastore do Hive.

-

hive.metastore.client.principal

Principal Kerberos para o Presto se conectar ao metastore do Hive.

-

hive.metastore.client.keytab

Caminho do arquivo keytab no cliente do metastore do Hive.

-

Propriedades de ajuste de desempenho

Importante

Modificar os valores padrão dessas propriedades pode causar instabilidade ou degradação de desempenho. Proceda com cautela.

Propriedade

Descrição

Padrão

hive.max-outstanding-splits

Número máximo de splits em cache por varredura de tabela antes que o agendador pause.

1000

hive.max-splits-per-second

Quantidade máxima de splits gerados por segundo para cada varredura de tabela. Limita a carga no sistema de armazenamento.

Sem limite

hive.max-initial-splits

Número máximo de splits iniciais. O coordenador atribui esses primeiros, cada um com até max-initial-split-size. Após essa atribuição, os splits subsequentes são dimensionados por max-split-size.

200

hive.max-initial-split-size

Tamanho máximo de cada split inicial atribuído a um nó worker. Splits menores aumentam o paralelismo e aceleram consultas pequenas.

32 MB

hive.max-split-size

Tamanho máximo de um único split atribuído a um nó worker. Splits menores aumentam o paralelismo, mas também elevam a sobrecarga e a carga do sistema.

64 MB

Estatísticas de tabela

O conector Hive coleta e gerencia estatísticas de tabela para melhorar o desempenho das consultas.

Durante a escrita de dados, o conector coleta automaticamente estatísticas básicas: contagem de arquivos, contagem de linhas, tamanho bruto dos dados e tamanho total dos dados. Ele também coleta as seguintes estatísticas no nível da coluna.

Tipo de coluna

Estatísticas coletadas

TINYINT

Contagem de nulos, contagem de distintos, valores mín/máx

SMALLINT

Contagem de nulos, contagem de distintos, valores mín/máx

INTEGER

Contagem de nulos, contagem de distintos, valores mín/máx

BIGINT

Contagem de nulos, contagem de distintos, valores mín/máx

DOUBLE

Contagem de nulos, contagem de distintos, valores mín/máx

REAL

Contagem de nulos, contagem de distintos, valores mín/máx

DECIMAL

Contagem de nulos, contagem de distintos, valores mín/máx

DATE

Contagem de nulos, contagem de distintos, valores mín/máx

TIMESTAMP

Contagem de nulos, contagem de distintos, valores mín/máx

VARCHAR

Contagem de nulos, contagem de distintos

CHAR

Contagem de nulos, contagem de distintos

VARBINARY

Contagem de nulos

BOOLEAN

Contagem de nulos, contagens de verdadeiro/falso