JanusGraph入门实操


本篇博客主要记录在centos上安装janusgraph以及在idea中开发图应用的简单示例过程,对于janusgraph和gremlin相关的概念和语法不做介绍。具体可自行查阅相关资料:

前置条件

  • 安装jdk1.8

安装hbase

在这里插入图片描述
上图表格中是与janusgraph适配的其他组件。这里使用的是hbase2.1.10版本。下载后直接解压运行即可(只为了快速入门janusgraph,这里不需要对hbase做多余的配置):

[root@asn417-01 soft]# cd hbase-2.1.10/
[root@asn417-01 hbase-2.1.10]# ll
总用量 880
drwxr-xr-x.  4 10003 10003   4096 726 03:17 bin
-rw-r--r--.  1 10003 10003 169269 331 2020 CHANGES.md
drwxr-xr-x.  2 10003 10003    208 331 2020 conf
drwxr-xr-x. 11 10003 10003   4096 331 2020 docs
drwxr-xr-x.  7 10003 10003     80 331 2020 hbase-webapps
-rw-r--r--.  1 10003 10003    262 331 2020 LEGAL
drwxr-xr-x.  6 root  root    8192 726 03:14 lib
-rw-r--r--.  1 10003 10003 129382 331 2020 LICENSE.txt
drwxr-xr-x.  2 root  root     151 726 03:43 logs
-rw-r--r--.  1 10003 10003 479625 331 2020 NOTICE.txt
-rw-r--r--.  1 10003 10003   1477 331 2020 README.txt
-rw-r--r--.  1 10003 10003  84456 331 2020 RELEASENOTES.md
[root@asn417-01 hbase-2.1.10]# ./bin/start-hbase.sh

查看hbase web UI

http://xxx:16010/
在这里插入图片描述

安装janusgraph

https://github.com/JanusGraph/janusgraph/releases
打开上面的地址选择具体的版本下载janusgraph,这里以janusgraph-full-0.5.3.zip为例。(完整版和非完整版好像没有太大的区别,只是完整版的bin目录下多了一个janusgraph.sh脚本,它自带了Cassandra存储后端和elasticsearch索引后端,且初始化的图比gremlin-server.sh的图复杂一些)

下载解压后目录结构如下:
在这里插入图片描述

启动janusgraph服务

配置conf/janusgraph-hbase-test01.properties

复制一份janusgraph-hbase.properties到janusgraph-hbase-test01.properties。然后不用做修改,里面默认的hbase就是本地启动的。

修改gremlin-server.yaml配置

修改conf/gremlin-server/gremlin-server.yaml里的graph,配置为步骤1的路径:
在这里插入图片描述

启动janusgraph服务

janusgraph服务其实就是gremlin服务,bin/gremlin-server.sh这个脚本默认就是以gremlin-server.yaml为配置,以org.apache.tinkerpop.gremlin.server.GremlinServer为启动类启动的janusgraph服务。
在这里插入图片描述
启动过程中,观察日志,可以发现在hbase中默认创建了名为janusgraph的表(如果要指定表名称,则需要在janusgraph-hbase-test01.properties配置文件中增加storage.hbase.table = xxx),因此启动完成后再次查看hbase web UI,可以看到表信息:
在这里插入图片描述
到此为止,以hbase为存储后端的janusgraph服务已经启动成功了,接下来测试客户端与janusgraph服务的交互。交互方式这里主要介绍控制台方式和idea应用方式。

客户端交互

gremlin控制台交互

[root@asn417-01 bin]# ./gremlin.sh

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/soft/janusgraph-full-0.5.3/lib/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/soft/janusgraph-full-0.5.3/lib/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
plugin activated: tinkerpop.server
plugin activated: tinkerpop.tinkergraph
03:45:00 WARN  org.apache.hadoop.util.NativeCodeLoader  - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
plugin activated: tinkerpop.hadoop
plugin activated: tinkerpop.spark
plugin activated: tinkerpop.utilities
plugin activated: janusgraph.imports
gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured localhost/127.0.0.1:8182
gremlin> :remote console
==>All scripts will now be sent to Gremlin Server - [localhost/127.0.0.1:8182] - type ':remote console' to return to local mode
gremlin> graph
==>standardjanusgraph[hbase:[127.0.0.1]]
gremlin> g.V().count()
==>0
gremlin> g.addV('person').property('name','p1')
==>v[4264]
gremlin> g.addV('person').property('name','p2')
==>v[4272]
gremlin> g.addE('knows').from(g.V(4264)).to(g.V(4272))
==>e[1lh-3ag-29ed-3ao][4264-knows->4272]
gremlin>

