Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

hugegraph/hugegraph-computer

Repository files navigation

Apache HugeGraph-Computer

License Build Status codecov Docker Pulls Ask DeepWiki

Apache HugeGraph-Computer is a comprehensive graph computing solution providing two complementary systems for different deployment scenarios:

  • Vermeer (Go): High-performance in-memory computing engine for single-machine deployments
  • Computer (Java): Distributed BSP/Pregel framework for large-scale cluster computing

Quick Comparison

Feature Vermeer (Go) Computer (Java)
Best for Quick start, flexible deployment Large-scale distributed computing
Deployment Single binary, multi-node capable Kubernetes or YARN cluster
Memory model In-memory first Auto spill to disk
Setup time Minutes Hours (requires K8s/YARN)
Algorithms 20+ algorithms 45+ algorithms
Architecture Master-Worker BSP (Bulk Synchronous Parallel)
API REST + gRPC Java API
Web UI Built-in dashboard N/A
Data sources HugeGraph, CSV, HDFS HugeGraph, HDFS

Architecture Overview

graph TB
 subgraph HugeGraph-Computer
 subgraph Vermeer["Vermeer (Go) - In-Memory Engine"]
 VM[Master :6688] --> VW1[Worker 1 :6789]
 VM --> VW2[Worker 2 :6789]
 VM --> VW3[Worker N :6789]
 end
 subgraph Computer["Computer (Java) - Distributed BSP"]
 CM[Master Service] --> CW1[Worker Pod 1]
 CM --> CW2[Worker Pod 2]
 CM --> CW3[Worker Pod N]
 end
 end
 HG[(HugeGraph Server)] <--> Vermeer
 HG <--> Computer
 style Vermeer fill:#e1f5fe
 style Computer fill:#fff3e0
Loading

Vermeer Architecture (In-Memory Engine)

Vermeer is designed with a Master-Worker architecture optimized for high-performance in-memory graph computing:

graph TB
 subgraph Client["Client Layer"]
 API[REST API Client]
 UI[Web UI Dashboard]
 end
 subgraph Master["Master Node"]
 HTTP[HTTP Server :6688]
 GRPC_M[gRPC Server :6689]
 GM[Graph Manager]
 TM[Task Manager]
 WM[Worker Manager]
 SCH[Scheduler]
 end
 subgraph Workers["Worker Nodes"]
 W1[Worker 1 :6789]
 W2[Worker 2 :6789]
 W3[Worker N :6789]
 end
 subgraph DataSources["Data Sources"]
 HG[(HugeGraph)]
 CSV[Local CSV]
 HDFS[HDFS]
 end
 API --> HTTP
 UI --> HTTP
 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:#f3e5f5
 style DataSources fill:#fff9c4
Loading

Component Overview:

Component Description
Master Coordinates workers, manages graph metadata, schedules computation tasks via HTTP (:6688) and gRPC (:6689)
Workers Execute graph algorithms, store graph partition data in memory, communicate via gRPC (:6789)
REST API Graph loading, algorithm execution, result queries (port 6688)
Web UI Built-in monitoring dashboard accessible at /ui/
Data Sources Supports loading from HugeGraph (via gRPC), local CSV files, and HDFS

HugeGraph Ecosystem Integration

┌─────────────────────────────────────────────────────────────┐
│ HugeGraph Ecosystem │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ Hubble │ │ Toolchain │ │ HugeGraph-AI │ │
│ │ (UI) │ │ (Tools) │ │ (LLM/RAG) │ │
│ └──────┬──────┘ └──────┬──────┘ └────────┬────────┘ │
│ │ │ │ │
│ └──────────────────┼────────────────────┘ │
│ │ │
│ ┌───────▼───────┐ │
│ │ HugeGraph │ │
│ │ Server │ │
│ └───────┬───────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ │ │ │
│ ┌──────▼──────┐ ┌──────▼──────┐ ┌─────▼─────┐ │
│ │ Vermeer │ │ Computer │ │ Store │ │
│ │ (Memory) │ │ (BSP/K8s) │ │ (PD) │ │
│ └─────────────┘ └─────────────┘ └───────────┘ │
└─────────────────────────────────────────────────────────────┘

Getting Started with Vermeer (Recommended)

For quick start and single-machine deployments, we recommend Vermeer:

Docker Quick Start

# Pull the image
docker pull hugegraph/vermeer:latest
# Change config path in docker-compose.yaml
volumes:
 - ~/:/go/bin/config # Change here to your actual config path, e.g., vermeer/config
# Run with docker-compose
docker-compose up -d

Binary Quick Start

# Download and extract (example for Linux AMD64)
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
# Run master and worker
./vermeer --env=master &
./vermeer --env=worker &

See the Vermeer README for detailed configuration and usage.

Getting Started with Computer (Distributed)

For large-scale distributed graph processing on Kubernetes or YARN clusters, see the Computer README for:

  • Prerequisites and build instructions
  • Kubernetes/YARN deployment guide
  • 45+ algorithm implementations
  • Custom algorithm development framework

Supported Algorithms

Vermeer Algorithms (20+)

Category Algorithms
Centrality PageRank, Personalized PageRank, Betweenness, Closeness, Degree
Community Louvain, Weighted Louvain, LPA, SLPA, WCC, SCC
Path Finding SSSP (Dijkstra), BFS Depth
Structure Triangle Count, K-Core, K-Out, Clustering Coefficient, Cycle Detection
Similarity Jaccard Similarity

Features:

  • In-memory optimized implementations
  • REST API for algorithm execution
  • Real-time result queries

Computer (Java) Algorithms: For Computer's 45+ algorithm implementations including distributed Triangle Count, Rings detection, and custom algorithm development framework, see Computer Algorithm List.

When to Use Which

Choose Vermeer when:

  • ✅ Quick prototyping and experimentation
  • ✅ Interactive analytics with built-in Web UI
  • ✅ Graphs up to hundreds of millions of edges
  • ✅ REST API integration requirements
  • ✅ Single machine or small cluster with high-memory nodes
  • ✅ Sub-second query response requirements

Performance: Optimized for fast iteration on medium-sized graphs with in-memory processing. Horizontal scaling by adding worker nodes.

Choose Computer when:

  • ✅ Billions of vertices/edges requiring distributed processing
  • ✅ Existing Kubernetes or YARN infrastructure
  • ✅ Custom algorithm development with Java
  • ✅ Memory-constrained environments (auto disk spill)
  • ✅ Integration with Hadoop ecosystem

Performance: Handles massive graphs via distributed BSP framework. Batch-oriented with superstep barriers. Elastic scaling on K8s.

Documentation

Related Projects

  1. hugegraph - Graph database core (Server + PD + Store)
  2. hugegraph-toolchain - Graph tools (Loader/Hubble/Tools/Client)
  3. hugegraph-ai - Graph AI/LLM/Knowledge Graph system
  4. hugegraph-website - Documentation and website

Contributing

Welcome to contribute to HugeGraph-Computer! Please see:

We recommend using GitHub Desktop to simplify the PR process.

Thank you to all contributors!

contributors graph

License

HugeGraph-Computer is licensed under Apache 2.0 License.

Contact Us

WeChat QR Code

About

HugeGraph Vermeer - An in-memory distributed graph processing system for hugegraph (OLAP)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Java 67.7%
  • Go 29.0%
  • Shell 1.4%
  • Groovy 0.9%
  • Makefile 0.3%
  • HTML 0.3%
  • Other 0.4%

AltStyle によって変換されたページ (->オリジナル) /