专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单

文档

工具

功能
提交工单页面收录

帮助
轩辕镜像免费版

其他
关于我们网站地图
热门搜索:
vermeer

hugegraph/vermeer

hugegraph

Vermeer是高性能内存图计算平台,采用单二进制部署模式,提供20+图算法、自定义算法扩展及与HugeGraph的无缝集成,支持主从架构横向扩展,适用于中大型图的快速迭代计算。

下载次数: 0状态:社区镜像维护者:hugegraph仓库类型:镜像最近更新:1 个月前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,让镜像更快,让人生更轻。点击查看
中文简介
标签列表
镜像标签列表与下载命令
轩辕镜像,让镜像更快,让人生更轻。点击查看

Vermeer - 高性能内存图计算平台

镜像概述和主要用途

Vermeer是一个高性能内存图计算平台,采用单二进制部署模式。它提供20多种图算法、自定义算法扩展功能,并能与HugeGraph无缝集成。该平台专为中大型图数据的快速迭代计算设计,支持主从架构实现横向扩展,可通过REST API和gRPC轻松与现有系统集成,并提供内置的Web UI仪表板用于监控和作业管理。

核心功能和特性

  • 单二进制部署:零外部依赖,可在任何环境运行
  • 内存计算性能:针对中大型图的快速迭代进行优化
  • 主从架构:通过添加工作节点实现横向扩展
  • REST API + gRPC:便于与现有系统集成
  • Web UI仪表板:内置监控和作业管理功能
  • 多数据源支持:HugeGraph、本地CSV、HDFS
  • 20+图算法:生产级别的算法实现

架构

mermaid
graph TB
    subgraph Client["客户端层"]
        API[REST API客户端]
        UI[Web UI仪表板]
    end

    subgraph Master["主节点"]
        HTTP[HTTP服务器 :6688]
        GRPC_M[gRPC服务器 :6689]
        GM[图管理器]
        TM[任务管理器]
        WM[工作节点管理器]
        SCH[调度器]
    end

    subgraph Workers["工作节点"]
        W1[工作节点1 :6789]
        W2[工作节点2 :6789]
        W3[工作节点N :6789]
    end

    subgraph DataSources["数据源"]
        HG[(HugeGraph)]
        CSV[本地CSV]
        HDFS[HDFS]
    end

    API --> HTTP
    UI --> HTTP
    HTTP --> GM
    HTTP --> TM
    GRPC_M <--> W1
    GRPC_M <--> W2
    GRPC_M <--> W3

    W1 <--> HG
    W2 <--> HG
    W3 <--> HG
    W1 <--> CSV
    W1 <--> HDFS

    style Master fill:#e1f5fe
    style Workers fill:#fff3e0
    style DataSources fill:#f1f8e9

目录结构

vermeer/
├── main.go              # 单二进制入口点
├── Makefile             # 构建自动化
├── algorithms/          # 20+算法实现
│   ├── pagerank.go
│   ├── louvain.go
│   ├── sssp.go
│   └── ...
├── apps/
│   ├── master/          # 主服务
│   │   ├── services/    # HTTP处理器
│   │   ├── workers/     # 工作节点管理
|   |   ├── schedules/    # 任务调度策略
│   │   └── tasks/       # 任务调度
│   ├── compute/         # 工作节点计算逻辑
│   ├── graphio/         # 图I/O(HugeGraph、CSV、HDFS)
│   │   └── hugegraph.go # HugeGraph集成
│   ├── protos/          # gRPC定义
│   └── common/          # 工具类、日志、指标
├── config/              # 配置模板
│   ├── master.ini
│   └── worker.ini
├── tools/               # 二进制依赖(supervisord、protoc)
└── ui/                  # Web仪表板

使用场景和适用范围

  • 中大型图数据的快速迭代计算
  • 图算法分析(如PageRank、社区检测、路径查找等)
  • 与HugeGraph集成的图数据处理流程
  • 需要横向扩展的分布式图计算任务
  • 自定义图算法的开发和部署

使用方法和配置说明

快速开始

