hive beeline使用acid事务管理器

yws3nbqq  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(447)

我试着用直线运行这个命令。

create table <table_1> like <table_2>

但我的Hive似乎配置为在酸性模式下运行。所以这个查询失败了
错误:编译语句时出错:失败:semanticexception[error 10265]:在具有非acid事务管理器的acid表上不允许使用此命令。失败的命令:create table like(state=42000,code=10265)
在不更改任何全局配置的情况下,使用acid事务管理器运行直线查询的正确语法是什么?
我的命令是:

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

我想我应该用

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;

但是我应该如何把它包括在直线中呢?当我试着

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

这样改变这些参数似乎是不可能的。
错误:处理语句时出错:无法在运行时修改hive.support.concurrency。它不在允许在运行时修改的参数列表中(state=42000,code=1)
谢谢你的帮助。

ct2axkht

ct2axkht1#

您可以设置配置单元属性并从直线运行配置单元查询,如下所示:

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

希望这有帮助。

相关问题