/ / ClassCastException bei Verwendung des ORC-Dateiformats mit Hive, wenn vectorised.execution.enabled - hadoop, mapreduce, hive

ClassCastException bei Verwendung des ORC-Dateiformats mit Hive, wenn vectorised.execution.enabled - hadoop, mapreduce, hive

Ich habe einen Bienentisch mit folgenden Eigenschaften -

  • ORC Speicherformat
  • transaktional = wahr
  • Auf 4 Tasten aufgeteilt - Jahr, Monat, Tag, Stunde
  • bucket von Gruppierungsschlüssel

Ich verwende Hive Streaming, um Daten direkt in Tabellen zu füllen.

Jetzt ist mein Problem - ich versuche, folgende Abfrage auszuführen

select count(*) from table_name;

Ich bekomme folgende Ausnahme

Caused by: java.lang.ClassCastException:    org.apache.hadoop.hive.ql.io.orc.OrcStruct$OrcStructInspector cannot be cast to org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector
at org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil.setVector(VectorizedBatchUtil.java:295)
at org.apache.hadoop.hive.ql.exec.vector.VectorizedBatchUtil.acidAddRowToBatch(VectorizedBatchUtil.java:275)
at org.apache.hadoop.hive.ql.io.orc.VectorizedOrcAcidRowReader.next(VectorizedOrcAcidRowReader.java:82)

Wenn ich jedoch die vektorisierte Ausführung abstelle, indem ich die folgende Eigenschaft festlege

set hive.vectorized.execution.enabled = false;

Alles funktioniert gut (obwohl es ewig dauert, um es zu vervollständigen).

Warum passiert dies ? Soweit ich das verstehe, sollte die vektorisierte Ausführung mit ORC-Format funktionieren.

Hadoop-Version - 2.7.1

Hive Version - 1.2.1

Antworten:

1 für die Antwort № 1

Scheint so, als ob dieses Hive-Problem geschlossen / behoben wurde. Bitte überprüfen Sie Ihre Version des verwendeten Bienenstocks.

Bitte prüfe Die vektorisierte Ausführung führt zu ClassCastException

Bildbeschreibung hier eingeben