在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');
您可以按照此示例操作.
我尝试过你在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');
您可以按照此示例操作.