解释:

  1. console客户端连接步骤3启动的服务::remote connect tinkerpop.server conf/remote.yaml
  2. 配置命令远程话::remote console
  3. 查看配置的hbase后端是否生效:graph
  4. 查看当前顶点数:g.V().count()
  5. 添加一个顶点:g.addV('person').property('name','p1')
  6. 再添加一个顶点:g.addV('person').property('name','p2')
  7. 在两个顶点间创建边:g.addE('knows').from(g.V(4264)).to(g.V(4272))

idea应用交互

程序结构:
在这里插入图片描述
pom依赖:

<dependencies>
        <!-- If you require to access to internal JanusGraph component such as ManagementSystem, consider to use the maven package janusgraph-core. -->
        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-core</artifactId>
            <version>0.5.3</version>
        </dependency>
        <!-- If you just want to use Gremlin to communicate with JanusGraph, consider to use the maven package janusgraph-driver -->
        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-driver</artifactId>
            <version>0.5.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tinkerpop</groupId>
            <artifactId>gremlin-driver</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!-- janusgraph要使用hbase就需要加上下面两个依赖 -->
        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-hbase</artifactId>
            <version>0.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>2.1.10</version>
        </dependency>
    </dependencies>

测试程序:

public class TestHbaseGraph {
    public static void main(String[] args) throws Exception {
        String url = TestHbaseGraph.class.getClassLoader().getResource("janusgraph-hbase-test01.properties").toString();
        System.out.println(url);
        PropertiesConfiguration properties = new PropertiesConfiguration(url);

        JanusGraph graph = JanusGraphFactory.open(properties);

        GraphTraversalSource g = graph.traversal();

        List<Vertex> list = g.V().has("name").toList();
        for (Vertex v : list) {
            System.out.println(v.id());
        }
        g.close();
        graph.close();
    }
}

配置文件(就是前面启动janusgraph服务时配置的内容):

gremlin.graph=org.janusgraph.core.JanusGraphFactory

storage.backend=hbase

storage.hostname=xxx

cache.db-cache = true

cache.db-cache-clean-wait = 20

cache.db-cache-time = 180000

cache.db-cache-size = 0.5

运行程序查看日志如下:

1716 [main] INFO  org.janusgraph.diskstorage.Backend  - Initiated backend operations thread pool of size 12
1774 [main] INFO  org.janusgraph.diskstorage.Backend  - Configuring total store cache size: 1865910588
1823 [main] INFO  org.janusgraph.graphdb.database.IndexSerializer  - Hashing index keys
1890 [main] INFO  org.janusgraph.diskstorage.log.kcvs.KCVSLog  - Loaded unidentified ReadMarker start time 2021-08-04T08:25:36.818Z into org.janusgraph.diskstorage.log.kcvs.KCVSLog$MessagePuller@d0865a3
1990 [main] WARN  org.janusgraph.graphdb.transaction.StandardJanusGraphTx  - Query requires iterating over all vertices [()]. For better performance, use indexes
4264
4272
2108 [main] INFO  org.apache.hadoop.hbase.client.ConnectionImplementation  - Closing master protocol: MasterService

可以看到查询结果就是控制台中插入的两个顶点,说明idea与janusgraph服务成功交互。

