我们正在研究一个由Spark支持的数据提取管道,该管道涉及CPU较少的任务,但主要是IO密集型操作。为简单起见,我们使用了许多分区,因此许多任务可以并行执行,因此我们需要许多内核。当我们使用Spark独立集群(Spark提供了主服务器和工作服务器)时,我们将Spark上我在Worker上设置的可用核心数量设置为实际可用核心数量的4倍,并且可以很好地工作,因为任务所涉及的CPU占用很少操作。 但是最近,我们将所有内容移至Kubernetes,并且正在使用Spark运算符。但是有了这个,似乎没有办法对执行者真正可用的核心进行虚张声势。因此,我们不得不为执行程序分配更多的内核,以实现与以前相同的吞吐量。
我的问题是,如何使驱动程序假定执行程序具有更多的内核,以便可以同时运行更多任务。