15

尝试在 Cloudera Quickstart VM 中更新 Hive 表中的数据时,出现此错误。

编译语句时出错:失败:SemanticException [错误 10294]:尝试使用不支持这些操作的事务管理器进行更新或删除。

我在 hive-site.xml 文件中添加了一些更改,并重新启动了 hive 和 cloudera。这些是我在 Hive-site.xml 中所做的更改

hive.support.concurrency – true
hive.enforce.bucketing – true
hive.exec.dynamic.partition.mode – nonstrict
hive.txn.manager –org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
hive.compactor.initiator.on – true
hive.compactor.worker.threads – 1
4

1 回答 1

16

我已尝试使用您在 hortonworks 沙箱中提供的配置,并且能够在表上执行 ACID 操作,我想它也适用于 Cloudera 环境。虽然有几点要提:

  • 确保 hive 具有您提供的属性(您可以使用 SET 命令在 Hive CLI 中验证它们)
  • 您使用的表必须被存储,声明为 ORC 格式并在其表属性中具有“事务”=“真”(配置单元仅支持 ORC 格式和事务表的 ACID 操作)。一个合适的表的例子是这样的:

    hive>create table testTableNew(id int ,name string ) clustered by (id) into 2 buckets stored as orc TBLPROPERTIES('transactional'='true');

你可以按照这个例子

于 2016-02-02T07:44:43.787 回答