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
| Problema | Causa provável | Solução |
|---|---|---|
| Trino não encontra tabelas | URI do Metastore incorreta no catálogo | Verificar nome do serviço e namespace |
Endpoints do serviço <none> | Seletor do Service não corresponde ao pod | O override do chart deve corrigir automaticamente — verificar se o deploy foi concluído |
| Timeout na conexão Thrift | Metastore sobrecarregado ou pod não pronto | Verificar max_connections do PostgreSQL e status do pod |
| Spark não acessa tabelas Hive | hive.metastore.uris não configurado | Verificar 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.