2015-12-10 30 views
7

Durante il tentativo di aggiornare un dato nella tabella Hive in VM Quickstart di Cloudera, viene visualizzato questo errore.Tentativo di eseguire l'aggiornamento o l'eliminazione utilizzando il gestore transazioni che non supporta queste operazioni

errore durante la compilazione dichiarazione: FALLITA: SemanticException [Errore 10294]: tentare di fare aggiornare o eliminare utilizzando gestore delle transazioni che non supporta queste operazioni.

ho aggiunto alcuni cambiamenti nella file hive-site.xml e anche riavviato l'alveare e cloudera.These sono cambiamenti che ho fatto in 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 

risposta

5

ho provato con la configurazione fornita in una sandbox hortonworks e sono stato in grado di eseguire operazioni ACID su un tavolo e suppongo che funzioni anche nell'ambiente Cloudera. Anche se ci un alcune cose da citare:

  • assicurarsi alveare ha le proprietà che ha dato (si possono verificare in Hive CLI usando il comando SET)
  • tabella che si lavora con deve essere bucketed, dichiarato come Formato ORC e ​​ha nelle sue proprietà di tabella 'transactional' = 'true' (l'hive supporta le operazioni ACID solo per il formato ORC e ​​le tabelle transazionali). Un esempio di una tabella corretta è come questo:

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

Puoi seguire questa example.