补充:本地连接hbase服务是需要配置hosts的,因此需要保证hosts文件中配置了hbase所在机器的映射。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JanusGraph是一个开源的分布式数据库,可用于存储和处理大规模数据。JanusGraph 0.5.2是该数据库的一个特定版本,支持在Windows操作系统上使用。 使用JanusGraph 0.5.2在Windows上需要以下步骤: 1. 下载JanusGraph 0.5.2的安装包。可以从官方网站或GitHub上获取最新的发布版本。 2. 解压安装包到任意目录。确保你的系统上已经安装了Java环境,并且配置了JAVA_HOME环境变量。 3. 打开命令行窗口,进入JanusGraph的目录。 4. 在命令行窗口中运行bin/gremlin.bat脚本。这将启动JanusGraph的Gremlin Shell,Gremlin是一种遍历语言,用于与JanusGraph交互。 5. 在Gremlin Shell中,你可以执行各种数据库的操作,如创建、添加顶点和边、遍历等。使用Gremlin脚本文件(.groovy)将多个操作组合到一个文件中,并在Gremlin Shell中执行该文件。 6. 在Gremlin Shell中,你还可以执行Cypher查询语句来查询数据库中的数据。JanusGraph支持Cypher作为一种查询语言,并提供了相应的API。 7. 当你完成了对JanusGraph的操作,可以通过在Gremlin Shell中使用`:q`命令来退出。 总之,JanusGraph 0.5.2可以在Windows上使用,并且它提供了Gremlin Shell和Cypher查询语言来与数据库交互。通过执行相应的命令或脚本,你可以在Windows操作系统上创建、修改和查询大规模的数据。 ### 回答2: JanusGraph 0.5.2是一个开源的分布式数据库,它是基于Apache TinkerPop计算框架构建的,并且提供了许多强大的功能和扩展性。 关于在Windows上安装和配置JanusGraph 0.5.2,以下是简单的步骤: 1. 准备环境:首先,确保你有一个可用的Java安装,JanusGraph 0.5.2需要Java 8或更高版本。 2. 下载JanusGraph 0.5.2:在JanusGraph的官方网站或GitHub页面上下载JanusGraph 0.5.2的压缩包。 3. 解压缩文件:解压缩下载的压缩包到一个合适的目录,例如"JanusGraph"文件夹。 4. 配置JanusGraph:在JanusGraph目录中,找到并编辑"janusgraph-hbase.properties"文件。根据你的需要配置数据库后端(如HBase或Cassandra)和相关参数。 5. 启动JanusGraph:在命令提示符或PowerShell窗口中,导航到JanusGraph目录,并运行以下命令启动JanusGraph服务器: ``` bin\janusgraph.bat ``` 6. 使用JanusGraph:一旦服务器启动,你可以使用Gremlin控制台或TinkerPop兼容的数据库客户端连接到JanusGraph,并执行各种数据库操作。 如此,你就成功地在Windows上安装和配置了JanusGraph 0.5.2。根据你的具体需求,你可以进一步探索JanusGraph的功能和性能优化。 ### 回答3: JanusGraph 0.5.2是一个开源的分布式数据库,它可以在Windows操作系统上运行。JanusGraph具有扩展性和可靠性,支持高性能的数据查询和处理。 在Windows上安装和配置JanusGraph 0.5.2相对简单,以下是一些基本步骤: 1. 首先,在JanusGraph的官方网站上下载适用于Windows的JanusGraph压缩包。 2. 解压缩JanusGraph压缩包到你选择的目录中。 3. 打开目录中的`conf`文件夹,在这里你可以找到`janusgraph.properties`文件。 4. 使用一个文本编辑器打开`janusgraph.properties`文件,对其进行必要的配置。你需要指定一个Cassandra或HBase的存储后端,以及一些其他的配置选项。此外,你还可以根据需求进行其他配置调整,例如调整缓存和连接池的大小等。 5. 保存并关闭`janusgraph.properties`文件。 6. 打开命令提示符,并进入JanusGraph目录下的`bin`文件夹。 7. 在命令提示符中,输入以下命令以启动JanusGraph服务器: ``` janusgraph.bat start ``` 8. 等待一段时间,直到看到类似于“Graph database loaded (...)”的消息。 9. 现在,JanusGraph服务器已经在Windows上成功启动。 10. 如果需要连接到JanusGraph服务器并执行数据库操作,可以使用Gremlin控制台或通过客户端编程语言(如Java、Python等)与JanusGraph进行通信。 总的来说,JanusGraph 0.5.2可以在Windows上运行,只需进行一些简单的配置即可。希望这些步骤对你有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值