远程提交Dask-Yarn作业时如何获取Dask Dashboard链接
解决方案
方法1:无需修改代码,通过YARN WebUI直接获取
登录你的YARN ResourceManager WebUI,找到名称为uq_component_batch_inference的应用,应用详情页的Tracking URL就是Dask Dashboard的访问地址,直接点击即可访问。
方法2:无需修改代码,通过dask-yarn CLI直接查询
在你提交作业的本地机器上执行如下命令,即可列出所有运行中的Dask on YARN应用,返回结果中会直接包含Dashboard链接:
dask-yarn applications
方法3:修改代码配置,确保日志可被检索
你之前的日志配置没有生效,是因为Dask/YARN的内置logger会提前初始化覆盖你的配置,调整main.py的代码如下:
import sys import logging # 加force=True强制覆盖已有logger配置 logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, force=True) cluster = YarnCluster.from_current() client = Client(cluster) # 也可以直接用print加flush,避免logging层级问题 print(f"dashboard link: {client.dashboard_link}", flush=True) run()
调整代码重新提交后,执行如下命令直接检索日志即可拿到链接:
# 直接检索AM日志中的关键字,无需导出全量日志 yarn logs -applicationId <替换为你的应用ID> -am 1 | grep "dashboard link"
补充说明
你之前看不到输出的核心原因是--deploy-mode remote模式下,Dask应用的AM(Application Master)进程运行在YARN集群节点上,而非你提交作业的本地机器,所以打印内容不会输出到本地控制台,只会存储在YARN集群的AM容器日志中。
内容的提问来源于stack exchange,提问作者Riley Hun
相关产品推荐
相关产品推荐

