一、安装包下载

下载地址:https://github.com/JanusGraph/janusgraph/releases/

选择对应Hbase版本下载(公司Hbase版本1.4.11,我选择了0.3.3版本)

注:高版本客户端连接低版本Hbase会报错,报错会详细再说


二、上传至服务器

上传到要部署服务的机器

三、文件解压

mkdir /opt/janusgraph/
mv ~/wangtianyu03/janusgraph-0.3.3.tar.gz ../opt/janusgraph/
cd /opt/janusgraph/
tar -zxvf janusgraph-0.3.3.tar.gz

四、修改配置文件

cd janusgraph-0.3.3/conf
cp janusgraph-hbase-es.properties http-janusgraph-hbase-es.properties
cp gremlin-server/gremlin-server.yaml  gremlin-server/http-gremlin-server.yaml

1.修改 http-janusgraph-hbase-es.properties

确认这些属性是否存在,不在则需要添加

storage.batch-loading=true
storage.backend=hbase              #使用HBase作为存储后端
storage.hostname=                      #HBase的Zookeeper地址
storage.hbase.table=tablename #HBase存储JanusGraph元数据的表名
storage.hbase.ext.hbase.zookeeper.property.clientPort=2181 index.search.backend=elasticsearch  #ES作为索引
index.search.hostname=test01.es.58dns.org,test02.es.58dns.org,test03.es.58dns.org              #es服务ip。
index.search.port=9299              #es服务端口号
index.search.elasticsearch.http.auth.basic.username=test_user #es用户名
index.search.elasticsearch.http.auth.basic.password=test_pwd
index.search.elasticsearch.http.auth.type=basic


2.修改http-gremlin-server.yaml

(1)设置为http连接: org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer

(2)更改配置文件路径为自己复制编辑的配置文件

3.启动server

需指定配置文件启动

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

4.验证是否启动成功

curl -XPOST -Hcontent-type:application/json -d '{"gremlin":"g.V().count()"}' http://localhost:8182

五、一些报错的坑

1.版本问题

(1)报错信息

高版本客户端查询低版本Hbase导致初始化失败

2288 [main] WARN org.janusgraph.diskstorage.hbase.HBaseStoreManager - Unexpected exception during getDeployment()
java.lang.RuntimeException: org.janusgraph.diskstorage.TemporaryBackendException: Temporary failure in storage backend
at org.janusgraph.diskstorage.hbase.HBaseStoreManager.getDeployment(HBaseStoreManager.java:379)
at org.janusgraph.diskstorage.hbase.HBaseStoreManager.getFeatures(HBaseStoreManager.java:418)
at org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder.build(GraphDatabaseConfigurationBuilder.java:51)
at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:161)
at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:132)
at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:78)
at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:70)
at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:104)
at org.apache.tinkerpop.gremlin.server.util.DefaultGraphManager.lambda$new$0(DefaultGraphManager.java:57)
at java.util.LinkedHashMap$LinkedEntrySet.forEach(LinkedHashMap.java:671)
at org.apache.tinkerpop.gremlin.server.util.DefaultGraphManager.(DefaultGraphManager.java:55)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.(ServerGremlinExecutor.java:80)
......Caused by: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column family table does not exist in region hbase:meta,,1.1588230740 in table 'hbase:meta', {TABLE_ATTRIBUTES => {IS_META => 'true', coprocessor$1 => '|org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint|536870911|'}, {NAME => 'info', BLOOMFILTER => 'NONE', VERSIONS => '3', IN_MEMORY => 'true', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 => 'true', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '8192', REPLICATION_SCOPE => '0'}
at org.apache.hadoop.hbase.regionserver.HRegion.checkFamily(HRegion.java:8371)
at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:7363)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2259)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36609)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2380)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:297)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at org.apache.hadoop.hbase.ipc.RemoteWithExtrasException.instantiateException(RemoteWithExtrasException.java:99)at org.apache.hadoop.hbase.ipc.RemoteWithExtrasException.unwrapRemoteException(RemoteWithExtrasException.java:89)at org.apache.hadoop.hbase.protobuf.ProtobufUtil.makeIOExceptionOfException(ProtobufUtil.java:282)at org.apache.hadoop.hbase.protobuf.ProtobufUtil.handleRemoteException(ProtobufUtil.java:269)at org.apache.hadoop.hbase.client.RegionServerCallable.call(RegionServerCallable.java:129)at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:107)at org.apache.hadoop.hbase.client.HTable.get(HTable.java:386)at org.apache.hadoop.hbase.client.HTable.get(HTable.java:360)at org.apache.hadoop.hbase.MetaTableAccessor.getTableState(MetaTableAccessor.java:1078)at org.apache.hadoop.hbase.MetaTableAccessor.tableExists(MetaTableAccessor.java:403)at org.apache.hadoop.hbase.client.HBaseAdmin$6.rpcCall(HBaseAdmin.java:450)at org.apache.hadoop.hbase.client.HBaseAdmin$6.rpcCall(HBaseAdmin.java:447)at org.apache.hadoop.hbase.client.RpcRetryingCallable.call(RpcRetryingCallable.java:58)at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:107)at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3089)at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3081)at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:447)at org.janusgraph.diskstorage.hbase.HBaseAdmin1_0.tableExists(HBaseAdmin1_0.java:111)at org.janusgraph.diskstorage.hbase.HBaseStoreManager.ensureTableExists(HBaseStoreManager.java:725)

