我在使用Spark Kafka的Spark流媒体时遇到了问题,其中Spark部署在纱线上。我使用Direct Approach(无接收器)从Kafka读取数据,包含1个主题和48个分区。在5节点(4个工作人员)火花簇(每台机器上可用24 GB内存)和火花配置(spark.executor.memory = 2gb,spark.executor.cores = 1)上进行此设置,Spark上应该有48个执行器集群(每台机器上有12个执行程序)。
Spark Streaming文档还确认了Kafka和RDD分区之间存在一对一的映射。因此,对于48个kafka分区,应该有48个RDD分区,每个分区由1个执行器执行。但在运行时,只创建了12个执行程序,并且火花簇容量仍未使用。我们无法获得所需的吞吐量。
似乎这种直接方法从Spark Streaming中的Kafka读取数据并不符合Spark Streaming文档。任何人都可以建议,我在这里做错了什么,因为我无法横向扩展以提高吞吐量。