主要的配置文件包括:gremlin-server.yaml、rest-server.properties 和 hugegraph.properties

    HugeGraphServer 内部集成了 GremlinServer 和 RestServer,而 gremlin-server.yaml 和 rest-server.properties 就是用来配置这两个Server的。

    • :GremlinServer接受用户的gremlin语句,解析后转而调用Core的代码。
    • RestServer:提供RESTful API,根据不同的HTTP请求,调用对应的Core API,如果用户请求体是gremlin语句,则会转发给GremlinServer,实现对图数据的操作。

    下面对这三个配置文件逐一介绍。

    gremlin-server.yaml 文件默认的内容如下:

    上面的配置项很多,但目前只需要关注如下几个配置项:channelizer 和 graphs。

    • graphs:GremlinServer 启动时需要打开的图,该项是一个 map 结构,key 是图的名字,value 是该图的配置文件路径;
    • channelizer:GremlinServer 与客户端有两种通信方式,分别是 WebSocket 和 HTTP(默认)。如果选择 WebSocket, 用户可以通过 Gremlin-Console 快速体验 HugeGraph 的特性,但是不支持大规模数据导入, 推荐使用 HTTP 的通信方式,HugeGraph 的外围组件都是基于 HTTP 实现的;

    默认GremlinServer是服务在 localhost:8182,如果需要修改,配置 host、port 即可

    • host:部署 GremlinServer 机器的机器名或 IP,目前 HugeGraphServer 不支持分布式部署,且GremlinServer不直接暴露给用户;
    • port:部署 GremlinServer 机器的端口;

    rest-server.properties 文件的默认内容如下:

    1. restserver.url=http://127.0.0.1:8080
    2. # gremlin server url, need to be consistent with host and port in gremlin-server.yaml
    3. #gremlinserver.url=http://127.0.0.1:8182
    4. # graphs list with pair NAME:CONF_PATH
    5. graphs=[hugegraph:conf/hugegraph.properties]
    6. #auth.authenticator=
    7. #auth.admin_token=
    8. #auth.user_tokens=[]
    9. server.id=server-1
    10. server.role=master
    • restserver.url:RestServer 提供服务的 url,根据实际环境修改;
    • graphs:RestServer 启动时也需要打开图,该项为 map 结构,key 是图的名字,value 是该图的配置文件路径;

    hugegraph.properties 是一类文件,因为如果系统存在多个图,则会有多个相似的文件。该文件用来配置与图存储和查询相关的参数,文件的默认内容如下:

    重点关注未注释的几项:

    • gremlin.graph:GremlinServer 的启动入口,用户不要修改此项;
    • backend:使用的后端存储,可选值有 memory、cassandra、scylladb 和 rocksdb;
    • serializer:主要为内部使用,用于将 schema、vertex 和 edge 序列化到后端,对应的可选值为 text、cassandra、scylladb 和 binary;(注:rocksdb后端值需是binary,其他后端backend与serializer值需保持一致,如hbase后端该值为hbase)
    • cassandra.host:backend 为 cassandra 或 scylladb 时此项才有意义,cassandra/scylladb 集群的 seeds;
    • cassandra.port:backend 为 cassandra 或 scylladb 时此项才有意义,cassandra/scylladb 集群的 native port;
    • rocksdb.data_path:backend 为 rocksdb 时此项才有意义,rocksdb 的数据目录
    • rocksdb.wal_path:backend 为 rocksdb 时此项才有意义,rocksdb 的日志目录
    • admin.token: 通过一个token来获取服务器的配置信息,例如:

    我们的系统是可以存在多个图的,并且各个图的后端可以不一样,比如图 hugegraph 和 hugegraph1,其中 hugegraph 以 cassandra 作为后端,hugegraph1 以 rocksdb作为后端。

    修改 gremlin-server.yaml

    在 gremlin-server.yaml 的 graphs 域中添加一个键值对,键为图的名字,值为图的配置文件路径,比如:

    1. hugegraph: conf/hugegraph.properties,
    2. hugegraph1: conf/hugegraph1.properties
    3. }

    修改 rest-server.properties

    在 rest-server.properties 的 graphs 域中添加一个键值对,键为图的名字,值为图的配置文件路径,比如:

    添加 hugegraph1.properties

    拷贝 hugegraph.properties,命名为 hugegraph1.properties,修改图对应的数据库名以及关于后端部分的参数,比如:

    1. store=hugegraph1
    2. ...
    3. serializer=binary