(2)解决办法

只需要找到对应的版本重覆上面步骤,done。。

2. Hbase zookeeper.znode.parent 属性

(1)报错信息

Hbase的配置文件zookeeper.znode.parent与 janusgraph 的 properties文件配置不一致 ,不能读取Hbase信息(Hbase默认为/hbase)

1577 [main] WARN  org.apache.hadoop.hbase.client.ConnectionImplementation  - Retrieve cluster id failedjava.util.concurrent.ExecutionException: org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase-unsecure/hbaseidat java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)at org.apache.hadoop.hbase.client.ConnectionImplementation.retrieveClusterId(ConnectionImplementation.java:549)at org.apache.hadoop.hbase.client.ConnectionImplementation.<init>(ConnectionImplementation.java:287)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:220)at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:115)at org.janusgraph.diskstorage.hbase.HBaseCompat1_0.createConnection(HBaseCompat1_0.java:43)at org.janusgraph.diskstorage.hbase.HBaseStoreManager.<init>(HBaseStoreManager.java:336)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:58)at org.janusgraph.diskstorage.Backend.getImplementationClass(Backend.java:440)at org.janusgraph.diskstorage.Backend.getStorageManager(Backend.java:411)at org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder.build(GraphDatabaseConfigurationBuilder.java:50)at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:161)at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:132)at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:112)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:77)at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:69)at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:103)at org.apache.tinkerpop.gremlin.server.util.DefaultGraphManager.lambda$new$0(DefaultGraphManager.java:57)at java.util.LinkedHashMap$LinkedEntrySet.forEach(LinkedHashMap.java:671)at org.apache.tinkerpop.gremlin.server.util.DefaultGraphManager.<init>(DefaultGraphManager.java:55)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at org.apache.tinkerpop.gremlin.server.util.DefaultGraphManager.<init>(DefaultGraphManager.java:55)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.<init>(ServerGremlinExecutor.java:80)at org.apache.tinkerpop.gremlin.server.GremlinServer.<init>(GremlinServer.java:122)at org.apache.tinkerpop.gremlin.server.GremlinServer.<init>(GremlinServer.java:86)at org.apache.tinkerpop.gremlin.server.GremlinServer.main(GremlinServer.java:345)
Caused by: org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hba
se-unsecure/hbaseidat org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException.create(KeeperException.java:111)at org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException.create(KeeperException.java:51)at org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient$ZKTask$1.exec(ReadOnlyZKClient.java:177)at org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient.run(ReadOnlyZKClient.java:342)at java.lang.Thread.run(Thread.java:748)
5899 [main] INFO  org.apache.hadoop.hbase.client.RpcRetryingCallerImpl  - Call exception, tries=6, retries=16, started=4151 ms ag
o, cancelled=false, msg=org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = No
Node for /hbase-unsecure, details=row 'hdp_lbg_ectech:lm_app_luna_intelligentpath' on table 'hbase:meta' at null, see https://s.a
pache.org/timeout
9931 [main] INFO  org.apache.hadoop.hbase.client.RpcRetryingCallerImpl  - Call exception, tries=7, retries=16, started=8183 ms ag
o, cancelled=false, msg=org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = No
Node for /hbase-unsecure, details=row 'hdp_lbg_ectech:lm_app_luna_intelligentpath' on table 'hbase:meta' at null, see https://s.a
pache.org/timeout
19949 [main] INFO  org.apache.hadoop.hbase.client.RpcRetryingCallerImpl  - Call exception, tries=8, retries=16, started=18201 ms
ago, cancelled=false, msg=org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =
NoNode for /hbase-unsecure, details=row 'hdp_lbg_ectech:lm_app_luna_intelligentpath' on table 'hbase:meta' at null, see https://s
.apache.org/timeout

(2)解决方案:

http-janusgraph-hbase-es.properties 文件增加参数

storage.hbase.ext.zookeeper.znode.parent=/hbase

六、API调试

public static void main(String[] args) {JanusGraphFactory.Builder builder = JanusGraphFactory.build().set("storage.hostname", "tjtx162-0-201.58os.org,tjtx162-1-111.58os.org,tjtx162-1-213.58os.org,tjtx162-1-42.58os.org,tjtx162-1-77.58os.org").set("storage.hbase.ext.zookeeper.znode.parent","/hbase").set("storage.backend", "hbase").set("storage.hbase.table", "tablename");JanusGraph graph = null;try{graph = builder.open();boolean open = graph.isOpen();System.out.println("is open:" + open);} catch (Exception e){System.out.println(e);} finally {if(null != graph){graph.close();}}}

