Get started (free)

Thrift API compatibility

Stackable images for Apache Hive serve two metastore Thrift methods that upstream Hive removed in 4.0.1:

  • get_table

  • get_table_objects_by_name

HIVE-26537 deleted them in favour of the request-based get_table_req and get_table_objects_by_name_req, which take a request struct so that fields can be added without breaking the wire.

Why they are restored

Any metastore client built against Hive 2.3 still calls the removed methods, and Hive 2.3 is what Apache Spark bundles: 2.3.9 in Spark 3.5, and 2.3.10 in Spark 4.0 through 4.2. Apache Iceberg’s HiveCatalog reaches the metastore through IMetaStoreClient, so it uses whichever client Spark supplies. Against an unpatched Hive 4.0.1 or newer metastore, an Iceberg job therefore fails with:

TApplicationException: Invalid method name: 'get_table'

This is tracked upstream in apache/iceberg#12878. Restoring the two methods keeps Spark and Iceberg working against a current Hive metastore.

This makes the Apache Hive metastore shipped by Stackable more permissive than an upstream Hive 4 metastore.

Versions

All versions of Hive shipped by Stackable contain these methods.