HugeGraph + Windows + PostgreSQL 部署

1、HugeGraph

HugeGraph 是一款易用、高效、通用的 开源!开源!开源! 图数据库,最初由百度安全团队自主研发。

HugeGraph 图数据库支持百亿以上的顶点和边快速导入,并提供毫秒级的关联关系查询能力(OLTP)。支持 Property Graph 和 Apache Gremlin 查询语言,具备导入、导出、备份、恢复、可视化界面等工具组件,提供简单易用的RESTful API 及 Client,可以轻松构建各种基于图数据库的应用和产品。

HugeGraph 图数据库的典型应用场景包括: 深度关系探索、 复杂关联分析、 路径搜索、 特征抽取、 数据聚类、 社区检测、 知识图谱等。适用业务领域有如:网络安全、电信诈骗、金融风控、广告推荐、社交网络和智能机器人等。

HugeGraph 图数据库的特征:

  1. 易用:HugeGraph 支持 Gremlin图查询语言与 RESTful API,同时提供图检索常用接口,具备功能齐全的周边工具,轻松实现基于图的各种查询分析运算。
  2. 高效:HugeGraph 在图存储和图计算方面做了深度优化,提供多种批量导入工具,轻松完成百亿数据快速导入,通过优化过的查询达到图检索的毫秒级响应。支持数千用户并发的在线实时操作。
  3. 通用:HugeGraph 支持 Apache Gremlin 标准图查询语言和 Property Graph 标准图建模方法,支持基于图的 OLTP 和 OLAP 方案。集成 Apache Hadoop 及 Apache Spark 大数据平台。
  4. 可扩展:支持分布式存储、数据多副本及横向扩容,内置多种后端存储引擎(包括RocksDB、Cassandra、ScyllaDB、HBase、Palo、MySQL以及InMemory等),也可插件式轻松扩展后端存储引擎。
  5. 开放:HugeGraph代码开源(Apache 2 License [7] ),客户可自主修改定制,选择性回馈开源社区。

1、基础功能

  • 顶点、边(元素):支持基本增删改查操作,支持有向图,支持两顶点间同一类型多条边,支持超级点。
  • 属性:支持属性图、支持多值属性、支持多样化的属性类型、支持顶点属性追加与合并。
  • 元数据:支持丰富的 Schema 校验,如属性是否可空(可选),支持 Schema 动态修改。
  • 索引:支持二级索引、范围索引、全文索引,支持联合索引。
  • 事务:遵循 Tinkerpop 事务规范,支持 Read Committed 级别事务。
  • 多顶点 ID 策略:支持主键 ID、支持自动生成 ID、支持用户自定义字符串 ID、支持用户自定义数字 ID。
  • 大规模数据:支持批量插入顶点/边、支持超级顶点、支持流式分页获取、支持Shard并行获取。
  • 优化的图接口:最短路径(Shortest Path)、K步连通子图(K-neighbor)、K步到达邻接点(K-out)等。
  • 其它:支持图变量(Graph Variables)、兼容性上已通过Apache Tinkerpop官方测试用例90%兼容测试。

2、高级功能

  • 多图实例:支持多个图实例,图之间数据相互隔离。
  • 用户认证:支持多用户,支持用户权限认证,支持用户角色访问控制。可轻松对接现有用户认证系统。
  • 监控接口:支持系统状态监控、API 访问时间监控、性能数据监控等。
  • 备份恢复:支持在线备份、支持备份数据的恢复。
  • 云环境适应:兼容多个云厂商平台,轻松对接公有云、私有云和混合云等多种云环境。
  • 商业版本:商业版本提供技术咨询、解决方案、定制化需求等服务。

3、接口支持

  • Gremlin 接口:支持标准、灵活的 Gremlin 查询接口。
  • Restful API接口:支持功能丰富、简单易用的 HTTP Restful 接口。提供顶点、边、元数据等的基本操作接口;此外提供各种高级查询接口,包括最短路径、多路径、交叉点、N步可达邻居等。
  • Java Client 客户端:支持 Java 语言客户端,用户可根据自身需求实现其它语言客户端。

4、周边工具

  • 一键部署(hugegraph-tools/deploy):通过部署工具简单轻松的一键部署所有组件。
  • 可视化界面(hugegraph-studio):基于 Web 的可视化环境,提供图操作界面、图数据展示与分析。
  • 导入工具(hugegraph-loader):数据导入工具,支持从 txt、csv、json 等格式文件导入到 HugeGraph。
  • 导出工具(hugegraph-tools/dump):数据导出工具,可将顶点及关联边导出到文件,支持用户实现 formatter 自定义格式。
  • 备份恢复工具(hugegraph-tools/backup&restore):数据备份与恢复工具,支持定时备份、手动备份、手动恢复等功能。
  • Gremlin任务工具(hugegraph-tools/gremlin):Gremlin任务执行工具,支持同步执行 Gremlin 查询与分析(OLTP),支持异步执行Gremlin任务(OLAP)。
  • 集成Spark GraphX工具(hugegraph-spark):基于Spark GraphX的大数据环境下的图分析工具。

在这里插入图片描述

2、Linux 安装

参考文档

