我已使用以下属性更新了hive-site.xml文件:
set hive.support.concurrency = true;
set hive.enforce.bucketing = true;
set hive.exec.dynamic.partition.mode = nonstrict;
set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
set hive.compactor.initiator.on = true;
set hive.compactor.worker.threads = 1;
我正在尝试使用以下命令更新表:
update employee_basic set dept = 'IT';
但收到错误:
FAILED:SemanticException [错误10297]:尝试进行更新或 删除不使用的表employee_det.employee_basic AcidOutputFormat或没有被删除
答案 0 :(得分:1)
根据给定的详细信息,看起来您启用了Hive ACID
。
对于ACID
支持表,需要采用ORC
格式并启用存储区。
我看到您启用了存储分区但不确定表是否为ORC
格式。使用show create table
检查表定义,以了解它是否满足上述条件。
详情请见 https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions
答案 1 :(得分:0)
“此第一个版本仅支持ORC文件格式。此功能 已构建为可以由任何存储使用事务 可以确定更新或删除如何应用于基本记录的格式 (基本上,它有一个显式或隐式的行id),但到目前为止 整合工作只针对ORC进行。“
https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions