ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JanusGraph安装

2021-05-17 09:29:17  阅读:227  来源: 互联网

标签:gremlin JanusGraph Bundle server Version janusgraph 服务器 安装


安装

在Docker容器里运行JanusGraph

为了实现虚拟化和易于访问,JanuGraph提供了Docker映像。Docker使在一台计算机上运行服务器和客户端更容易,而不处理多个安装。有关安装和使用Docker的说明,请参阅Docker指南。让我们在Docker中尝试运行一个简单的JanuGraph实例:

$ docker run -it -p 8182:8182 janusgraph/janusgraph

我们以交互方式运行映像,并请求Docker使容器的端口8182可用,以便我们查看。服务器可能需要几秒钟才能启动,因此耐心等待相应的日志消息出现。

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/janusgraph/lib/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/janusgraph/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]
0    [main] INFO  com.jcabi.manifests.Manifests  - 110 attributes loaded from 283 stream(s) in 130ms, 110 saved, 3770 ignored: ["Agent-Class", "Ant-Version", "Archiver-Version", "Automatic-Module-Name", "Bnd-LastModified", "Boot-Class-Path", "Branch", "Build-Date", "Build-Host", "Build-Id", "Build-Java-Version", "Build-Jdk", "Build-Job", "Build-Number", "Build-Timestamp", "Build-Version", "Built-At", "Built-By", "Built-Date", "Built-OS", "Built-On", "Built-Status", "Bundle-ActivationPolicy", "Bundle-Activator", "Bundle-BuddyPolicy", "Bundle-Category", "Bundle-ClassPath", "Bundle-ContactAddress", "Bundle-Description", "Bundle-DocURL", "Bundle-License", "Bundle-ManifestVersion", "Bundle-Name", "Bundle-NativeCode", "Bundle-RequiredExecutionEnvironment", "Bundle-SymbolicName", "Bundle-Vendor", "Bundle-Version", "Can-Redefine-Classes", "Change", "Class-Path", "Created-By", "DSTAMP", "DynamicImport-Package", "Eclipse-BuddyPolicy", "Eclipse-ExtensibleAPI", "Embed-Dependency", "Embed-Transitive", "Export-Package", "Extension-Name", "Extension-name", "Fragment-Host", "Gradle-Version", "Gremlin-Lib-Paths", "Gremlin-Plugin-Dependencies", "Gremlin-Plugin-Paths", "Ignore-Package", "Implementation-Build", "Implementation-Build-Date", "Implementation-Title", "Implementation-URL", "Implementation-Vendor", "Implementation-Vendor-Id", "Implementation-Version", "Import-Package", "Include-Resource", "JCabi-Build", "JCabi-Date", "JCabi-Version", "Java-Vendor", "Java-Version", "Main-Class", "Manifest-Version", "Maven-Version", "Module-Email", "Module-Origin", "Module-Owner", "Module-Source", "Originally-Created-By", "Os-Arch", "Os-Name", "Os-Version", "Package", "Premain-Class", "Private-Package", "Provide-Capability", "Require-Bundle", "Require-Capability", "Scm-Connection", "Scm-Revision", "Scm-Url", "Specification-Title", "Specification-Vendor", "Specification-Version", "TODAY", "TSTAMP", "Time-Zone-Database-Version", "Tool", "X-Compile-Elasticsearch-Snapshot", "X-Compile-Elasticsearch-Version", "X-Compile-Lucene-Version", "X-Compile-Source-JDK", "X-Compile-Target-JDK", "hash", "implementation-version", "mode", "package", "service", "url", "version"]
1    [main] INFO  org.apache.tinkerpop.gremlin.server.GremlinServer  - 3.4.1
         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----

100  [main] INFO  org.apache.tinkerpop.gremlin.server.GremlinServer  - Configuring Gremlin Server from /etc/opt/janusgraph/gremlin-server.yaml
...
...
3965 [gremlin-server-boss-1] INFO  org.apache.tinkerpop.gremlin.server.GremlinServer  - Gremlin Server configured with worker thread pool of 1, gremlin pool of 8 and boss thread pool of 1.
3965 [gremlin-server-boss-1] INFO  org.apache.tinkerpop.gremlin.server.GremlinServer  - Channel started at port 8182.

我们现在可以在本地设备上启动Gremlin控制台并尝试连接到新服务器:

$ bin/gremlin.sh

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured localhost/127.0.0.1:8182