结果:

连接获取成功

七、附赠一份server监控重启的shell脚本

#! /bin/bashmonitor=`ps -ef | grep GremlinServer | grep -v grep | wc -l `if [ $monitor -eq 0 ]thenecho "Manipulator program is not running, restart Manipulator"sh /opt/janusgraph/janusgraph-0.3.3/bin/gremlin-server.sh conf/gremlin-server/http-gremlin-server.yaml > /opt/janusgraph/janusgraph-
0.3.3/log/janus_server.log 2>&1 &elseecho "Manipulator program is running"fi
#crontab -e  编辑定时任务,每五分钟执行一次
*/5 * * * * nohup sh /home/work/wangtianyu03/restart.sh > /home/work/wangtianyu03/restart.log 2>&1

JanusGraph单机部署相关推荐

  1. 002_FastDFS单机部署

    1. 环境准备 1.1. 使用的系统软件 1.2. 编译环境 1.2.1. 编译命令(实际安装了git.gcc.gcc-c++.pcre.pcre-devel.zlib.zlib-devel.open ...

  2. centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解

    centos6.5环境下Zookeeper-3.4.6集群环境部署 [系统]Centos 6.5 集群部署 [软件]准备好jdk环境,此次我们的环境是open_jdk1.8.0_101 zookeep ...

  3. Geomesa-Hbase单机部署及ingest、export shp文件数据

    本文记录一下Geomesa-Hbase单机部署,步骤如下: 1.在VMware下创建虚拟机 2.安装Linux系统(我选的是centos6.8) https://www.cnblogs.com/hel ...

  4. mongodb单机部署

    mongodb单机部署 1.下载 去官网下载https://www.mongodb.com/try/download/community 下载完后解压. 2.启动 先在解压的文件夹下面创建一个data ...

  5. solr4.8单机部署(solr4.8+tomcat7)

    所需软件:solr4.8.1.Tomcat7 下载完相应软件后开始单机部署(windows下) 在F盘根目录创建solr文件夹,并解压solr4.8和tomcat7到该文件夹 在F盘根目录创建solr ...

  6. java 应用是单机集群_【架构】Tomcat单机部署多应用Windows

    Tomcat单机部署多应用-Windows 1.添加新增的Tomcat相关环境变量 CATALINA_BASE = C:\tomcat1 CATALINA_HOME = C:\tomcat1 TOMC ...

  7. pre2-flink单机部署与job提交

    [README] 本文记录了flink单机部署,以及flink job2种提交方式: [1]flink 单机部署 step1)下载flink 包: Apache Flink: Stateful Com ...

  8. linux 下 storm环境搭建,Storm在Ubuntu环境下的单机部署

    Storm在Ubuntu环境下的单机部署 目录 查看Ubuntu 安装JDK 安装Pythod 安装Zookeeper 安装ZeroMQ 安装Jzmp 安装Storm 查看Ubuntu是32位还是64 ...

  9. Greenplum5单机部署连接报错 System was started in master-only utility mode问题修复

    psql连接单机部署的Greenplum5会报错: psql: FATAL:  System was started in master-only utility mode - only utilit ...

最新文章

  1. C语身教程第七章:布局与联结(5)
  2. python连接oracle导出数据文件
  3. Reading Club Questions Feedback
  4. 2019.6.18 校内测试 分析+题解
  5. MySQL源码学习——DBUG调试
  6. python观察日志(part1)--字典反向查找
  7. Ubuntu系统中利用Sublime分别运行Python与Python3
  8. LeetCode 109. 有序链表转换二叉搜索树(快慢指针+递归)
  9. postman响应html,Postman工具——请求与响应(示例代码)
  10. mysql安装过程遇到的问题_个人在mysql安装过程中遇见的问题
  11. android 画布抗锯齿,android – 如何在画布和路径中进行抗锯齿处理
  12. 双塔模型的瓶颈究竟在哪?
  13. 上传图片并显示缩略图的最简单方法(c#)
  14. python中去除列表重复元素的方法汇总
  15. con和com开头单词规律_com与con 前缀的单词
  16. 在Linux上配置基于Web的网络流量监控系统的方法
  17. linux中prometheus的使用
  18. css使用rgb属性设置颜色
  19. ubuntu-14.04.5-desktop-i386.iso
  20. 数据库优化的八种方式

热门文章

  1. 搭建注册中心Consul集群
  2. 如何学习一门新语言(针对初学者)
  3. 用Python编写测试案例
  4. 一站式解决健身房经营的五大痛点
  5. Flutter FutureBuilder
  6. Matlab fmincon函数
  7. android webview 网页图片加载不出来、显示不全、进入某页面退出,h5页面滑不了,点不了等功能异常等问题集锦
  8. 微信小程序学习总结(1)
  9. 拍领导牵手的摄影师立功还是担责?
  10. h5新增标签及css3新增属性