我正在运行来自kafka的spark直接流,我需要运行许多并发作业,以便及时处理所有数据。在spark中,您可以将spark.streaming.concurrentJobs
设置为要运行的多个并发作业。
我想知道的是确定在给定环境中可以运行多少并发作业的逻辑方法。对于我公司的隐私问题,我不能告诉你我的规格,但我想知道的是哪些规格与确定限制有关,为什么?
当然,替代方案是我可以不断增加它并进行测试,然后根据结果进行调整,但我想采用更合乎逻辑的方法,我想真正了解是什么决定了这个限制以及为什么。
答案 0 :(得分:1)
测试不同数量的并发作业并查看总体执行时间是最可靠的方法。但是,我认为最佳数字大致等于Runtime.getRuntime().availableProcessors();
所以我的建议是从可用处理器的数量开始,然后将其增加和减少1,2和3.然后创建一个图表(执行时间与作业数量相对应),您将看到最佳数量工作。