Skip to content

Version 1.5 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot. For up-to-date documentation, see the latest version.

HugeGraph-Store Quick Start

1 HugeGraph-Store Overview

HugeGraph-Store is the storage node component of HugeGraph’s distributed version, responsible for actually storing and managing graph data. It works in conjunction with HugeGraph-PD to form HugeGraph’s distributed storage engine, providing high availability and horizontal scalability.

2 Prerequisites

2.1 Requirements

  • Operating System: Linux or MacOS (Windows has not been fully tested)
  • Java version: ≥ 11
  • Maven version: ≥ 3.5.0
  • Deployed HugeGraph-PD (for multi-node deployment)

3 Deployment

There are two ways to deploy the HugeGraph-Store component:

  • Method 1: Download the tar package
  • Method 2: Compile from source

3.1 Download the tar package

Download the latest version of HugeGraph-Store from the Apache HugeGraph official download page:

1# Replace {version} with the latest version number, e.g., 1.5.0
2wget https://downloads.apache.org/incubator/hugegraph/{version}/apache-hugegraph-incubating-{version}.tar.gz  
3tar zxf apache-hugegraph-incubating-{version}.tar.gz
4cd apache-hugegraph-incubating-{version}/apache-hugegraph-hstore-incubating-{version}

3.2 Compile from source

 1# 1. Clone the source code
 2git clone https://github.com/apache/hugegraph.git
 3
 4# 2. Build the project
 5cd hugegraph
 6mvn clean install -DskipTests=true
 7
 8# 3. After successful compilation, the Store module build artifacts will be located at
 9#    apache-hugegraph-incubating-{version}/apache-hugegraph-hstore-incubating-{version}
10#    target/apache-hugegraph-incubating-{version}.tar.gz

4 Configuration

The main configuration file for Store is conf/application.yml. Here are the key configuration items:

 1pdserver:
 2  # PD service address, multiple PD addresses are separated by commas (configure PD's gRPC port)
 3  address: 127.0.0.1:8686
 4
 5grpc:
 6  # gRPC service address
 7  host: 127.0.0.1
 8  port: 8500
 9  netty-server:
10    max-inbound-message-size: 1000MB
11
12raft:
13  # raft cache queue size
14  disruptorBufferSize: 1024
15  address: 127.0.0.1:8510
16  max-log-file-size: 600000000000
17  # Snapshot generation time interval, in seconds
18  snapshotInterval: 1800
19
20server:
21  # REST service address
22  port: 8520
23
24app:
25  # Storage path, supports multiple paths separated by commas
26  data-path: ./storage
27  #raft-path: ./storage
28
29spring:
30  application:
31    name: store-node-grpc-server
32  profiles:
33    active: default
34    include: pd
35
36logging:
37  config: 'file:./conf/log4j2.xml'
38  level:
39    root: info

For multi-node deployment, you need to modify the following configurations for each Store node:

  1. grpc.port (RPC port) for each node
  2. raft.address (Raft protocol port) for each node
  3. server.port (REST port) for each node
  4. app.data-path (data storage path) for each node

5 Start and Stop

5.1 Start Store

Ensure that the PD service is already started, then in the Store installation directory, execute:

1./bin/start-hugegraph-store.sh

After successful startup, you can see logs similar to the following in logs/hugegraph-store-server.log:

12024-xx-xx xx:xx:xx [main] [INFO] o.a.h.s.n.StoreNodeApplication - Started StoreNodeApplication in x.xxx seconds (JVM running for x.xxx)

5.2 Stop Store

In the Store installation directory, execute:

1./bin/stop-hugegraph-store.sh

6 Multi-Node Deployment Example

Below is a configuration example for a three-node deployment:

6.1 Three-Node Configuration Reference

  • 3 PD nodes
    • raft ports: 8610, 8611, 8612
    • rpc ports: 8686, 8687, 8688
    • rest ports: 8620, 8621, 8622
  • 3 Store nodes
    • raft ports: 8510, 8511, 8512
    • rpc ports: 8500, 8501, 8502
    • rest ports: 8520, 8521, 8522

6.2 Store Node Configuration

For the three Store nodes, the main configuration differences are as follows:

Node A:

1grpc:
2  port: 8500
3raft:
4  address: 127.0.0.1:8510
5server:
6  port: 8520
7app:
8  data-path: ./storage-a

Node B:

1grpc:
2  port: 8501
3raft:
4  address: 127.0.0.1:8511
5server:
6  port: 8521
7app:
8  data-path: ./storage-b

Node C:

1grpc:
2  port: 8502
3raft:
4  address: 127.0.0.1:8512
5server:
6  port: 8522
7app:
8  data-path: ./storage-c

All nodes should point to the same PD cluster:

1pdserver:
2  address: 127.0.0.1:8686,127.0.0.1:8687,127.0.0.1:8688

7 Verify Store Service

Confirm that the Store service is running properly:

1curl http://localhost:8520/actuator/health

If it returns {"status":"UP"}, it indicates that the Store service has been successfully started.

Additionally, you can check the status of Store nodes in the cluster through the PD API:

1curl http://localhost:8620/pd/api/v1/stores