Hive 在HDP3.1.4中使用卡夫卡处理程序4.0

Hive 在HDP3.1.4中使用卡夫卡处理程序4.0,hive,avro,Hive,Avro,我们正在使用HDP3.1.4,并希望使用kafka处理程序来集成kafka和Hive 我们在Kafka中的许多主题都是使用Confluent Schema Registry用Avro序列化的,HDP 3.1.4附带的默认Kafka处理程序不包含使用Confluent序列化的Avro消息的新功能,Confluent包含Magic Byte。在卡夫卡处理程序的新版本中,我们有一些属性,例如'avro.serde.type'='skip'和'avro.serde.skip.bytes'='5'来处理魔

我们正在使用HDP3.1.4,并希望使用kafka处理程序来集成kafka和Hive

我们在Kafka中的许多主题都是使用Confluent Schema Registry用Avro序列化的,HDP 3.1.4附带的默认Kafka处理程序不包含使用Confluent序列化的Avro消息的新功能,Confluent包含Magic Byte。在卡夫卡处理程序的新版本中,我们有一些属性,例如
'avro.serde.type'='skip'
'avro.serde.skip.bytes'='5'
来处理魔法字节

所以我们想用我们自己编译的卡夫卡处理程序4.0替换卡夫卡处理程序。 我们只是开始用默认的HDP卡夫卡处理程序替换卡夫卡处理程序4.0,但我们遇到了以下错误:

MetaException(message:java.lang.NoSuchFieldError AVRO_SERDE_TYPE)
AVRO_SERDE_TYPE
添加到了
hive SERDE 4.0
中,我们调查这是因为卡夫卡处理程序依赖于
kafka exec
,并且
kafka exec
包含了HDP附带的旧
hive SERDE

我们也应该更换蜂巢。因此,我们继续在kafka handler中使用shading
hive serde

<relocation>
  <pattern>org.apache.hadoop.hive.serde2</pattern>
  <shadedPattern>org.shaded.apache.hadoop.hive.serde2_shaded</shadedPattern>
</relocation>
那么我们应该如何处理这个问题呢

SQL Error [40000] [42000]: Error while compiling
statement: FAILED: ClassCastException class org.apache.hadoop.hive.kafka.KafkaSerDe