Saltar para o conteúdo principal
Versão 3.0.0

Integração — Hive Metastore

O Hive Metastore funciona como repositório central de metadados para tabelas Hive, Delta Lake e Iceberg no TDP. Outros componentes — principalmente Trino e Spark — conectam-se a ele via protocolo Thrift na porta 9083.

Endereço do serviço

O serviço do Hive Metastore dentro do cluster segue o padrão:

<release>-metastore.<namespace>.svc.cluster.local:9083

Exemplo com o release padrão tdp-hive-metastore-project no namespace tdp-project:

tdp-hive-metastore-project-metastore.tdp-project.svc.cluster.local:9083

Para verificar que o serviço tem endpoints ativos após o deploy:

kubectl get endpoints -n tdp-project tdp-hive-metastore-project-metastore

O campo ENDPOINTS deve mostrar o IP do pod na porta 9083. Se exibir <none>, o seletor do serviço não corresponde ao pod — o chart tdp-hive-metastore inclui um override (hive-service-override.yaml) que corrige esse problema automaticamente.

Integração com Trino

O Trino usa o Hive Metastore como catálogo para tabelas Hive e Iceberg. A URI do Metastore é configurada na definição do catálogo Trino:

trino:
additionalCatalogs:
hive: |
connector.name=hive
hive.metastore.uri=thrift://tdp-hive-metastore-project-metastore.<namespace>.svc.cluster.local:9083

iceberg: |
connector.name=iceberg
hive.metastore.uri=thrift://tdp-hive-metastore-project-metastore.<namespace>.svc.cluster.local:9083

Ajuste o endereço conforme o nome do release e o namespace utilizados no seu ambiente.

Integração com Spark (catálogo Iceberg)

Para jobs Spark que acessam tabelas Iceberg via Hive Metastore como catálogo:

maintenance:
spark:
config:
"spark.sql.catalog.iceberg": "org.apache.iceberg.spark.SparkCatalog"
"spark.sql.catalog.iceberg.type": "hive"
"spark.sql.catalog.iceberg.uri": "thrift://tdp-hive-metastore-project-metastore.<namespace>.svc.cluster.local:9083"

Para o chart tdp-spark:

spark:
sparkConf:
"spark.sql.catalog.hive_metastore": "org.apache.spark.sql.hive.HiveExternalCatalog"
"spark.hadoop.hive.metastore.uris": "thrift://tdp-hive-metastore-project-metastore.<namespace>.svc.cluster.local:9083"

Verificar conectividade

Para testar se o Metastore está acessível a partir de outro pod no cluster:

kubectl -n <namespace> port-forward svc/tdp-hive-metastore-project-metastore 9083:9083

Com o port-forward ativo, ferramentas que suportam o protocolo Thrift podem conectar-se em localhost:9083.

Resolução de Problemas

ProblemaCausa provávelSolução
Trino não encontra tabelasURI do Metastore incorreta no catálogoVerificar nome do serviço e namespace
Endpoints do serviço <none>Seletor do Service não corresponde ao podO override do chart deve corrigir automaticamente — verificar se o deploy foi concluído
Timeout na conexão ThriftMetastore sobrecarregado ou pod não prontoVerificar max_connections do PostgreSQL e status do pod
Spark não acessa tabelas Hivehive.metastore.uris não configuradoVerificar spark.hadoop.hive.metastore.uris nos valores Spark

Para a lista completa de parâmetros, use helm show values na versão do chart que instalou.