我有Spark集群(独立集群,共有4个Worker-每个worker有16个核心。集群中共有64个核心) 我正在从Kafka接收流数据,并使用结构化流在Spark 2.1中对其进行处理。 我最初的kafka分区为20,我进一步将其分区为64个以利用所有64个内核。这很好 问题是改组本身需要花费很长时间(例如480条记录的40秒大小为203KB),有时甚至少于40秒,但大部分时间是40秒。 实际的计算时间约为25-30秒,因此混洗时间导致管道速度降低。
我不确定为什么要花40秒的时间来整理写入的数据量这么少。 到目前为止,我已经在使用KryoSerializer进行随机播放,但没有任何好处。
请告知?