@@ -16,6 +16,126 @@ master 是负责通信、转发、汇总的节点,计算量和占用资源量
1616
1717### 1.2 运行方法
1818
19+ 1 . ** 方案一:Docker Compose(推荐)**
20+
21+ 确保docker-compose.yaml存在于您的项目根目录中。如果没有,以下是一个示例:
22+
23+ ``` yaml
24+ services :
25+ vermeer-master :
26+ image : hugegraph/vermeer
27+ container_name : vermeer-master
28+ volumes :
29+ - ~/.config:/go/bin/config # Change here to your actual config path
30+ command : --env=master
31+ networks :
32+ vermeer_network :
33+ ipv4_address : 172.20.0.10 # Assign a static IP for the master
34+
35+ vermeer-worker :
36+ image : hugegraph/vermeer
37+ container_name : vermeer-worker
38+ volumes :
39+ - ~/:/go/bin/config # Change here to your actual config path
40+ command : --env=worker
41+ networks :
42+ vermeer_network :
43+ ipv4_address : 172.20.0.11 # Assign a static IP for the worker
44+
45+ networks :
46+ vermeer_network :
47+ driver : bridge
48+ ipam :
49+ config :
50+ - subnet : 172.20.0.0/24 # Define the subnet for your network
51+ ` ` `
52+
53+ 修改 docker-compose.yaml
54+ - **Volume**:例如将两处 ~/:/go/bin/config 改为 /home/user/config:/go/bin/config(或您自己的配置目录)。
55+ - **Subnet**:根据实际情况修改子网IP。请注意,每个容器需要访问的端口在config文件中指定,具体请参照项目` config`文件夹下内容。
56+
57+ 在项目目录构建镜像并启动(或者先用 docker build 再 docker-compose up)
58+
59+ ` ` ` shell
60+ # 构建镜像(在项目根 vermeer 目录)
61+ docker build -t hugegraph/vermeer .
62+
63+ # 启动(在 vermeer 根目录)
64+ docker-compose up -d
65+ # 或使用新版 CLI:
66+ # docker compose up -d
67+ ` ` `
68+
69+ 查看日志 / 停止 / 删除:
70+
71+ ` ` ` shell
72+ docker-compose logs -f
73+ docker-compose down
74+ ` ` `
75+
76+ 2. **方案二:通过 docker run 单独启动(手动创建网络并分配静态 IP)**
77+
78+ 确保CONFIG_DIR对Docker进程具有适当的读取/执行权限。
79+
80+ 构建镜像:
81+
82+ ` ` ` shell
83+ docker build -t hugegraph/vermeer .
84+ ` ` `
85+
86+ 创建自定义 bridge 网络(一次性操作):
87+
88+ ` ` ` shell
89+ docker network create --driver bridge \
90+ --subnet 172.20.0.0/24 \
91+ vermeer_network
92+ ` ` `
93+
94+ 运行 master(调整 CONFIG_DIR 为您的绝对配置路径,可以根据实际情况调整IP):
95+
96+ ` ` ` shell
97+ CONFIG_DIR=/home/user/config
98+
99+ docker run -d \
100+ --name vermeer-master \
101+ --network vermeer_network --ip 172.20.0.10 \
102+ -v ${CONFIG_DIR}:/go/bin/config \
103+ hugegraph/vermeer \
104+ --env=master
105+ ` ` `
106+
107+ 运行 worker:
108+
109+ ` ` ` shell
110+ docker run -d \
111+ --name vermeer-worker \
112+ --network vermeer_network --ip 172.20.0.11 \
113+ -v ${CONFIG_DIR}:/go/bin/config \
114+ hugegraph/vermeer \
115+ --env=worker
116+ ` ` `
117+
118+ 查看日志 / 停止 / 删除:
119+
120+ ` ` ` shell
121+ docker logs -f vermeer-master
122+ docker logs -f vermeer-worker
123+
124+ docker stop vermeer-master vermeer-worker
125+ docker rm vermeer-master vermeer-worker
126+
127+ # 删除自定义网络(如果需要)
128+ docker network rm vermeer_network
129+ ` ` `
130+
131+ 3. **方案三:从源码构建**
132+
133+ 构建。具体请参照 [Vermeer Readme](https://github.com/apache/incubator-hugegraph-computer/tree/master/vermeer)。
134+
135+ ` ` ` shell
136+ go build
137+ ` ` `
138+
19139在进入文件夹目录后输入 `./vermeer --env=master` 或 `./vermeer --env=worker01`
20140
21141# # 二、任务创建类 rest api
@@ -33,24 +153,81 @@ master 是负责通信、转发、汇总的节点,计算量和占用资源量
33153
34154具体参数参考 Vermeer 参数列表文档。
35155
36- request 示例:
156+ vermeer提供三种加载方式:
157+
158+ 1. 从本地加载
159+
160+ 可以预先获取数据集,例如 twitter-2010 数据集。获取方式:https://snap.stanford.edu/data/twitter-2010.html,第一个 twitter-2010.txt.gz 即可。
161+
162+ **request 示例:**
37163
38164` ` ` javascript
39165POST http://localhost:8688/tasks/create
40166{
41167 "task_type": "load",
42168 "graph": "testdb",
43169 "params": {
44- " load.parallel" : " 50" ,
45- " load.type" : " local" ,
46- " load.vertex_files" : " {\" localhost\" :\" data/twitter-2010.v_[0,99]\" }" ,
47- " load.edge_files" : " {\" localhost\" :\" data/twitter-2010.e_[0,99]\" }" ,
48- " load.use_out_degree" : " 1" ,
49- " load.use_outedge" : " 1"
170+ "load.parallel": "50",
171+ "load.type": "local",
172+ "load.vertex_files": "{\" localhost\" :\" data/twitter-2010.v_[0,99]\" }",
173+ "load.edge_files": "{\" localhost\" :\" data/twitter-2010.e_[0,99]\" }",
174+ "load.use_out_degree": "1",
175+ "load.use_outedge": "1"
50176 }
51177}
52178` ` `
53179
180+ 2. 从hugegraph加载
181+
182+ **request 示例:**
183+
184+ ⚠️ 安全警告:切勿在配置文件或代码中存储真实密码。请改用环境变量或安全的凭据管理系统。
185+
186+ ` ` ` javascript
187+ POST http://localhost:8688/tasks/create
188+ {
189+ "task_type": "load",
190+ "graph": "testdb",
191+ "params": {
192+ "load.parallel": "50",
193+ "load.type": "hugegraph",
194+ "load.hg_pd_peers": "[\" <your-hugegraph-ip>:8686\" ]",
195+ "load.hugegraph_name": "DEFAULT/hugegraph2/g",
196+ "load.hugegraph_username": "admin",
197+ "load.hugegraph_password": "<your-password-here>",
198+ "load.use_out_degree": "1",
199+ "load.use_outedge": "1"
200+ }
201+ }
202+ ` ` `
203+
204+ 3. 从hdfs加载
205+
206+ **request 示例:**
207+
208+ ` ` ` javascript
209+ POST http://localhost:8688/tasks/create
210+ {
211+ "task_type": "load",
212+ "graph": "testdb",
213+ "params": {
214+ "load.parallel": "50",
215+ "load.type": "hdfs",
216+ "load.hdfs_namenode": "name_node1:9000",
217+ "load.hdfs_conf_path": "/path/to/conf",
218+ "load.krb_realm": "EXAMPLE.COM",
219+ "load.krb_name": "user@EXAMPLE.COM",
220+ "load.krb_keytab_path": "/path/to/keytab",
221+ "load.krb_conf_path": "/path/to/krb5.conf",
222+ "load.hdfs_use_krb": "1",
223+ "load.vertex_files": "/data/graph/vertices",
224+ "load.edge_files": "/data/graph/edges",
225+ "load.use_out_degree": "1",
226+ "load.use_outedge": "1"
227+ }
228+ }
229+ ` ` `
230+
54231# ## 2.3 输出计算结果
55232
56233所有的 vermeer 计算任务均支持多种结果输出方式,可自定义输出方式:local、hdfs、afs 或 hugegraph,在发送请求时的 params 参数下加入对应参数,即可生效。指定 output.need_statistics 为 1 时,支持计算结果统计信息输出,结果会写在接口任务信息内。统计模式算子目前支持 "count" 和 "modularity" 。但仅针对社区发现算法适用。
@@ -66,13 +243,13 @@ POST http://localhost:8688/tasks/create
66243 "graph": "testdb",
67244 "params": {
68245 "compute.algorithm": "pagerank",
69- " compute.parallel" : " 10" ,
70- " compute.max_step" : " 10" ,
71- " output.type" : " local" ,
72- " output.parallel" : " 1" ,
73- " output.file_path" : " result/pagerank"
74- }
75- }
246+ "compute.parallel": "10",
247+ "compute.max_step": "10",
248+ "output.type": "local",
249+ "output.parallel": "1",
250+ "output.file_path": "result/pagerank"
251+ }
252+ }
76253` ` `
77254
78255# # 三、支持的算法
0 commit comments