达斯克有两个任务调度程序系列:
单机调度程序:此调度程序在本地进程或线程池上提供基本功能。此调度程序是首先创建的,是默认的。虽然它只能在一台机器上使用,而且不扩展分布式调度器,但使用起来简单而廉价:这个调度器更复杂,提供了更多的功能,但也需要更多的精力来设置。它可以在本地运行,也可以分布在集群中。
为了更好地理解,我正在尝试复制一些例子。
达斯克医生给出了这个例子。
>>> import dask
>>> import dask.distributed # populate config with distributed defaults
>>> dask.config.config
{
'logging': {
'distributed': 'info',
'bokeh': 'critical',
'tornado': 'critical',
}
'admin': {
'log-format': '%(name)s - %(levelname)s - %(message)s'
}
}
>>> dask.config.get('logging')
{'distributed': 'info',
'bokeh': 'critical',
'tornado': 'critical'}
>>> dask.config.get('logging.bokeh') # use `.` for nested access
'critical'我正试着复制这个。
dask.config.config工作得很好,并给出了这个输出。
{'temporary-directory': None,
'array': {'svg': {'size': 120}},
'distributed': {'version': 2,
'scheduler': {'allowed-failures': 3,
'bandwidth': 100000000,
'blocked-handlers': [],
'default-data-size': 1000,
'events-cleanup-delay': '1h',
'idle-timeout': None,
'transition-log-length': 100000,
'work-stealing': True,
'worker-ttl': None,
'preload': [],
'preload-argv': [],
'dashboard': {'status': {'task-stream-length': 1000},
'tasks': {'task-stream-length': 100000},
'tls': {'ca-file': None, 'key': None, 'cert': None}}},
'worker': {'blocked-handlers': [],
'multiprocessing-method': 'forkserver',
'use-file-locking': True,
'connections': {'outgoing': 50, 'incoming': 10},
'preload': [],
'preload-argv': [],
'daemon': True,
'profile': {'interval': '10ms', 'cycle': '1000ms', 'low-level': False},
'memory': {'target': 0.6, 'spill': 0.7, 'pause': 0.8, 'terminate': 0.95}},
'client': {'heartbeat': '5s'},
'comm': {'compression': 'auto',
'default-scheme': 'tcp',
'socket-backlog': 2048,
'recent-messages-log-length': 0,
'timeouts': {'connect': '10s', 'tcp': '30s'}},
'dashboard': {'link': '{scheme}://{host}:{port}/status',
'export-tool': False},
'admin': {'tick': {'interval': '20ms', 'limit': '3s'},
'log-length': 10000,
'log-format': '%(name)s - %(levelname)s - %(message)s',
'pdb-on-err': False}}}虽然>>> dask.config.get('logging')给出了这个错误
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-16-ffda8dcb4de4> in <module>
----> 1 dask.config.get('logging')
~/anaconda3/lib/python3.7/site-packages/dask/config.py in get(key, default, config)
430 k = canonical_name(k, result)
431 try:
--> 432 result = result[k]
433 except (TypeError, IndexError, KeyError):
434 if default is not no_default:
KeyError: 'logging'我遗漏了什么?
发布于 2019-09-08 22:16:31
您会注意到没有顶级的“日志”条目。它在“分布式”名称中,所以您可能需要
dask.config.get("distributed.logging")这样,文档中的示例就会产生误导。我在PR:https://github.com/dask/dask/pull/5374中改变了它
https://stackoverflow.com/questions/57829474
复制相似问题