Mat*_*get 5 apache-spark pyspark
我们有一个在 Mesos 集群上运行的中等规模的 PySpark 程序。
我们用spark.executor.cores=8和运行程序spark.cores.max=24。每个 Mesos 节点有 12 个 vcpu,因此每个节点上只启动 1 个 executor。
程序运行完美,结果正确。
然而,问题是每个执行器消耗的 CPU 比 8 多得多。 CPU 负载经常达到 25 或更多。通过该htop程序,我们看到 8 个 python 进程按预期启动。但是,每个 Python 会产生多个线程,因此每个 Python 进程最多可以使用 300% 的 CPU。
这种行为在共享集群部署中很烦人。
有人可以解释这种行为吗?pyspark 启动的这 3 个附加线程是什么?
附加信息:
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |