Spark-streaming-kafka

本文详细介绍了在使用Spark Streaming与Kafka整合时遇到的问题及解决方案,如fetch.size过大、大量未消费消息处理。并深入讨论了Spark作业的关键参数,包括num-executors、executor-memory、executor-cores、driver-memory、spark.default.parallelism、spark.storage.memoryFraction和spark.shuffle.memoryFraction的含义和调优建议,以帮助提升Spark作业的性能和资源利用率。
摘要由CSDN通过智能技术生成

最近在用spark-streaming-kafka遇到的问题

问题1

There are some messages whose size is larger than the fetch size 1048576 and hence cannot be ever returned. Increase the fetch size, or decrease the maximum message size the broker will allow.

解决方案

修改ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG(fetch.message.max.bytes)设置个较大的值。

问题2

问题描述:当kafka中存在大量未消费的消息时

当我们提交spark-streaming程序消费kafka中的消息时,若kafka中存在大量未消费的消息,首个batch要处理大量的消息,会导致spark-submit设置的资源无法满足大量消息的处理而导致崩溃。因此在spark-submit启动的时候多加了一个配置:--conf spark.streaming.kafka.maxRatePerPartition=10000。限制每秒钟从topic的每个partition最多消费的消息条数,这样就把首个batch的大量的消息拆分到多个batch中去了,为了更快的消化掉delay的消息,可以调大计算资源和把这个参数调大。

spark executor

Executor是spark任务(task)的执行单元,运行在worker上,但是不等同于worker,实际上它是一组计算资源(cpu核心、memory)的集合。一个worker上的memory、cpu由多个executor共同分摊。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非ban必选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值