提交应用程序¶
警告
提交 API 是实验性的,版本之间可能会发生变化
有时,您希望将 Dask 应用程序完全部署到 YARN 上,而无需在边缘节点上运行相应的进程。这可能出现在自动部署的生产应用程序或您不想消耗边缘节点资源的长时间运行作业中。
为了处理这些情况,dask-yarn
提供了一个 CLI 文档,可用于异步提交应用程序以在 YARN 集群上运行。这里有三个可能有用的命令
dask-yarn submit
: 向 YARN 集群提交应用程序dask-yarn status
: 检查应用程序状态dask-yarn kill
: 终止运行中的应用程序
提交应用程序¶
要准备使用 dask-yarn submit
提交的应用程序,您需要将 YarnCluster
的创建方式从使用构造函数更改为使用 YarnCluster.from_current()
。
# Replace this
cluster = YarnCluster(...)
# with this
cluster = YarnCluster.from_current()
这是因为脚本直到集群已创建后才会运行 - 在那时,传递给 YarnCluster
构造函数的配置将不再有用。集群配置改为通过 dask-yarn submit
CLI 传递(请注意,与之前一样,集群创建后可以动态扩展)。
# Submit `myscript.py` to run on a dask cluster with 8 workers,
# each with 2 cores and 4 GiB
$ dask-yarn submit \
--environment my_env.tar.gz \
--worker-count 8 \
--worker-vcores 2 \
--worker-memory 4GiB \
myscript.py
application_1538148161343_0051
这将输出一个 YARN 应用程序 ID,可以与其它 YARN 工具一起使用。
检查应用程序状态¶
可以使用 YARN Web UI 或通过 dask-yarn status
以编程方式检查已提交的应用程序状态。此命令接受一个参数 - 应用程序 ID。
$ dask-yarn status application_1538148161343_0051
APPLICATION_ID NAME STATE STATUS CONTAINERS VCORES MEMORY RUNTIME
application_1538148161343_0051 dask RUNNING UNDEFINED 9 17 33792 6m
终止运行中的应用程序¶
提交的应用程序通常会运行直到完成。如果您需要在完成之前终止某个应用程序,可以使用 dask-yarn kill
命令。此命令接受一个参数 - 应用程序 ID。
$ dask-yarn kill application_1538148161343_0051
访问应用程序日志¶
有几种方法可以检索应用程序日志
可以使用 Skein Web UI 查看运行中应用程序的日志(
dask-yarn
使用 Skein 构建)。可以使用
yarn logs
命令查看已完成应用程序的日志。$ yarn logs -applicationId application_1538148161343_0051