HugeGraph Computer - A distributed graph processing system for hugegraph (OLAP)

Clone this repo:
  1. 04985bb doc: fix README.md file diagram (#356) by Rahul Kumar Behera · 6 weeks ago master
  2. a6b2fb2 fix(ci): use GET for rerun freshness check (#354) by lokidundun · 7 weeks ago
  3. 8cd2f18 refactor(vermeer): cross-compile Docker binaries (#353) by imbajin · 8 weeks ago
  4. 7caae10 fix: replace revision with ${project.version} in artifacts path (#352) by Dev Hingu · 8 weeks ago
  5. b636712 refactor(computer): support new edgeid format in 1.7 (#349) by hutiefang76 · 9 weeks ago

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

FeatureVermeer (Go)Computer (Java)
Best forQuick start, flexible deploymentLarge-scale distributed computing
DeploymentSingle binary, multi-node capableKubernetes or YARN cluster
Memory modelIn-memory firstAuto spill to disk
Setup timeMinutesHours (requires K8s/YARN)
Algorithms20+ algorithms45+ algorithms
ArchitectureMaster-WorkerBSP (Bulk Synchronous Parallel)
APIREST + gRPCJava API
Web UIBuilt-in dashboardN/A
Data sourcesHugeGraph, CSV, HDFSHugeGraph, HDFS

Architecture Overview

HugeGraph-Computer Vermeer (Go) - In-Memory Engine Computer (Java) - Distributed BSP Master :6688 Worker 1 :6789 Worker 2 :6789 Worker N :6789 Master Service Worker Pod 1 Worker Pod 2 Worker Pod N HugeGraph Server

Vermeer Architecture (In-Memory Engine)

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

Client Layer Master Node Worker Nodes Data Sources REST API Client Web UI Dashboard HTTP Server :6688 gRPC Server :6689 Graph Manager Task Manager Worker Manager Scheduler Worker 1 :6789 Worker 2 :6789 Worker N :6789 HugeGraph Local CSV HDFS

Component Overview:

ComponentDescription
MasterCoordinates workers, manages graph metadata, schedules computation tasks via HTTP (:6688) and gRPC (:6689)
WorkersExecute graph algorithms, store graph partition data in memory, communicate via gRPC (:6789)
REST APIGraph loading, algorithm execution, result queries (port 6688)
Web UIBuilt-in monitoring dashboard accessible at /ui/
Data SourcesSupports 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+)

CategoryAlgorithms
CentralityPageRank, Personalized PageRank, Betweenness, Closeness, Degree
CommunityLouvain, Weighted Louvain, LPA, SLPA, WCC, SCC
Path FindingSSSP (Dijkstra), BFS Depth
StructureTriangle Count, K-Core, K-Out, Clustering Coefficient, Cycle Detection
SimilarityJaccard 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