Dask的JupyterLab扩展。
项目描述
Dask JupyterLab扩展
此软件包提供了一种JupyterLab扩展,用于管理Dask集群,以及将Dask的仪表板图表直接嵌入到JupyterLab面板中。
说明视频(5分钟)
需求
JupyterLab >= 1.0 distributed >= 1.24.1
安装
要安装Dask JupyterLab扩展,您需要已安装JupyterLab。对于JupyterLab < 3.0版本,您还需要Node.js版本 >= 12。这些可以通过多种途径获得。Python用户常用的途径之一是conda包管理器。
conda install jupyterlab
conda install -c conda-forge nodejs
JupyterLab 4.x
为支持JupyterLab 4,安装扩展的最新版本。您应该能够使用pip或conda安装此扩展并立即开始使用,例如:
pip install dask-labextension
JupyterLab 3.x
对于JupyterLab 3.x,使用最新支持的版本6.2.0
。
pip install dask-labextension==6.2.0
JupyterLab 2.x
在JupyterLab 3.0之前,客户端和服务器组件需要分别安装,机器上需要有Node。
服务器组件可以通过pip或conda-forge安装
pip install 'dask_labextension<5'
conda install -c conda-forge 'dask-labextension<5'
然后您可以使用以下命令将客户端扩展构建到JupyterLab中:
jupyter labextension install dask-labextension
如果您正在运行Notebook 5.2或更早版本,可以通过运行以下命令启用服务器扩展:
jupyter serverextension enable --py --sys-prefix dask_labextension
Dask集群管理配置
此扩展具有启动和管理多种Dask集群的能力,包括本地集群和Kubernetes集群。如何启动这些集群的选项通过dask配置系统设置,通常是磁盘上的.yml
文件。
默认情况下,该扩展启动一个LocalCluster
,其配置如下:
labextension:
factory:
module: 'dask.distributed'
class: 'LocalCluster'
args: []
kwargs: {}
default:
workers: null
adapt:
null
# minimum: 0
# maximum: 10
initial:
[]
# - name: "My Big Cluster"
# workers: 100
# - name: "Adaptive Cluster"
# adapt:
# minimum: 0
# maximum: 50
在此配置中,factory
提供了创建集群所需的模块、类名和参数。default
键描述了集群的初始工作者数量以及它是否是自适应的。initial
键提供了在笔记本服务器启动时启动的初始集群列表。
除了LocalCluster
外,此扩展还被用于启动其他几种Dask集群对象,其中一些示例包括
- 使用SLURM集群:
labextension:
factory:
module: 'dask_jobqueue'
class: 'SLURMCluster'
args: []
kwargs: {}
- 使用PBS集群:
labextension:
factory:
module: 'dask_jobqueue'
class: 'PBSCluster'
args: []
kwargs: {}
- 使用Kubernetes集群:
labextension:
factory:
module: dask_kubernetes
class: KubeCluster
args: []
kwargs: {}
配置默认布局
此扩展可以存储Dask仪表板窗格的默认布局,如果您经常需要相同的仪表板图表,则非常有用。您可以通过命令面板启动默认布局,或者通过转到文件菜单并选择“启动Dask仪表板布局”。
默认布局可以通过JupyterLab配置系统(使用JSON编辑器或用户界面)进行配置。通过编写一个JSON对象来指定布局,该对象以您想要打开的单个图表作为键。每个图表都使用mode
和ref
打开。其中mode
表示图表如何添加到工作区。例如,如果您想分割一个面板并将新面板添加到右侧,请选择split-right
。其他选项是split-top
、split-bottom
、split-left
、tab-after
和tab-before
。ref
表示应用mode
的面板,可能是其他仪表板面板的名称。如果ref
是null
,则相关面板将被添加到布局层次结构的顶部。
一个默认布局的具体示例是
{
"individual-task-stream": {
"mode": "split-right",
"ref": null
},
"individual-workers-memory": {
"mode": "split-bottom",
"ref": "individual-task-stream"
},
"individual-progress": {
"mode": "split-right",
"ref": "individual-workers-memory"
}
}
该布局将任务流添加到工作区的右侧,然后在任务流下方添加工作者内存图表,然后将进度图表添加到工作者内存图表的右侧。
开发安装
如JupyterLab开发文档中所述,对于labextension的开发安装,您可以在当前目录中运行以下命令:
jlpm # Install npm package dependencies
jlpm build # Compile the TypeScript sources to Javascript
jupyter labextension develop . --overwrite # Install the current directory as an extension
重建扩展
jlpm build
然后您应该能够刷新 JupyterLab 页面,它会获取扩展程序的变化。
要运行可编辑的服务器扩展程序的安装,请运行:
pip install -e .
jupyter serverextension enable --sys-prefix dask_labextension
发布
此扩展包含一个用 TypeScript 编写的客户端组件和一个用 Python 编写的服务器端组件。前端在构建过程中编译为 JavaScript,并作为静态资产与 Python 包一起分发。
发布流程
这需要安装 node
、build
、hatch
和 twine
。
# To set version (e.g. 7.0.0). hatch will update version string in package.json
hatch version "7.0.0"
# Examples of bumping version
# minor bump
hatch version minor # Bumps to 7.1.0
# beta pre-release bump
# If published to pypi this can be installed with the --pre flag to pip
hatch version b # Bumps to 7.1.0b0
# bump minor and beta
hatch version minor,b # Bumps to 7.2.0b0
# release all of the --pre-release flags such as alpha beta rc
hatch release # Bumps to 7.2.0
# git commit after bumping version
git add package.json && git commit -m "Bump version: {version}"
# Tag this version
git tag {version}
# Finally push to main, build and upload package to PyPI
git push upstream main && git push upstream main --tags # pushes to GitHub
python -m build . # Build the package
twine upload dist/* # Upload the package to PyPI
处理 JavaScript 包版本冲突
与 Python 不同,JavaScript 包可以包含同一依赖项的多个版本。通常,yarn
包管理器可以很好地处理这个问题,但偶尔您可能会遇到冲突版本或意外的包膨胀。您可以尝试通过去重依赖关系来修复此问题。
jlpm yarn-deduplicate -s fewer
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
dask_labextension-7.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 45a60bd0ad31c5e425986b7e40a5aa242aa582ea868025ac2b82d0aa16ffcb8a |
|
MD5 | 7abeb6a092cfa54104d0e0c2b746ca64 |
|
BLAKE2b-256 | aed50a32e550dfdac1afd2f4783edc957054c10e6c4abac3d90c665052a42c19 |
dask_labextension-7.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 34fd1ee80a7259dc292a789cc82e4563d7cd1f5a26eb2ee8b434517482f82027 |
|
MD5 | 7903cb800d7430359484fc06b1c43ffe |
|
BLAKE2b-256 | 450de72831b33686a435d2d34909ffc8d9f92b5177d9f620b31c1abff2eaaa10 |