我有一个简单的工作(20个执行程序,每个内存8G)从Kafka读取(具有50个分区),将检查点发送到HDFS,并将数据发布到HTTP端点(每秒1000个事件)。我最近开始看到一些散乱的执行者,与其他执行者相比,花费的时间要长得多。作为调查的一部分,我试图排除数据偏斜。有没有一种方法可以为执行者打印partition:offsets?还是有其他方法可以跟踪执行者为何走迷路?
我知道我可以实现StreamingQueryListener
,但这只会给我每分区的partition:offsets,而不会告诉我哪个执行者正在处理特定的分区。
答案 0 :(得分:0)
如果将水槽与foreach一起使用,则可以打印出来。 forEach in structured spark streaming。 open方法具有这些详细信息,并且每个执行器都会执行该方法。所以你有那些细节