我正在用jupyterhub在kubernetes上启动一个带有spark独立的概念验证。Spark Jupyter动态分配
我想要动态分配,因为我的用户会频繁地离开键盘,其应用程序(笔记本)处于“运行”状态(但没有任务/作业),但是驱动程序正在等待工作。
动态分配似乎并没有在踢从文档它正在等待:
spark.dynamicAllocation.executorIdleTimeout=60s
,但什么是闲置的定义是什么?对我来说,似乎这些笔记本电脑处于闲置状态
我正在用jupyterhub在kubernetes上启动一个带有spark独立的概念验证。Spark Jupyter动态分配
我想要动态分配,因为我的用户会频繁地离开键盘,其应用程序(笔记本)处于“运行”状态(但没有任务/作业),但是驱动程序正在等待工作。
动态分配似乎并没有在踢从文档它正在等待:
spark.dynamicAllocation.executorIdleTimeout=60s
,但什么是闲置的定义是什么?对我来说,似乎这些笔记本电脑处于闲置状态
有针对几个原因,
如果您的用户设置执行者的号码,这个号码执行人将永远不会被删除。你需要为最小执行者设置:spark.dynamicAllocation.minExecutors
在我的情况下,我们设置为2,即使集群已满,数据科学家仍可以使用最少的执行程序工作。
因此,首先检查'--num-executors'选项是否被移除并更改为spark.dynamicAllocation.minExecutors
。
工作人员的其他原因没有被删除是关于缓存数据,如果你的数据科学家有一个缓存数据,对于这个问题检查选项spark.dynamicAllocation.cachedExecutorIdleTimeout
这对于我的用例我们没有改变。根据documentation这个原因,说:包含缓存数据
默认执行人没有拆除
更改为spark.dynamicAllocation.cachedExecutorIdleTimeout
选项有关动态分配的更多详细信息,请参阅Spark Summit Europe 2016
此演示文稿