这可能是由于默认情况下 Docker 容器没有足够的 CPU 分配给 Spark worker 导致的。在 Spark worker 启动时,可以通过 spark-env.sh
文件配置可用的 CPU 数量。对于 Docker 容器,需要在 docker run
命令中添加启动参数 --cpus
。以下示例命令使用 1 个 CPU 启动 docker 容器:
docker run --cpus 1 -d bitnami/spark
此外,还可以通过参数 --cpu-shares
来调整 docker 容器的 CPU 分配比例。该参数的值表示相对权重,即比例关系。例如,如果将 CPU 分配比例设置为 1024,则表示该容器将获得 1024/1024 份的 CPU 时间。以下示例命令使用相对权重 512 启动 docker 容器:
docker run --cpu-shares 512 -d bitnami/spark
使用这些命令可以有效解决 Bitnami Spark docker 容器中 worker 无法分配 CPU 的问题。