当前位置: 首页 > 知识库问答 >
问题:

kafka Max.Poll.Records在spark streaming中不起作用

淳于乐池
2023-03-14

我的spark streaming版本是2.0,kafka版本是0.10.0.1,Spark-Streaming-Kafka-0-102.11。我使用直接的方式来获取Kafka记录,我现在想限制我在一个批处理中获取的消息的最大数量。所以我设置了max.poll.records值,但它不起作用。spark中的消费者数就是Kafka中的分区数?所以spark流中的最大记录数是max.poll.records*consumers?

共有1个答案

微生俊健
2023-03-14

max.poll.records控制从轮询返回的记录数的上限。

在spark streaming中,一个批处理中可能会发生多个轮询。在这种情况下,max.poll.records将不会很有用。根据文档,您应该使用spark.streaming.kafka.MaxRatePerPartition

其中一个重要的是spark.streaming.Kafka.MaxRatePerPartition,它是这个直接API读取每个Kafka分区的最大速率(以每秒消息为单位

因此每个批处理的最大记录数将是

(spark.streaming.kafka.MaxRatePerPartition)*(批处理持续时间(秒)*(kafka分区数)

例如,如果主题中有2个分区,批处理持续时间为30秒,spark.streaming.kafka.maxratePerPartition为1000,则每个批处理将看到6000条(2*30*1000)记录。

还可以启用spark.streaming.backpressure.enabled,使其根据处理批处理所用的时间具有更自适应的速率。

更多关于Kafka直流引擎盖下工作的信息

 类似资料:
  • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击

  • 问题内容: 我注意到less.js在firefox中工作,但在Chrome中不工作,或者是因为我出错了吗? 即使我尝试在Chrome中仍然无法使用,我在某个地方犯了错误吗? 问题答案: 通过您提供的链接: 如果您使用的是Chrome,Less.js浏览器脚本当前将无法使用,并且由于已知的Chrome问题,网页的路径以“file:///”开头。

  • 问题内容: 不仅如此,其他代码也有相同的问题。只是不能使用ImageView。 环境:macOS,IntelliJ 造成原因:java.lang.IllegalArgumentException:无效的URL:无效的URL或找不到资源 问题答案: 该图像构造函数接受一个url作为参数。如果您未在其中添加协议,则它将假定该项目来自类路径。显然,不会出现在您的类路径中。 要从文件而不是类路径中读取,请

  • 问题内容: 当我迅速运行此代码时,我不知道为什么应用程序会在“ alertView.show()”部分显示一个断点而终止,请有人帮帮我。 问题答案: 从Xcode 6.0 UIAlertView类: 不推荐使用UIAlertView。改用UIAlertController和UIAlertControllerStyleAlert的preferredStyle。 在Swift(iOS 8和OS X 1

  • 问题内容: 我已经动态创建了一个复选框。我曾经在单击复选框时调用过一个函数,该函数在Google Chrome和Firefox中有效,但 在Internet Explorer 8中不起作用 。这是我的代码: 是我的事件处理程序。 问题答案: 尝试: 更新: 对于IE9之前的InternetExplorer版本,应使用attachEvent方法将指定的侦听器注册到调用它的EventTarget上,对

  • 问题内容: 我在Linux GCC中使用了fflush(),但是没有用。该功能还有其他选择吗?这是我的代码: 我得到的输出是: 然后程序结束。就这样。我可以在Linux中做什么?有替代功能吗? 问题答案: 不要使用fflush,而是使用以下函数: 取决于实现,但是此功能始终有效。在C中,使用是不当做法。

  • 问题内容: 在下面的代码中不起作用: 在上面的代码中,我启动了一个检查对象是否不是的对象,并相应地取消了计时器。该对象由某些侦听器在任何时间设置。请参考并提出建议。我在这里做正确的事吗? Gautier Hayoun的解决方案 : 刚刚替代了CountDownTimer,可以从onTick内取消它:Github链接 – Gautier Hayoun 2010年12月12日,1:04 问题答案: G

  • 问题内容: 我正在Windows Vista上工作,但是我正在从DOS命令运行python。我有这个简单的python程序。(实际上是一个名为test.py的py文件) 当我从Dos命令执行“ python test.py”时,它不起作用。例如,如果执行前的提示“ Dos命令”是这样的: 执行后,必须是这样的: 帮助Plz。 问题答案: 首先,您通常不想使用-而是看一下子流程模块。但是,那并不能解