Configuration Kafka SparkStreaming配置指定偏移量/消息列表大小

Configuration Kafka SparkStreaming配置指定偏移量/消息列表大小,configuration,apache-spark,apache-kafka,Configuration,Apache Spark,Apache Kafka,我对卡夫卡和Spark都是相当陌生的,正在尝试编写作业(流式或批处理)。我想从卡夫卡那里读取预定义数量的消息(比如x),通过workers处理收集,然后只开始处理下一组x消息。基本上,Kafka中的每条消息都是10KB,我想把2GB的消息放在一个S3文件中。 那么,有没有办法指定接收方获取的消息数量? 我已经读到,我可以在创建数据流时指定“from offset”,但这个用例有些不同。我需要能够同时指定“从偏移量”和“到偏移量”。无法将结束偏移量设置为初始参数(就像您可以设置开始偏移量一样),但

我对卡夫卡和Spark都是相当陌生的,正在尝试编写作业(流式或批处理)。我想从卡夫卡那里读取预定义数量的消息(比如x),通过workers处理收集,然后只开始处理下一组x消息。基本上,Kafka中的每条消息都是10KB,我想把2GB的消息放在一个S3文件中。 那么,有没有办法指定接收方获取的消息数量?
我已经读到,我可以在创建数据流时指定“from offset”,但这个用例有些不同。我需要能够同时指定“从偏移量”和“到偏移量”。

无法将结束偏移量设置为初始参数(就像您可以设置开始偏移量一样),但是 您可以使用(清单中的第四个重载版本),它使您能够使用(返回)获取当前微批处理的偏移量。
这意味着您必须将从
OffsetRange
获得的值与每个微批次中的结束偏移量进行比较,以了解您的位置以及何时停止使用卡夫卡

我想您还需要考虑一个事实,即每个分区都有其顺序偏移量。我想,如果你能在2GB以上完成当前的微批处理(可能是几kB,取决于你的消息密度),以避免在消耗和未消耗的部分上拆分最后一批,这将是最简单的,这可能需要您调整Spark保留的偏移量,以便跟踪消耗的和未消耗的。
希望这有帮助