- 报错信息
org.apache.kafka.common.KafkaException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.kafka.common.record.CompressionType$SnappyConstructors
at org.apache.kafka.common.record.CompressionType$3.wrapForOutput(CompressionType.java:83)
at org.apache.kafka.common.record.MemoryRecordsBuilder.(MemoryRecordsBuilder.java:128)
at org.apache.kafka.common.record.MemoryRecordsBuilder.(MemoryRecordsBuilder.java:164)
at org.apache.kafka.common.record.MemoryRecords.builder(MemoryRecords.java:512)
at org.apache.kafka.common.record.MemoryRecords.builder(MemoryRecords.java:494)
at org.apache.kafka.common.record.MemoryRecords.builder(MemoryRecords.java:442)
at org.apache.kafka.clients.producer.internals.RecordAccumulator.recordsBuilder(RecordAccumulator.java:245)
at org.apache.kafka.clients.producer.internals.RecordAccumulator.append(RecordAccumulator.java:221)
at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:864)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:803)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:690)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.kafka.common.record.CompressionType$SnappyConstructors
at org.apache.kafka.common.record.CompressionType$3.wrapForOutput(CompressionType.java:81)
12 more
二. 问题原因
kafka 发送消息的时候启用了snappy压缩,但是没有snappy-java 这个jar, 所以导致代码报错.
org.apache.kafka.common.record.CompressionType$3.wrapForOutput(CompressionType.java:81)
看了一下代码, 是构造org.xerial.snappy.SnappyOutputStream 报错.
查一下代码加载的jar 是否包含 snappy-java-1.x.jar