选项1:Docker(推荐)

拉取镜像:

bash
docker pull hugegraph/vermeer:latest

创建专用配置目录(例如 ~/vermeer-config/),并在其中放置 master.ini 和 worker.ini 文件(参见配置部分)。

使用Docker运行:

bash
# 主节点
docker run -v ~/vermeer-config:/go/bin/config hugegraph/vermeer --env=master

# 工作节点
docker run -v ~/vermeer-config:/go/bin/config hugegraph/vermeer --env=worker

安全注意:仅挂载包含Vermeer配置文件的目录。避免挂载整个主目录以最小化安全风险。

Docker Compose

更新 ~/worker.ini 中的 master_peer 为 172.20.0.10:6689,并编辑 docker-compose.yml 以挂载配置目录:

yaml
    volumes:
      - ~/:/go/bin/config # 在此处更改为实际配置路径
bash
docker-compose up -d

选项2:二进制下载

bash
# 下载二进制文件(替换版本和平台)
wget https://github.com/apache/hugegraph-computer/releases/download/vX.X.X/vermeer-linux-amd64.tar.gz
tar -xzf vermeer-linux-amd64.tar.gz
cd vermeer

# 运行主节点和工作节点
./vermeer --env=master &
./vermeer --env=worker &

--env 参数指定 config/ 文件夹中的配置文件名(例如 master.ini、worker.ini)。

使用Shell脚本

在 vermeer.sh 中配置参数,然后:

bash
./vermeer.sh start master
./vermeer.sh start worker

选项3:从源码构建

前提条件

  • Go 1.23或更高版本
  • curl 和 unzip 工具(用于下载依赖)
  • 网络连接(首次设置时需要)

构建步骤

推荐:使用Makefile:

bash
# 首次设置(下载supervisord和protoc二进制文件)
make init

# 为当前平台构建
make

# 或为特定平台构建
make build-linux-amd64
make build-linux-arm64

替代方案:使用构建脚本:

bash
# 自动检测平台
./build.sh

# 或指定架构
./build.sh amd64
./build.sh arm64

开发构建

用于Web UI热重载的开发模式:

bash
go build -tags=dev

清理构建产物

bash
make clean      # 移除二进制文件和生成的资源
make clean-all  # 同时移除下载的工具(supervisord、protoc)

配置

主节点配置(master.ini)

ini
[default]
# 主节点HTTP监听地址
http_peer = 0.0.0.0:6688

# 主节点gRPC监听地址
grpc_peer = 0.0.0.0:6689

# 主节点对等地址(工作节点引用)
master_peer = 127.0.0.1:6689

# 运行模式
run_mode = master

# 任务调度策略
task_strategy = 1

# 并行任务数量
task_parallel_num = 1

注意:HugeGraph连接详情(pd_peers、server、graph)在图加载API请求中提供,而非配置文件。详见HugeGraph集成部分。

工作节点配置(worker.ini)

ini
[default]
# 工作节点HTTP监听地址
http_peer = 0.0.0.0:6788

# 工作节点gRPC监听地址
grpc_peer = 0.0.0.0:6789

# 要连接的主节点gRPC地址
master_peer = 127.0.0.1:6689

# 运行模式
run_mode = worker

# 工作节点组标识符
worker_group = default

可用算法

算法类别描述
PageRank中心性通过链接结构衡量顶点重要性
Personalized PageRank中心性从特定源顶点计算PageRank
Betweenness Centrality中心性通过最短路径衡量顶点重要性
Closeness Centrality中心性衡量到所有其他顶点的平均距离
Degree Centrality中心性简单的入/出度计算
Louvain社区检测基于模块度的社区检测
Louvain (Weighted)社区检测边加权图的加权变体
LPA社区检测标签传播算法
SLPA社区检测说话者-听者标签传播
WCC社区检测弱连通分量
SCC社区检测强连通分量
SSSP路径查找单源最短路径(Dijkstra)
Triangle Count图结构计算图中的三角形数量
K-Core图结构查找k核子图
K-Out图结构k度过滤
Clustering Coefficient图结构衡量局部聚类程度
Cycle Detection图结构检测有向图中的环
Jaccard Similarity相似度计算基于邻居的相似度
Depth (BFS)遍历广度优先搜索深度分配

