Попытка выполнить обновление или удаление с помощью диспетчера транзакций, который не поддерживает эти операции.

При попытке обновить данные в таблице Hive в Cloudera Quickstart VM я получаю эту ошибку.

Ошибка при компиляции инструкции: 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

person Vivek Harry    schedule 10.12.2015    source источник


Ответы (1)


Я попробовал конфигурацию, которую вы предоставили, в песочнице hortonworks, и мне удалось выполнять операции ACID на столе, и я полагаю, что это работает и в среде Cloudera. Хотя есть некоторые вещи, чтобы упомянуть:

  • убедитесь, что у улья есть свойства, которые вы ему дали (вы можете проверить их в Hive CLI с помощью команды SET)
  • таблица, с которой вы работаете, должна быть разделена на сегменты, объявлена ​​в формате ORC и иметь в своих свойствах таблицы «transactional» = «true» (улей поддерживает операции ACID только для формата ORC и транзакционных таблиц). Пример правильной таблицы выглядит так:

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

Вы можете использовать этот пример .

person dumitru    schedule 02.02.2016