我们正在开发一个spark-backed数据摄取管道,它涉及cpu较少的任务,但主要是io密集型操作。为简单起见,我们使用了许多分区,因此许多任务可以并行执行,为此我们需要许多内核。当我们使用spark standalone cluster(spark提供了master和worker)时,我们将spark设置为worker上可用内核的数量是实际可用内核的4倍,并且工作得非常好,因为任务涉及的cpu密集度非常低。但是最近我们把所有的东西都转移到了kubernetes,我们使用了spark算子。但有了这个,似乎没有办法虚张声势的核心真正可用的执行者。因此,我们被迫为执行器分配更多的内核,以获得与以前相同的吞吐量。
我的问题是,如何让驱动程序假设执行程序有更多的内核,从而使更多的任务可以并发运行。
暂无答案!
目前还没有任何答案,快来回答吧!