2015-12-10 13 views
7

Beim Versuch, Daten in der Hive-Tabelle in Cloudera Quickstart VM zu aktualisieren, erhalte ich diesen Fehler.Versuch zu aktualisieren oder zu löschen mit Transaktionsmanager, der diese Operationen nicht unterstützt

Fehler beim Kompilieren Aussage: failed: SemanticException [Error 10294]: Versuch Update zu tun oder mit der Transaktion Manager löschen, die nicht diese Operationen nicht unterstützt.

Ich habe einige Änderungen in hive-site.xml Datei und neu gestartet wird auch die Struktur und cloudera.These sind Veränderungen, die ich in Hive-site.xml gemacht

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 

Antwort

5

Ich habe versucht, mit Die Konfiguration, die Sie in einer hortonworks-Sandbox zur Verfügung gestellt haben, und ich konnte ACID-Operationen für eine Tabelle ausführen, und ich nehme an, sie funktioniert auch in der Cloudera-Umgebung. Es gibt zwar ein paar Dinge zu erwähnen:

  • stellen Sie sicher, Bienenstock hat die Eigenschaften, die Sie es gab (man sie in Hive CLI mit SET-Befehl überprüfen kann)
  • Tabelle mit, die Sie arbeiten müssen bucketed werden, erklärt als ORC-Format und hat in seinen Tabelleneigenschaften 'transactional' = 'true' (Hive unterstützt ACID-Operationen nur für ORC-Format und transaktionale Tabellen). Ein Beispiel für eine richtige Tabelle ist wie folgt:

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

Sie diesen example folgen kann.