0
votes

I'm trying to run this command using beeline.

create table <table_1> like <table_2>

but it appears my Hive is configured to run in ACID mode. So this query fails with

Error: Error while compiling statement: FAILED: SemanticException [Error 10265]: This command is not allowed on an ACID table with a non-ACID transaction manager. Failed command: create table like (state=42000,code=10265)

What's correct syntax to run beeline query using ACID transaction manager without changing any global configuration ?

my beeline command is :

beeline -u <jdbc_con> -e "create table <table_1> like <table_2>";

I suppose I should use something like

hive>set hive.support.concurrency = true;
hive>set hive.enforce.bucketing = true;
hive>set hive.exec.dynamic.partition.mode = nonstrict;
hive>set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
hive>set hive.compactor.initiator.on = true;
hive>set hive.compactor.worker.threads = a positive number on at least one instance of the Thrift metastore service;

But how should I include this into beeline ? When I tried

beeline -u $jdbc_con -e "set hive.support.concurrency = true; create table <table_1>_test like <table_2>";

It seems it's not possible to change theses parameter this way.

Error: Error while processing statement: Cannot modify hive.support.concurrency at runtime. It is not in list of params that are allowed to be modified at runtime (state=42000,code=1)

Thank you for any help.

1

1 Answers

0
votes

You can set hive properties and run hive query from beeline as below :

beeline -u $jdbc_con \
--hiveconf "hive.support.concurrency=true" \
--hiveconf "hive.enforce.bucketing=true" \
-e "create table <table_1>_test like <table_2>"

Hope this is helpful.