远程提交 Dask-Yarn 作业时如何显示 Dask Dashboard Link?

How to Show Dask Dashboard Link When Submitting Dask-Yarn Job Remotely?

问题

当我提交 dask-yarn 作业时,有人会碰巧知道如何检索 dask 仪表板 link 吗?我有一个用于显示 dask 仪表板 link 的打印语句,但它没有显示在控制台中。我也试过登录到 stdout 并试图查看它是否出现在纱线日志中,但仍然没有成功。任何帮助将不胜感激!

代码示例:

submit.sh

dask-yarn submit \
  --name uq_component_batch_inference \
  --deploy-mode remote \
  --environment uq_component_dask.tar.gz \
  --worker-count 500 \
  --worker-vcores 1 \
  --worker-memory 8GiB \
  --worker-env TOKENIZERS_PARALLELISM=True \
  --worker-restarts 9 \
  main.py

main.py

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
cluster = YarnCluster.from_current()
client = Client(cluster)
logging.debug(f"dashboard link: {client.dashboard_link}")
run()

我试过的:

yarn logs -applicationId application_1637895115092_0039 > temp-file.log

一种选择是将调度程序信息显式写入文件:

from dask.distributed import Client

client = Client()
client.write_scheduler_file("scheduler.json")

请注意,这不包括显式 link,但相关端口位于 services -> dashboard

另一种选择是将 client.dashboard_link 的输出写入文件(相对于您提供的代码段中的日志记录)。