15

Cloudera Quickstart VM で Hive テーブルのデータを更新しようとすると、このエラーが発生します。

ステートメントのコンパイル中にエラーが発生しました: 失敗しました: SemanticException [エラー 10294]: これらの操作をサポートしていないトランザクション マネージャーを使用して更新または削除しようとしました。

hive-site.xml ファイルにいくつかの変更を加え、ハイブと 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
4

1 に答える 1

16

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');

このに従うことができます。

于 2016-02-02T07:44:43.787 に答える