API概述

Vermeer在端口 6688(可在 master.ini 中配置)上公开REST API。

主要端点

端点方法描述
/api/v1/graphsPOST从数据源加载图
/api/v1/graphs/{graph_id}GET获取图元数据
/api/v1/graphs/{graph_id}DELETE从内存中卸载图
/api/v1/computePOST在已加载的图上执行算法
/api/v1/tasks/{task_id}GET获取任务状态和结果
/api/v1/workersGET列出已连接的工作节点
/ui/GETWeb UI仪表板

示例:运行PageRank

bash
# 1. 从HugeGraph加载图
curl -X POST http://localhost:6688/api/v1/graphs \
  -H "Content-Type: application/json" \
  -d '{
    "graph_name": "my_graph",
    "load_type": "hugegraph",
    "hugegraph": {
      "pd_peers": ["127.0.0.1:8686"],
      "graph_name": "hugegraph"
    }
  }'

# 2. 运行PageRank
curl -X POST http://localhost:6688/api/v1/compute \
  -H "Content-Type: application/json" \
  -d '{
    "graph_name": "my_graph",
    "algorithm": "pagerank",
    "params": {
      "max_iterations": 20,
      "damping_factor": 0.85
    },
    "output": {
      "type": "hugegraph",
      "property_name": "pagerank_value"
    }
  }'

# 3. 检查任务状态
curl http://localhost:6688/api/v1/tasks/{task_id}

OLAP与OLTP模式

  • OLAP模式:将整个图加载到内存中,运行多个算法
  • OLTP模式:查询驱动,按需加载子图(计划功能)

数据源

HugeGraph集成

Vermeer通过以下方式与HugeGraph集成:

  1. 元数据查询:通过gRPC查询HugeGraph PD(元数据服务)获取分区信息
  2. 数据加载:通过gRPC(ScanPartition)从HugeGraph Store流式传输顶点/边
  3. 结果写入:通过HugeGraph REST API将计算结果写回(添加顶点属性)

图加载请求中的配置:

json
{
  "load_type": "hugegraph",
  "hugegraph": {
    "pd_peers": ["127.0.0.1:8686"],
    "graph_name": "hugegraph",
    "vertex_label": "person",
    "edge_label": "knows"
  }
}

本地CSV文件

从本地CSV文件加载图:

json
{
  "load_type": "csv",
  "csv": {
    "vertex_file": "/path/to/vertices.csv",
    "edge_file": "/path/to/edges.csv",
    "delimiter": ","
  }
}

HDFS

从Hadoop分布式文件系统加载:

json
{
  "load_type": "hdfs",
  "hdfs": {
    "namenode": "hdfs://namenode:9000",
    "vertex_path": "/graph/vertices",
    "edge_path": "/graph/edges"
  }
}

开发自定义算法

自定义算法需实现 algorithms/algorithms.go 中的 Algorithm 接口:

注意:以下是简化的概念性接口,用于说明。实际算法实现需参见 apps/compute/api.go 中定义的 WorkerComputer 和 MasterComputer 接口。

go
type Algorithm interface {
    // 初始化算法
    Init(params map[string]interface{}) error

    // 为顶点计算一次迭代
    Compute(vertex *Vertex, messages []Message) (halt bool, outMessages []Message)

    // 聚合全局状态(可选)
    Aggregate() interface{}

    // 检查终止条件
    Terminate(iteration int) bool
}

示例:简单度计数

注意:这是简化的概念示例。实际算法必须实现 WorkerComputer 接口。详见 vermeer/algorithms/degree.go 获取工作示例。

go
package algorithms

type DegreeCount struct {
    maxIter int
}

func (dc *DegreeCount) Init(params map[string]interface{}) error {
    dc.maxIter = params["max_iterations"].(int)
    return nil
}

