본문 바로가기
빅데이터/hive

[hive] This command is not allowed on an ACID table default.table_name with a non-ACID transaction manager 오류 해결 방법

by hs_seo 2020. 3. 17.

하이브 트랜잭션 테이블을 조회할 때 발생하는 오류는 아래 두 가지 입니다. 트랜잭션 테이블은 현재 세션이 트랜잭션 세션이어야 하고, hive.support.concurrency=true일 때만 조회할 수 있습니다.

 

This command is not allowed on an ACID table default.table_name with a non-ACID transaction manager
FAILED: RuntimeException [Error 10264]: To use DbTxnManager you must set hive.support.concurrency=true

-- 설정을 하지 않은 상태에서 ACID 테이블인 table_name을 조회할 때 오류 발생 
hive (default)> select * from table_name;
FAILED: SemanticException [Error 10265]: This command is not allowed on an ACID table default.table_name with a non-ACID transaction manager. Failed command: select * from table_name
hive (default)> exit;

-- set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager 만 설정해도 오류 발생 
hive (default)> select * from table_name;
FAILED: RuntimeException [Error 10264]: To use DbTxnManager you must set hive.support.concurrency=true
Exception in thread "main" java.lang.NullPointerException
    at org.apache.hadoop.hive.ql.Driver.releaseLocksAndCommitOrRollback(Driver.java:1186)

-- 모든 설정을 하고 조회하면 테이블 조회 가능 
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
set hive.support.concurrency=true;

hive (default)> select * from table_name;
OK
2    b
1    a
반응형