我正在分析星火结构流的背压特性。有人知道细节吗?是否可以通过代码对传入记录进行调优?谢谢
发布于 2017-07-12 22:16:57
如果您的意思是动态地更改结构化流中每个内部批处理的大小,那么NO。在结构化流中没有基于接收器的源,所以这完全没有必要。从另一个角度来看,结构化流不能做真正的反向压力,因为,例如,Spark不能告诉其他应用程序放慢将数据推入Kafka的速度。
一般情况下,结构化流将尝试在默认情况下尽可能快地处理数据。每个源中都有允许控制处理速率的选项,例如文件源中的maxFilesPerTrigger和卡夫卡源中的maxOffsetsPerTrigger。有关更多详细信息,请阅读下列链接:
http://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#input-sources http://spark.apache.org/docs/latest/structured-streaming-kafka-integration.html
发布于 2019-07-14 14:03:42
处理背压所需的仅仅是推式机构。卡夫卡的消费者是以拉动为主,星火只会拉动下一批记录时,目前的批次是完成加工和保存。如果处理和节省在火花延迟,它不会拉新的记录,所以不需要背压处理。
maxOffsetsPerTrigger可以改变每一批火花处理记录的数量,backpressure.enabled改变接收速率,但这与你去的背压和告诉源减慢道氏指数是不一样的。
https://stackoverflow.com/questions/44871621
复制相似问题