func (dc *DegreeCount) Compute(vertex *Vertex, messages []Message) (bool, []Message) {
    // 将度存储为顶点值
    vertex.SetValue(float64(len(vertex.OutEdges)))

    // 第一次迭代后停止
    return true, nil
}

func (dc *DegreeCount) Terminate(iteration int) bool {
    return iteration >= dc.maxIter
}

在 algorithms/algorithms.go 中注册算法:

go
func init() {
    RegisterAlgorithm("degree_count", &DegreeCount{})
}

内存管理

Vermeer采用内存优先的方法:

  1. 图加载:顶点和边分布在工作节点上并存储在内存中
  2. 自动分区:主节点根据容量将分区分配给工作节点
  3. 内存监控:工作节点向主节点报告内存使用情况
  4. 优雅降级:如果内存不足,算法可能失败(磁盘溢出尚未实现)

最佳实践:确保工作节点总内存超过图大小2-3倍,以提供算法工作空间。

Supervisord集成

将Vermeer作为守护进程运行,支持自动重启和日志轮转:

bash
# 配置位于 config/supervisor.conf
./tools/supervisord -c config/supervisor.conf -d

示例supervisor配置:

ini
[program:vermeer-master]
command=/path/to/vermeer --env=master
autostart=true
autorestart=true
stdout_logfile=/var/log/vermeer-master.log

Protobuf开发

如果修改 .proto 文件,需重新生成Go代码:

bash
# 安装protobuf Go插件
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.0
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0

# 生成(根据平台调整protoc路径)
vermeer/tools/protoc/linux64/protoc vermeer/apps/protos/*.proto --go-grpc_out=vermeer/apps/protos/. --go_out=vermeer/apps/protos/. # 请注意移除任何许可证头

性能调优

主节点配置

  • task_parallel_num:并行任务数量(默认:1)。增加此值可提高任务调度吞吐量。

算法特定调优

  • PageRank:使用 damping_factor=0.85、tolerance=0.0001 以加快收敛
  • Louvain:仅在边权重有意义时启用 weighted=true
  • SSSP

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 vermeer 镜像标签

docker pull docker.xuanyuan.run/hugegraph/vermeer:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull hugegraph/vermeer:<标签>

更多 vermeer 镜像推荐

hugegraph/hugegraph logo

hugegraph/hugegraph

hugegraph
Apache HugeGraph-Server官方版本提供分布式图数据库服务,支持大规模图数据的存储、查询与分析,由官方维护确保稳定性与兼容性。
5 次收藏5万+ 次下载
20 天前更新
hugegraph/hugegraph-computer-operator-manager logo

hugegraph/hugegraph-computer-operator-manager

hugegraph
暂无描述
10万+ 次下载
2 年前更新
hugegraph/hugegraph-computer-operator logo

hugegraph/hugegraph-computer-operator

hugegraph
Apache HugeGraph-Computer的K8s Operator镜像,用于在Kubernetes环境中部署和管理HugeGraph-Computer计算任务,具体使用请参考官方文档。
1 次收藏4.1千+ 次下载
2 年前更新
hugegraph/hubble logo

hugegraph/hubble

hugegraph
Apache HugeGraph分析仪表板(支持数据加载、模式管理、图遍历与展示)
1 次收藏5万+ 次下载
1 个月前更新
hugegraph/hugegraph-computer logo

hugegraph/hugegraph-computer

hugegraph
Apache HugeGraph-Computer是HugeGraph的分布式图处理系统,基于Pregel模型实现,支持Kubernetes或YARN框架,提供分布式MPP图计算能力,集成HugeGraph作为输入/输出存储。
3.1千+ 次下载
2 年前更新
hugegraph/rag logo

hugegraph/rag

hugegraph
hugegraph-ai集成HugeGraph与人工智能能力,提供GraphRAG(图增强检索生成)、知识图谱自动构建、20+图机器学习算法及Python客户端,帮助开发者构建AI驱动的图应用。
3.3千+ 次下载
26 天前更新

查看更多 vermeer 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
hugegraph/vermeer
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:831623681
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.