当前位置:  开发笔记 > 运维 > 正文

尝试使用不支持这些操作的事务管理器进行更新或删除

如何解决《尝试使用不支持这些操作的事务管理器进行更新或删除》经验,为你挑选了1个好方法。

在Cloudera Quickstart VM中尝试更新Hive表中的数据时,我收到此错误.

编译语句时出错:FAILED: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

dumitru.. 12

我尝试过你在hortonworks沙箱中提供的配置,我能够在桌面上进行ACID操作,我想它也适用于Cloudera环境.虽然有一些事情需要提及:

确保配置单元具有您提供的属性(您可以使用SET命令在Hive CLI中验证它们)

您使用的表必须被打包,声明为ORC格式并且在其表属性中具有'transactional'='true'(hive仅支持ORC格式和事务表的ACID操作).正确表的一个例子是这样的:

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

您可以按照此示例操作.



1> dumitru..:

我尝试过你在hortonworks沙箱中提供的配置,我能够在桌面上进行ACID操作,我想它也适用于Cloudera环境.虽然有一些事情需要提及:

确保配置单元具有您提供的属性(您可以使用SET命令在Hive CLI中验证它们)

您使用的表必须被打包,声明为ORC格式并且在其表属性中具有'transactional'='true'(hive仅支持ORC格式和事务表的ACID操作).正确表的一个例子是这样的:

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

您可以按照此示例操作.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有