【发布时间】:2015-11-09 17:12:41
【问题描述】:
我在笔记本电脑上设置了一个 Spark on YARN 集群,但使用 python 多处理在 Spark 中运行多个并发作业时遇到问题。我在纱线客户端模式下运行。我尝试了两种方法来实现这一点:
- 设置单个 SparkContext 并创建多个进程来提交作业。此方法不起作用,程序崩溃。我猜单个 SparkContext 不支持 python 多进程
-
对于每个进程,设置一个 SparkContext 并提交作业。在这种情况下,作业成功提交到 YARN,但作业是串行运行的,一次只运行一个作业,其余作业在队列中。是否可以同时启动多个作业?
更新设置
纱线:
yarn.nodemanager.resource.cpu-vcores 8
- yarn.nodemanager.resource.memory-mb 11264
-
yarn.scheduler.maximum-allocation-vcores 1
火花:
SPARK_EXECUTOR_CORES=1
- SPARK_EXECUTOR_INSTANCES=2
- SPARK_DRIVER_MEMORY=1G
- spark.scheduler.mode = 公平
- spark.dynamicAllocation.enabled = true
- spark.shuffle.service.enabled = true
yarn 一次只能运行一项工作,使用 3 个容器、3 个 vcore、3GB 内存。所以有足够的 vcore 和 ram 可用于其他作业,但它们没有运行
【问题讨论】:
标签: python-2.7 apache-spark hadoop-yarn pyspark