web-dev-qa-db-ja.com

これらの操作をサポートしないトランザクションマネージャを使用して、更新または削除を試行します

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
14
Vivek Harry

Hortonworksサンドボックスで提供された構成を試してみましたが、テーブルに対してACID操作を行うことができたため、Cloudera環境でも機能すると考えられます。言及すべきことがいくつかありますが:

  • hiveに指定したプロパティがあることを確認します(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');

これに従うことができます

10
dumitru