HugeGraph-Server 是 HugeGraph 项目的核心部分,包含 Core、Backend、API 等子模块。Core 模块是 Tinkerpop 接口的实现,Backend 模块用于管理数据存储。

HugeGraphServer 的目录结构:

- bin
	- checksocket.sh :  com.baidu.hugegraph.util.CheckSocket
	- dump-conf.sh : com.baidu.hugegraph.cmd.ConfDumper
	- dump-store.sh :  com.baidu.hugegraph.cmd.StoreDumper
	- gremlin-console.sh
	- hugegraph : 启动或停止服务,会调用其他 start/stop-hugegraph.sh 脚本;
	- hugegraph-server.sh
	- hugegraph.service
	- init-store.sh : com.baidu.hugegraph.cmd.InitStore
	- install.sh:将 HugeGraphServer 安装为系统服务
	- monitor-hugegraph.sh
	- start-hugegraph.sh
	- start-monitor.sh
	- stop-hugegraph.sh
	- stop-monitor.sh
	- util.sh
- conf
	-  gremlin-server.yaml
	- hugegraph.properties
	- rest-server.properties
- ext
- lib 
- scripts

1、 配置

配置文件的目录为 hugegraph-release/conf,所有有关服务和图本身的配置都在此目录下。

  • gremlin-server.yaml
  • rest-server.properties
  • hugegraph.properties

HugeGraphServer 内部集成了 GremlinServer 和 RestServer,gremlin-server.yaml 和 rest-server.properties 就是用来配置这两个 Server 的。GremlinServer 能接收用户的 gremlin 语句,解析后再调用 Core 的代码;RestServer 提供 Restfule API,根据不同的 HTTP 请求,嗲用对应的 Core API。

# graphs:该项为 map 结构,key 是图的名字,value 是该图的配置文件路径;
graphs: {
  hugegraph: conf/hugegraph.properties
}

gremlin-server.yaml 和 rest-server.properties 都包含 graphs 配置项,而 init-store 命令是根据 gremlin-server.yaml 的 graphs 下的图进行初始化的。

2、 多图

HugeGraph 支持存在多个图,并且各个图的后端可以不一样,比如 graph1 以 cassandra 为后端,graph2 以 mysql 为后端。

3、 初始化

$ bin/init-store.sh

初始化数据库,仅第一次启动时需要,会根据配置文件对图数据进行初始化。

4、 启动

启动分为“首次启动”和“非首次启动”,首次启动之前需要初始化后端数据库,然后启动服务。

HugeGraphServer 启动时会连接后端存储并尝试检查后端存储版本号,如果未初始化后端或者后端已经初始化当时版本比匹配时,HugeGraphServer 会启动失败,并给出错误信息。

bin/start-hugegraph.sh
Starting HugeGraphServer...
Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)....OK

5、 访问

jps 查看服务进程

jps
6475 HugeGraphServer

curl 请求 RestfulAPI

curl -o /dev/null -s -w %{http_code} “http://localhost:8080/graphs/hugegraph/graph/vertices”

返回结果200,代表server启动正常

3、Window + PostgreSQL

下载源码重新编译:

  • 需要的模块:api,core, dist, mysql, postgresql
  • 删除 maven-autrun-plugin
  • 添加 maven-assembly-plugin,编译可执行 jar
  • 配置
  • 创建 postgresql 数据库 hugegraph

修改 HugeGraphServer.java

    public static void main(String[] args) throws Exception {
        HugeRestServer.register();
        InitStore.initGraph("conf/hugegraph.properties");

        HugeGraphServer server = new HugeGraphServer("conf/gremlin-server.yaml","conf/rest-server.properties");
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
            LOG.info("HugeGraphServer stopping");
            server.stop();
            LOG.info("HugeGraphServer stopped");
        }));
    }

1、postgresql 配置

配置项描述
backendpostgresql
serializerpostgresql
jdbc.driverorg.postgresql.DriverThe JDBC driver class to connect database.
jdbc.urljdbc:postgresql://127.0.0.1:5432/The url of database in JDBC format. 端口后的 / 不要漏掉
jdbc.usernamehugegraphThe username to login database.
jdbc.passwordhugegraphThe password corresponding to jdbc.username.

注意:

  • 通过配置文件中的 store 属性来设置对应的数据库名称,默认是 hugegraph;
  • username 与 store 相同;因为内部会通过 “jdbc:postgresql://127.0.0.1:5432/” 来获取数据库连接,得到的数据库名与用户名相同;

2、Windows 脚本

start.bat

cd /d %~dp0
start /B java -jar hugegraph.jar 1>nul 2>nul
- conf
- ext
- lib 
- scripts
- hugegraph.jar
- start.bat

在启动过程中,出现 MANIFEST.MF 缺少 version 的错误,直接编辑 jar 中的 MANIFEST.MF 文件,添加 version: 3.4.3

4、hugegrap-studio

download
guide

  1. 启动 hugegraph-server
  2. 配置 studio properties 文件
  3. 启动: java -cp ./lib/* -Dstudio.home=./ com.baidu.hugegraph.studio.HugeGraphStudio

参考资料

github
document
tinkerpop
tinkerpop doc

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值