“This command is not allowed on an ACID table 
analytics_user_vws.liveramp_events with a non-ACID transaction manager.”

Indicates that 
“hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager” is not taking 
effect.  When enabling acid you usually want to set this (and other relevant 
properties) hive-site.xml so that all sessions agree on which lock manager/txn 
manager they are using.

Eugene

From: Colin Williams <colin.williams.seat...@gmail.com>
Reply-To: "user@hive.apache.org" <user@hive.apache.org>
Date: Thursday, February 15, 2018 at 8:54 AM
To: "user@hive.apache.org" <user@hive.apache.org>
Subject: Re: Hive beeline and ACID tables.

Looking back I may have omitted the --hiveconf setting. I will try creating the 
table again today and see if that was the issue.

On Thu, Feb 15, 2018 at 8:51 AM, Colin Williams 
<colin.williams.seat...@gmail.com<mailto:colin.williams.seat...@gmail.com>> 
wrote:
Hi Johannes. I did set the "transactional" property to true like:

tblproperties("transactional"="true");
And also stored as orc and bucketed and partitioned the table. Finally I did 
use double -- for setting the hiveconf. Then there must be some other issue 
regarding using the ACID tables.


On Wed, Feb 14, 2018 at 9:08 PM, Johannes Alberti 
<johan...@altiscale.com<mailto:johan...@altiscale.com>> wrote:
Hi Collin,

you need to set the table property “transactional” to true, this will mark the 
table as ACID.

See also the example all the way at the bottom of this link.

https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions

For your error, the SELECT, maybe it is simply a copy-n-paste issue in your 
mail, but your hiveconf parameter is missing a - ... it is beeline --hiveconf 
..., not beeline -hiveconf ....

Regards,

Johannes

Sent from my iPhone

On Feb 14,  2018, at 5:27 PM, Colin Williams 
<colin.williams.seat...@gmail.com<mailto:colin.williams.seat...@gmail.com>> 
wrote:
Hello,
I'm new to hive and had been porting some Redshift SQL to Hive. Today I ran 
across a table that uses update.

After a somewhat time consuming translation process I was able to load the 
create table definition. However the update part returned an error about update 
not supported on non-acid table.
Then I read some documentation, added bucketing to the table definition, added 
beeline xml file, etc. Then I launch the create table script like

`beeline --hiveconf hive.support.concurrency=true 
hive.exec.dynamic.partition.mo<http://hive.exec.dynamic.partition.mo>de=nonstrict
 hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager -f 
./events.sql`
beeline executes part of the SQL file but then provides no more output.
To figure out what was going on I tried to query the table


beeline -hiveconf hive.support.concurrency=true 
hive.exec.dynamic.partition.mo<http://hive.exec.dynamic.partition.mo>de=nonstrict
 hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager -e "Select * 
from analytics.events limit 10;"
Connecting to jdbc:hive2://REDACTED
REDACTED
Connected to: Apache Hive (version 2.3.2-amzn-0)
Driver: Hive JDBC (version 2.3.2-amzn-0)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Error: Error while compiling statement: FAILED: SemanticException [Error 
10265]: This command is not allowed on an ACID table 
analytics_user_vws.liveramp_events with a non-ACID transaction manager. Failed 
command: Select * from analytics_user_vws.liveramp_events limit 10 
(state=42000,code=10265)
Closing: 0: jdbc:hive2://

Why am I not getting that error from creating the table? ( and no INFO from 
beeline)

Also can somebody help me figure out what I need to do to be able to create the 
ACID table?
Thanks


Reply via email to