Saltar para o conteúdo principal
Versão 3.0

Integração — Hive Metastore

ChartVersion3.0.1TypeapplicationAppVersion4.0.0
CompatibilidadeKubernetes1.32+OpenShift4.19+Rancher2.10.x+

Visão geral das integrações

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

O próprio Hive Metastore pode usar um PostgreSQL externo (tdp-postgresql) como seu banco de metadados — consulte Configuração do Hive Metastore.

Endereço do serviço

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

<RELEASE_NAME>-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 — verifique se o deploy foi concluído e se os labels do pod correspondem ao seletor do Service.

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.

Soluçã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 podVerificar se o deploy foi concluído e se os labels do pod correspondem ao seletor do Service
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.