集群部署#
如果需要部署在本地或者云端的机器上,可以参考这篇文档,使用命令行部署一个分布式的 Xorbits 集群。
安装#
首先,参考 安装文档 确保每个机器都正确安装了 Xorbits。
启动 supervisor#
在所有机器中选择一个用来启动 supervisor 和 web 服务,启动命令:
xorbits-supervisor -H <supervisor_ip> -p <supervisor_port> -w <web_port>
或者使用 python -m
:
python -m xorbits.supervisor -H <supervisor_ip> -p <supervisor_port> -w <web_port>
<web_port> 是指定 web 服务的端口,web 服务主要用来:
提供展示集群状态与任务详情的 UI。
用户可以使用 xorbits.init(“<supervisor_ip>:<web_port>”) 创建连接,提交任务到集群。
启动 worker#
其余的机器可以作为 worker 启动,启动命令:
xorbits-worker -H <worker_ip> -p <worker_port> -s <supervisor_ip>:<supervisor_port>
或者使用 python -m
:
python -m xorbits.worker -H <worker_ip> -p <worker_port> -s <supervisor_ip>:<supervisor_port>
连接到创建的集群#
接下来使用 Python 代码与集群创建连接。
import xorbits
xorbits.init("http://<supervisor_ip>:<supervisor_web_port>")
用 supervisor 的 IP 地址替换 <supervisor_ip>
,用刚刚指定的 web 端口替换 <supervisor_web_port>
。
Xorbits Web UI#
你可以在浏览器中打开 http://<supervisor_ip>:<supervisor_web_port>
浏览 Web UI,查看集群资源以及提交的任务执行进度等信息。
命令行参数#
共用参数#
下面列出的是共用的参数。
参数名 |
描述 |
---|---|
|
服务绑定的 IP,默认 |
|
服务端口。如果不指定会使用一个随机闲置端口 |
|
配置文件地址。不指定使用默认配置。 |
|
Supervisor 地址列表,逗号分隔。用来启动 worker 时指定 supervisor 的地址或者在多 supervisor 时指定。 |
|
日志级别,包括 |
|
日志格式,兼容 Python logging 模块格式 |
|
日志配置文件,默认 |
|
是否使用 |
Supervisor 其余参数#
参数名 |
描述 |
---|---|
|
Web 服务的端口 |
Worker 其余参数#
参数名 |
描述 |
---|---|
|
使用的 CPU 核数。如果不填,使用所有可用的核。 |
|
IO 进程个数。默认是 1 |
|
使用的 CUDA 设备索引。如果不指定,使用所有的设备。指定为空字符串则忽略所有设备。 |
Custom configuration#
Default configuration can be modified by specifying a -f
flag. Provide the path of your yml
file which contains custom configuration along with -f
flag.
For example#
If the user want to modify transfer_block_size`
and node_timeout
, specify -f your-config.yml
.
your-config.yml
"@inherits": "@default"
storage:
default_config:
transfer_block_size: 10 * 1024 ** 2
cluster:
node_timeout: 1200
示例#
假设需要起一个 supervisor 两个 worker 的 Xorbits 集群,可以使用如下的命令:
Supervisor (192.168.1.10) 上:
xorbits-supervisor -H 192.168.1.10 -p 7001 -w 7005
worker1 (192.168.1.20) 上:
xorbits-worker -H 192.168.1.20 -p 7003 -s 192.168.1.10:7001
worker2 (192.168.1.21) 上:
xorbits-worker -H 192.168.1.21 -p 7004 -s 192.168.1.10:7001
在一个与 supervisor 可以连通的客户端,使用下面的 Python 代码做验证:
import xorbits
import xorbits.numpy as np
xorbits.init('http://192.168.1.10:7005')
print(np.random.rand(100, 100).mean())