Spark Stream 消费 Kafka 踩坑

在有网络并发基础和大数据框架算法基础情况下,算法和理解源码并不是最耗时的(大概),因为如果首次自己搭建火花在卡夫卡消费应用框架,并且缺乏可执行演示情况下,总会莫名其妙出现一些奇怪问题。

很容易可以写出一个SparkStreaming消费卡夫卡的简单的java的的样例,但奇怪的是本地调试集群总是通不过,

检查发现程序莫名被停止,但控制台在决定停止之前并没有抛出异常

查看Spark Web UI发现是有成功提交程序的,但是大部分错误并没有记录log而是被杀,(有时还会出现一两次“ERROR CoarseGrainedExecutorBackend:Executor自我退出由于:驱动程序169.254.35.0:63201解除关联!关闭。“或”ERROR CoarseGrainedExecutorBackend:RECEIVED SIGNAL TERM“之类的日志,以至于怀疑Spark配置有问题,结果和这次错误没有太大关联),可以推测断点应该在JavaStreamingContext之后,差错期间也有评论过Kafka / Spark /集群Spark和Kafka版本是否对应,但对比并无明显错误。最后打断点到KafkaUtils.createDirectStream,发现确实是在此处抛出如下异常:1  

2.1  

2.2  

线索在第二个例外中:JsonMappingException状语从句:参照jackson问题有关  https://blog.csdn.net/dapanbest/article/details/81281861

解决方法:

<!--排除Kafka自带jackson-->
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.11</artifactId>
    <version>${kafka.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
    <scope>provided</scope>
</dependency>
<!--重新添加对jackson依赖-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.6.6</version>
</dependency>

测试通过,最后得出结论:KafkaUtil的问题和默认依赖的jackson使用版本有关..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值