SPARK本地启动失败

使用本地 kafka 获取流数据计算时,并输出计算结果到本地console出错

输出代码

StreamingQuery query = strRs.writeStream()
                .outputMode("update")
                .format("console")
                .trigger(Trigger.ProcessingTime(Duration.apply(batchDuration, TimeUnit.SECONDS)))
                .option("checkpointLocation", PropertiesUtils.get("spark.sql.streaming.checkpointLocation"))
                .start();

错误

Caused by: org.apache.spark.SparkException: Writing job aborted.

Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 1.0 failed 1 times, most recent failure: Lost task 0.0 in stage 1.0 (TID 2, localhost, executor driver): org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before the position for partition mts_m_rt-27 could be determined

原因:

使用了 .option(“checkpointLocation”, PropertiesUtils.get(“spark.sql.streaming.checkpointLocation”))

分析

在使用本地kafka数据源前,使用了线上数据源测试、由于量太大计算不过来,切换成本地kafka
但是使用了checkpoint,线上kafka的partition 及 offset都已经被记录,重启程序会使用上一份checkpoint记录的offset开始。
但是本地kafka partition只有一个,导致程序启动按照不存在partition进行连接消费数据,最终导致超时。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值