WARN cluster.YarnScheduler: 初始作业尚未接受任何资源
WARN cluster.YarnScheduler: Initial job has not accepted any resources
我 运行 的任何 spark 作业都将失败并显示以下错误消息
17/06/16 11:10:43 WARN cluster.YarnScheduler: Initial job has not
accepted any resources; check your cluster UI to ensure that workers
are registered and have sufficient resources
Spark 版本是 1.6,运行ning 在 Yarn 上。
我正在从 pyspark 发布作业。
并且您可以从作业时间轴中注意到它 运行 无限期并且没有添加或删除任何资源。1
第一点是,如果有足够的资源(例如节点、CPU 和内存)可供 yarn 使用,它可以使用动态分配来创建分配了适当默认内核和内存的 spark worker。
就我而言,我需要关闭动态分配,因为我的资源水平非常低。
因此,我从 pyspark 设置了以下值:
conf = (SparkConf().setAppName("simple")
.set("spark.shuffle.service.enabled", "false")
.set("spark.dynamicAllocation.enabled", "false")
.set("spark.cores.max", "1")
.set("spark.executor.instances","2")
.set("spark.executor.memory","200m")
.set("spark.executor.cores","1")
注意:基本上这里设置的值应该小于实际可用的资源。但是,此处的值太小可能会导致内存不足问题,或者在您的作业 运行s 时出现性能下降问题。
The complete code gist of a sample job is available here
对于这个 pyspark 案例,另一个需要注意的重点是 Yarn 上的 Spark 可以 运行 在两种模式下
- 集群模式 - spark 驱动程序 运行 在 spark 主节点
- 客户端模式 - spark 驱动程序是来自客户端的 运行,其中交互式 shell 是 运行。
集群模式不太适合交互使用 Spark。需要用户输入的 Spark 应用程序,例如 spark-shell 和 pyspark,需要 Spark 驱动程序 运行 在启动 Spark 应用程序的客户端进程中。
客户端模式可以在如下环境中设置
export PYSPARK_SUBMIT_ARGS='--master yarn --deploy-mode client pyspark-shell'
我 运行 的任何 spark 作业都将失败并显示以下错误消息
17/06/16 11:10:43 WARN cluster.YarnScheduler: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
Spark 版本是 1.6,运行ning 在 Yarn 上。
我正在从 pyspark 发布作业。
并且您可以从作业时间轴中注意到它 运行 无限期并且没有添加或删除任何资源。1
第一点是,如果有足够的资源(例如节点、CPU 和内存)可供 yarn 使用,它可以使用动态分配来创建分配了适当默认内核和内存的 spark worker。
就我而言,我需要关闭动态分配,因为我的资源水平非常低。
因此,我从 pyspark 设置了以下值:
conf = (SparkConf().setAppName("simple")
.set("spark.shuffle.service.enabled", "false")
.set("spark.dynamicAllocation.enabled", "false")
.set("spark.cores.max", "1")
.set("spark.executor.instances","2")
.set("spark.executor.memory","200m")
.set("spark.executor.cores","1")
注意:基本上这里设置的值应该小于实际可用的资源。但是,此处的值太小可能会导致内存不足问题,或者在您的作业 运行s 时出现性能下降问题。
The complete code gist of a sample job is available here
对于这个 pyspark 案例,另一个需要注意的重点是 Yarn 上的 Spark 可以 运行 在两种模式下
- 集群模式 - spark 驱动程序 运行 在 spark 主节点
- 客户端模式 - spark 驱动程序是来自客户端的 运行,其中交互式 shell 是 运行。
集群模式不太适合交互使用 Spark。需要用户输入的 Spark 应用程序,例如 spark-shell 和 pyspark,需要 Spark 驱动程序 运行 在启动 Spark 应用程序的客户端进程中。
客户端模式可以在如下环境中设置
export PYSPARK_SUBMIT_ARGS='--master yarn --deploy-mode client pyspark-shell'