在不增加核心的情况下增加Spark Executor中的并行度

AKC*_*AKC 5 oracle apache-spark spark-streaming

我正在运行一个Spark-Kafka Streaming作业,有4个执行器(每个1个核心).而kafka源主题有50个分区.

在流式java程序的foreachpartition中,我正在连接到oracle并做一些工作.Apache DBCP2用于连接池.

Spark-streaming程序与数据库建立4个连接 - 每个执行程序可能为1.但是,我的期望是 - 由于有50个分区,应该有50个线程在运行并且存在50个数据库连接.

如何在不增加内核数量的情况下增加并行度.

小智 4

你的期望是错误的。Spark 术语中的一个核心是一个可用线程和一个当时可以处理的分区。

4 个“核心”-> 4 个线程-> 4 个分区同时处理。