美文网首页知识图谱我爱编程
JanusGraph图形数据库搭建

JanusGraph图形数据库搭建

作者: 你我他wzb | 来源:发表于2018-08-08 16:14 被阅读914次

         本文创作只是为了工作之余的总结,非专业工程人士角度。另外本文没有从0到1步步教你如何搭建,只求让你对janusGraph 图形数据库搭建有个清晰的认识。当然本人并未观看JanusGraph 框架源码,其中理解完全源于对JanusGraph官方文档的解读,如有不足之处,请多多指教。

    一、搭建要求前提:集群中已经搭建完成hadoop、hbase /zookeeper (java1.8以上)

    其中DataNode 、NameNode、SecondaryNameNode是hadoop 启动进程

    HRegionServer HMaster 是 hbase 启动进程

    QuorumPeerMain 是zookeeper 启动进程

    二.JanusGraph 图形数据库搭建的几种形式

    JanusGraph图形数据库可以与集群(hbase)搭建在一起,也可以另外的机器上去搭建。搭建一起的可能的好处就是减少数据的传输。

    1)单机搭建。

    对每张图从左往右进行标号1客户端 、2 janusGrph(配置)、3单机集群(后端)

    这张图可以理解这样理解:客户端和janusGrph 搭建在同一台机器上 单机集群可以部署在远端也可以理解部署在客户端和janusGraph 同一台机器上,只不过配置不同罢了。

    搭建过程:

    在本地机器搭建完后端后,从官网上下载JanusGraph janusgraph-0.3.0-hadoop2.zip 

    完成以下配置:

    在文件下../conf/ 修改 与搭建后端相同的properties

    例如:

    在我的本地搭建只搭建了hbase后端存储,没有索引ES。那么在properties配置中就删除掉关于ES等配置,只保留storage 相关的配置。如果只是本地搭建的单机形式只要修改一下storage.backend=hbase/storage.hostname=127.0.0.1 即可 如果集群不在本地搭建的只需要修改一下后端存储storage.hostname 以及storage.port即可。注意:如果你想设置一下插入后端数据的表名可用:graph.graphname默认的值为JanusGraph。graph.graphname=mazze这样的话你得插入hbase表名就是mazze。其他的配置说明请看官网上的配置

    在此单机搭建完成了。

    测试:

    在目录bin/下执行gremlin.sh 至于为什么要通过Gremlin建议可以看一下官网文档,在此不多说。

    进入交互式界面后,我们怎么跟本地的后端或者远处的服务器通信呢?

    很简单:

    在交互式界面执行:gremlin> graph = JanusGraphFactory.open('conf/xx.properties')

    这样我们就可以得到了一个图了,你可以通过内置的函数进行加载数据到图中如:

    gremlin> GraphOfTheGodsFactory.load(graph)

    (因为我的测试hbase 没有安装ES,所以对数据的加载只能按以下方式:

    gremlin> GraphOfTheGodsFactory.loadWithoutMixedIndex(graph, true)

    完成数据的载入后,你就可以对图进行操作了,操作前需要执行以下函数:

    gremlin> g = graph.traversal()

    至此本地的JanusGraph的搭建完成了,你可以尽情的测试。

    2 ).JanusGraph 分布式搭建

    对每张图从左往右进行标号1客户端 、2 janusGraph集群、3存储集群(后端)

    如果我们有对图的数据库分布式的需求可以如上形式的搭建,其跟单机的单建基本相同,不同之处在于我们需要配置JanusGraph包到多台机器上。至此不再赘述。

    3).JanusGraph分布式 服务器形式搭建(+gremlinServer)

    对每张图从左往右进行标号 1客户端 、2 janusGraph集群+gremlinServer(janusGraph server)、3存储集群(后端)

    如果你确实不知道他跟JanusGraph 分布式搭建下称之为JanusGraph+    的形式有什么不同,你可以暂时理解为JanusGraph分布式 服务器形式搭建(+gremlinServer) 下称之为 JanusGraph+server,在其中在每台机器上多开了一直运行的服务进程。而这些服务本质是gremlinServer 服务。为什么是GremlinServer这就需要你去瞅瞅了。那么维持这个服务的目的在于什么呢?可以方便你随时的去取已经被你配置在gremlin-server或操作过的图实例,不需要你每次进入客户端去anusGraphFactory.open('conf/xx.properties')加载你的配置、创建图实例

    他始终维持加载好的图实例,方便你随时随地的去操作,是不是很有用。

    配置如下:

    1.配置gremlin-server

    1). 跟单机配置properties 文件一样,你需要配置一个properties 文件。该文件就是你的后端(hbase等)配置文件

    2).配置yaml 文件,该文件是你的服务端跟你的客户端相关通信的配置。例如socket还有http.

    host 表示你需要监听的ip以及端口 0.0.0.0 表示所有客户端的请求IP

    如果你想在该服务端始终保持两个图实例,那么如上图的wzbgraph和wcfgraph。这里说明一下两者的不同,以及用处。wzbgraph的文件properties配置与wcfgraph文件propertie配置不同之处在于有没有设置graph.graphname这一项,如果设置了那么你的图的实例以及存入hbase的表名都会是设置的值,如果没有设置那么你的实例就是你的wzbgraph 存入hbase 里面的表明就是默认的Janusgraph. 这些是需要注意,也是一些基本的东西。

    2.启动gremlin-server

    对你刚刚配置的yaml 文件进行启动 例如:

    bin/gremlin-server.sh ./conf/gremlin-server/socket-gremlin-server.yaml

    3.配置本地客户端的访问的文件

    1).在你的本地配置远程访问文件。

    其中hosts是你的gremlin-server 部署的机器ip port允许访问的端口

    4.本地客户端访问gremlin-server

    本地进入bin目录:

    执行gremlin.sh

    然后gremlin>remote connect tinkerpop.server conf/remote.yaml

    至此你就可以使用在服务器中已经配置好的图实例了。例如上面的wzbgraph 图实例 wcfgraph图实例根据你的graph.graphname。

    当然如果你需要自己建一个新的图实例,并加载到gremlin服务

    gremlin>:remote console

    然后自己加载你需要的配置以及实例吧!!

    gremlin> graph = JanusGraphFactory.open('conf/xx.properties')

    JanusGraph 图形数据库的讲解完毕。

    相关文章

      网友评论

        本文标题:JanusGraph图形数据库搭建

        本文链接:https://www.haomeiwen.com/subject/ixrxbftx.html