Support Questions

Find answers, ask questions, and share your expertise
Celebrating as our community reaches 100,000 members! Thank you!

Hive parameters names changed? (hive.enforce.bucketing vs. enforce.bucketing)



I’m using HDP 2.6 sandbox.

Connecting to Hive using ODBC and running this command:

set hive.enforce.bucketing=true

I noticed some strange behavior:

  1. Using ODBC driver version – works fine, without additional Hive configuration
  2. Using ODBC driver version – doesn't work, requires adding the parameter to whitelist append list:
(80) Syntax or semantic analysis error thrown in server while executing query.
Error message from server: Error while processing statement: Cannot modify enforce.bucketing
at runtime. It is not in list of params that are allowed to be modified at

I added hive.enforce.bucketing to the whitelist and it still didn't work.

Then I noticed that the error is about enforce.bucketing - without the "hive." prefix. So I added the shorter name to whitelist - and now both "enforce.bucketing" and "hive.enforce.bucketing" can be set via ODBC.

This is just an example, I found other parameters that changed to shorter names as well. In previous HDP versions, the long names were used.

Do you know the exact version in which this change took place and why?

And how come the old ODBC driver is working fine without adding anything to the whitelist?



Rising Star

hi @ozac, As per this has been removed. You neednot set this property Hive 2.x onward. HDP 2.6 ships with Apache Hive 2.1.0 version and hence you will be facing this issue. This is will set automatically


Hi @akapratwar,

This is only an example, other parameter names where changed as well.

My application may work with different Hadoop versions and different ODBC drivers, depends on each environment.

What I'm trying to figure out is which Hadoop version introduced the parameter names change and why older ODBC driver do not require any configuration of whitelist on Hive.