如何在Dask集群中获取Worker名称?
获取Dask Worker名称的可行方法
方法1:从调度器信息中提取
通过client.scheduler_info()可以获取包含所有Worker元数据的字典,从中能直接取出Worker名称:
from dask.distributed import Client, LocalCluster cluster = LocalCluster(name='AAA', n_workers=1, threads_per_worker=2) client = Client(cluster) # 获取调度器及Worker的完整信息 scheduler_data = client.scheduler_info() # 遍历Worker条目,输出地址与对应名称 for worker_addr, details in scheduler_data['workers'].items(): print(f"Worker地址: {worker_addr}, Worker名称: {details['name']}")
方法2:在Worker节点上直接获取
利用client.run()在每个Worker上执行函数,获取Worker自身的名称:
def fetch_worker_name(): from dask.distributed import get_worker return get_worker().name # 执行函数并收集所有Worker的名称 worker_name_map = client.run(fetch_worker_name) print(worker_name_map) # 输出示例:{'tcp://127.0.0.1:34567': 'AAA-0'}
自定义Worker名称(可选)
如果需要指定自定义的Worker名称,创建集群时可通过worker_kwargs参数传入:
cluster = LocalCluster( name='AAA', n_workers=1, threads_per_worker=2, worker_kwargs={'name': 'my-special-worker'} )
内容的提问来源于stack exchange,提问作者XGB
相关产品推荐
相关产品推荐