请注意,当在没有Docker的情况下本地运行客户机和服务器时,这个客户端的工作方式与以前完全相同。

方便的是,还可以在单独的Docker容器中运行服务器和客户机。因此,我们为服务器实例化一个容器:

$ docker run --name janusgraph-default janusgraph/janusgraph:latest

我们现在可以指示Docker为客户机启动第二个容器,并将其链接到已经运行的服务器。

$ docker run --rm --link janusgraph-default:janusgraph -e GREMLIN_REMOTE_HOSTS=janusgraph \
    -it janusgraph/janusgraph:latest ./bin/gremlin.sh

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured janusgraph/172.17.0.2:8182

请注意,为了使这个示例正常工作,不必绑定任何端口。要进一步阅读,请参阅JanusGraph服务器部分以及JanusGraph Docker文档。

本地安装

为了运行JanusGraph,需要java8se。确保$JAVA_HOME环境变量指向安装JRE或JDK的正确位置。JanusGraph可以作为.zip存档文件从项目存储库的发行版部分下载。

$ unzip janusgraph-0.5.3.zip
Archive:  janusgraph-0.5.3.zip
  creating: janusgraph-0.5.3/
...

解压缩下载的存档文件后,就可以开始了。

运行Gremlin控制台

Gremlin控制台是一个交互式shell,允许您访问JanusGraph管理的数据。您可以通过运行gremlin.sh脚本来访问它,该脚本位于项目的bin目录中。

$ cd janusgraph-0.5.3
$ bin/gremlin.sh

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
09:12:24 INFO  org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph  - HADOOP_GREMLIN_LIBS is set to: /usr/local/janusgraph/lib
plugin activated: tinkerpop.hadoop
plugin activated: janusgraph.imports
gremlin>

Gremlin控制台使用apache groovy解释命令,apache groovy是Java的超集。gremlin groovy通过提供一组基本和高级图遍历函数的方法来扩展Groovy。要深入了解Gremlin语言的特性,请参阅我们的Gremlin简介。

运行Gremlin服务

在大多数实际用例中,对数据库的查询不会从存储数据的服务器上运行。相反,会有某种类型的客户机-服务器层次结构,其中服务器运行数据库并处理请求,而多个客户机创建这些请求,从而在数据库中独立地读写条目。这种行为也可以通过JanusGraph实现。
为了在本地计算机上启动服务器,只需运行gremlin-server.sh脚本而不是gremlin.sh脚本。您可以选择将配置文件作为参数传递。默认配置位于conf/gremlin server/gremlin-server.yaml。

$ ./bin/gremlin-server.sh start

or

$ ./bin/gremlin-server.sh ./conf/gremlin-server/[...].yaml
INFO
	默认配置(gremlin server.yaml)使用自己的inmemory后端,而不是专用的数据库服务器。默认情况下不使用搜索后端,因此不支持混合索引,因为未指定搜索后端(如果遵循基本用法示例,请确保您使用的是graphof thegodsfactory.loadWithoutMixedIndex(graph,true)而不是graphof thegodsfactory.load(graph))。有关存储后端的更多信息,请访问文档的相应部分。
	我们还鼓励您查看janusgraph.sh,默认情况下,它启动的服务器比gremlin-server.sh更复杂。关于服务器配置的更多文档可以在JanusGraph服务器部分找到(这需要下载janusgraph-full-0.5.3.zip,而不是默认的janusgraph-0.5.3.zip。)

Gremlin服务器现在正在本地计算机上运行,并等待客户端在默认端口8182上连接。如前所述,要实例化客户机,请运行gremlin.sh脚本。同样,一个本地的Gremlin控制台也会出现。这次,我们不在本地使用它,而是将Gremlin控制台连接到远程服务器,并将它的所有查询重定向到此服务器。这是通过使用:remote命令完成的:

gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured localhost/127.0.0.1:8182

从日志中可以看出,在本例中,客户机和服务器运行在同一台机器上。使用不同的设置时,只需修改conf/remote.yaml文件中的参数。

WARNING
	上面的命令只建立到服务器的连接。默认情况下,它不会将以下命令转发到服务器!因此,进一步的命令仍将在本地执行,除非前面有:>。
	要将每个命令转发到远程服务器,请使用:remote console命令。更多文档可以在TinkerPop参考文档中找到
	

标签:gremlin,JanusGraph,Bundle,server,Version,janusgraph,服务器,安装
来源: https://blog.csdn.net/Kruskual/article/details/116914353

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有