stackabletech / stackabletech/hive-operator
HMS 4.x metadata transformer silently rewrites schema locations
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 29
- Forks
- 2
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 12
Description
Affected Stackable version
26.7
Affected Apache Hive version
4.0.0
Current and expected behavior
Hive 4 introduced metastore.metadata.transformer.class and defaults it to org.apache.hadoop.hive.metastore.MetastoreDefaultTransformer.
Against a metastore used by Trino, the transformer causes two distinct failures:
- Schema locations are silently rewritten on read. A schema created with an explicit
locationunderhive.metastore.warehouse.diris stored correctly inDBS, but every read through the Thrift API returns<warehouse>/<dbname>.dbinstead. Trino's Iceberg connector derives new table locations from that value, so tables land in the wrong prefix. CREATE TABLEthrough the Trino Hive connector is converted fromMANAGED_TABLEtoEXTERNAL_TABLE. Trino then refuses to write to its own table withCannot write to non-managed Hive table, soINSERT INTOis broken for every table created through the Hive connector.
Possible solution
For our use cases, disabling the transformer may be the right choice here.
Workaround
Disable the transformer through the metastore's config overrides. Note the value is a single
space, not an empty string:
spec:
metastore:
configOverrides:
hive-site.xml:
metastore.metadata.transformer.class: " "
Additional context
No response
Environment
k8s: v1.35.1 - also seen on OpenShift environments
Would you like to work on fixing this bug?
None
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the Hive 4.0.0 metastore behavior with Trino, focusing on schema-location reads and tables created through the Hive connector. Inspect how the operator configures metastore.metadata.transformer.class and verify whether disabling the transformer preserves explicit locations and managed-table behavior. Done means the configuration is handled appropriately and both reported failures are resolved or clearly prevented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, rust
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100