(spark消费kafka有jar包冲突)java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.

 Spark 消费kafka时,抛出异常

“java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.<init>(Ljava/io/InputStream;Z)Vat

原因:

应用在执行时对数据解码(反序列化)时,使用了默认的lz4解压缩算法,在spark-core中依赖的lz4版本是1.4,而kafka-client中依赖的lz4版本是1.3版本,在生成解压器时,版本不兼容异常。

解决方法:

可参考网上修改源码解决,也可通过设置"spark.io.compression.codec","snappy"或其他压缩算法规避。鉴于修改源码重新打包替换较为繁琐,建议设置其他压缩算法规避。

举例如下:

conf = SparkConf().set("spark.io.compression.codec", "snappy")
sc = SparkContext(master="local[4]", appName="SparkStreamingKafkaLog",conf=conf)
sc.setLogLevel("error")
ssc = StreamingContext(sc, 10)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值