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
Hortonworksサンドボックスで提供された構成を試してみましたが、テーブルに対してACID操作を行うことができたため、Cloudera環境でも機能すると考えられます。言及すべきことがいくつかありますが:
作業するテーブルはバケット化され、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');
これに従うことができます 例 。