基于ubuntu 22, jdk 8x64搭建图数据库环境 hugegraph--google镜像chatgpt

基于ubuntu 22, jdk 8x64搭建图数据库环境 hugegraph

download

环境

uname -a
#Linux whiltez 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linuxwhich javac
#/adoptopen-jdk8u332-b09/bin/javac
which java
#/adoptopen-jdk8u332-b09/bin/java

0. download and unpack


cd ~
#cd /home/z/
mkdir hugegraph; cd hugegraph;
#pwd: /home/z/hugegraphwget https://github.com/hugegraph/hugegraph/releases/download/v0.12.0/hugegraph-0.12.0.tar.gz
wget https://github.com/hugegraph/hugegraph-hubble/releases/download/v1.6.0/hugegraph-hubble-1.6.0.tar.gztar -zxvf hugegraph-0.12.0.tar.gz
tar -zxvf hugegraph-hubble-1.6.0.tar.gztree -L 2 .
"""
.
├── hugegraph-0.12.0
│   ├── bin
│   ├── conf
│   ├── ext
│   ├── lib
│   ├── logs
│   ├── plugins
│   ├── rocksdb-data
│   └── scripts
├── hugegraph-hubble-1.6.0
│   ├── bin
│   ├── conf
│   ├── db.mv.db
│   ├── lib
│   ├── LICENSE
│   ├── logs
│   ├── README.md
│   └── ui"""

1.启动hugegraph服务

cd ~/hugegraph/hugegraph-0.12.0/

1.a 默认使用内置rocketmq数据库, 可修改为mysql

配置文件为: conf/graphs/hugegraph.properties

~/hugegraph/hugegraph-0.12.0/conf/graphs/hugegraph.properties

1.b 可修改web rest服务外部可访问:

#find ~/hugegraph/hugegraph-0.12.0/conf -type f  | xargs -I@ grep -Hn 127 @
sed -i "s/restserver.url=http:\/\/127.0.0.1:8080/restserver.url=http:\/\/0.0.0.0:8080/g" conf/rest-server.properties
#sed -i "g/restserver.url=http://127.0.0.1:8080/restserver.url=http://0.0.0.0:8080/s"  conf/rest-server.properties
#~/hugegraph/hugegraph-0.12.0/conf/rest-server.properties

1.c 可修改gremlin-server端口8182 监听任意ip

sed -i  "s/#host: 127.0.0.1/host: 0.0.0.0/" conf/gremlin-server.yaml
##~/hugegraph/hugegraph-0.12.0/conf/gremlin-server.yaml

注意 hugegraph的gremlin-server端口8182 理论上是可以被Tinerpop的gremlin-client : ‘org.apache.tinkerpop:gremlin-driver:3.6.1’ 正常连上的,
因为 gremlin-server确实是符合gremlin规范的服务 , 但实际上 二者会有细微差异, 比如以下代码部分报错:

import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.apache.tinkerpop.gremlin.structure.Vertex;import java.util.Map;import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;public class Test2 {public static void main(String[] args){GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using("192.168.0.3",8182,"g"));GraphTraversal<Vertex, Map<Object, Object>> list = g.V().elementMap();test2(g);try {g.close();} catch (Exception e) {e.printStackTrace();}}public static void test2(GraphTraversalSource g){Long vertexCnt = g.V().count().next();System.out.println("vertexCnt:"+vertexCnt);}
}

行"Long vertexCnt = g.V().count().next();", 报错如下:

Exception in thread "main" java.util.concurrent.CompletionException: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: The traversal source [g] for alias [g] is not configured on the server.at java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:375)at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)at org.apache.tinkerpop.gremlin.driver.ResultSet.one(ResultSet.java:123)at org.apache.tinkerpop.gremlin.driver.ResultSet$1.hasNext(ResultSet.java:175)at org.apache.tinkerpop.gremlin.driver.ResultSet$1.next(ResultSet.java:182)at org.apache.tinkerpop.gremlin.driver.ResultSet$1.next(ResultSet.java:169)at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:115)at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:100)at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal.nextTraverser(DriverRemoteTraversal.java:92)at org.apache.tinkerpop.gremlin.process.remote.traversal.step.map.RemoteStep.processNextStart(RemoteStep.java:80)at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:135)at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:40)at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.next(DefaultTraversal.java:249)at Test2.test2(Test2.java:28)at Test2.main(Test2.java:20)
Caused by: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: The traversal source [g] for alias [g] is not configured on the server.at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:245)at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:200)at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:126)at org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:68)at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)at io.netty.handler.codec.http.websocketx.Utf8FrameValidator.channelRead(Utf8FrameValidator.java:89)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)at java.lang.Thread.run(Thread.java:745)

1.1 初始化hugegraph存储

./bin/init-store.sh
#~/hugegraph/hugegraph-0.12.0/bin/init-store.sh#执行后,将会多出目录rocksdb-datatree -L 2 ~/hugegraph/hugegraph-0.12.0/rocksdb-data/
"""
rocksdb-data/
├── g
│   ├── 000006.log
│   ├── CURRENT
│   ├── IDENTITY
│   ├── LOCK
│   ├── LOG
│   ├── LOG.old.1661579557252372
│   ├── MANIFEST-000005
│   ├── OPTIONS-000008
│   └── OPTIONS-000010
├── m
│   ├── 000006.log
│   ├── CURRENT
│   ├── IDENTITY
│   ├── LOCK
│   ├── LOG
│   ├── LOG.old.1661579555337140
│   ├── MANIFEST-000005
│   ├── OPTIONS-000008
│   └── OPTIONS-000010
└── s├── 000006.log├── CURRENT├── IDENTITY├── LOCK├── LOG├── LOG.old.1661579555688062├── MANIFEST-000005├── OPTIONS-000008└── OPTIONS-000010"""

1.2 启动hugegraph服务

./bin/start-hugegraph.sh
#~/hugegraph/hugegraph-0.12.0/bin/start-hugegraph.shjps
#35673 HugeGraphServer#huge web rest api:
wget http://localhost:8080

2.启动hugegraph-hubble(web界面)

cd ~/hugegraph/hugegraph-hubble-1.6.0/

2.1修改为允许外部访问web界面

#find conf -type f |xargs -I@ grep -Hn localhost  @sed -i "s/server.host=localhost/server.host=0.0.0.0/g" conf/hugegraph-hubble.properties
#~/hugegraph/hugegraph-0.12.0/conf/hugegraph-hubble.properties

2.2 启动hugegraph web服务

./bin/start-hubble.sh
#~/hugegraph/hugegraph-0.12.0/bin/start-hubble.shjps
#36640 HugeGraphHubble
#35673 HugeGraphServersudo netstat -lntp  | grep java
#tcp6       0      0 :::8088                 :::*                    LISTEN      36640/java
#tcp6       0      0 :::8080                 :::*                    LISTEN      35673/java
#tcp6       0      0 127.0.0.1:8182          :::*                    LISTEN      35673/java#浏览器访问 hugegraph web界面:http://10.11.1.113:8088/

web界面创建图

在这里插入图片描述

注意 hubbleweb界面此时并不知道本机的hugegraph web服务8080端口的存在,所以要添加把本机服务添加到web界面上:
web点击创建图
在这里插入图片描述

hugegraph的client 语言支持貌似较弱(只有java client, 而且使用人数很少. 更没有官方py client) ,故而放弃hugegraph转向janusgraph

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/138917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年05月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 下列程序段的运行结果是?( ) def s(n):if n==0:return 1else:

畅通工程之局部最小花费问题 (C++)

目录 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 结果 题目&#xff1a; 思路&#xff1a; 详细思路都在代码注释里 。 代码&#xff1a; #include<iostream>//无向图邻接矩阵 #include<map> #include<algorithm> #define mvnum 1005 using …

​​​​​​​​​​​​​​汽车网络信息安全分析方法论

目录 1.典型信息安全分析方法 1.1 HEAVENS威胁分析模型 1.2 OCTAVE威胁分析方法 1.3 Attack Trees分析方法 2. 功能安全与信息安全的关系讨论 与Safety的典型分析方法一样&#xff0c;Security也有一些典型的信息安全威胁分析方法(TARA分析)&#xff0c;根据SAE J3061、I…

cortex-A7核 中断实验(按键中断实验)

1.选择按键触发方式 下降沿 2.解决消抖的方法 1&#xff09;ARM中&#xff1a;延时消抖 2&#xff09;linux驱动开发&#xff1a;定时器函数 3.框图 内部流程框图&#xff1a; 需要RCC GPIO EXTI GIC章节 中断触发流程&#xff1a; 4.RCC 章节 1&#xff09;使能GPIOF组 …

如何更好的使用Copilot

Copilot从诞生到现在过去了挺长时间了&#xff0c;大家对Copilot的评价算是褒贬不一吧。有些人觉得Copilot高效且神奇&#xff0c;可以对自己的工作大大提效&#xff1b;有些觉得也就那样&#xff0c;为什么要花那么多钱做这个事情&#xff0c;钱它不香吗&#xff1f; 从最开始…

nodejs+vue+python+PHP+微信小程序-安卓- 基于小程序的高校后勤管理系统-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

SQL 聚合函数

前言 SQL中的聚合函数是对一组值执行计算&#xff0c;并返回单个值的函数。 常用的聚合函数有&#xff1a; 函数作用AVG&#xff08;&#xff09;求平均值MAX&#xff08;&#xff09;求最大值MIN&#xff08;&#xff09;求最小值SUM&#xff08;&#xff09;求和COUNT&…

Python开源项目RestoreFormer(++)——人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色的实践

有关 Python 和 Anaconda 及 RestoreFormer 运行环境的安装与设置请参阅&#xff1a; Python开源项目CodeFormer——人脸重建&#xff08;Face Restoration&#xff09;&#xff0c;模糊清晰、划痕修复及黑白上色的实践https://blog.csdn.net/beijinghorn/article/details/134…

25期代码随想录算法训练营第十四天 | 二叉树 | 递归遍历、迭代遍历

目录 递归遍历前序遍历中序遍历后序遍历 迭代遍历前序遍历中序遍历后序遍历 递归遍历 前序遍历 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # …

CSS的初步学习

CSS 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结 构分离. CSS 就是 “东方四大邪术” 之化妆术 CSS 基本语法规范: 选择器 若干属性声明 选择器决定针对谁修改 (找谁) 声明决定修…

webrtc推拉流 srs报错:DTLS_HANG DTLS: > Hang, done=0, version=-1, arq=0

执行了./objs/srs -c conf/rtc.conf 打开了srs的推拉流网页&#xff1a; 推流 拉流 srs报错如下&#xff1a; [2023-11-08 21:55:23.489][Warn][44992][8xvf4d62][104][DTLS_HANG] DTLS: Hang, done0, version-1, arq0 观看srs日志&#xff0c;在sdp offer&#xff0c;answer…

MySQL中的json使用注意

MySQL中json是一种重要的数据类型 好的点在于其不必事先定义列得名称啥的 不过不要将明显的关系型数据作为json来存储&#xff0c;例如用户余额、姓名、身份证等&#xff0c;这些是用户必须包含的数据 json适合存储的是给每个用户&#xff08;或者物品&#xff09;打的标签&…

MySQL Command Line Client 运行闪退问题解决,缺少my.ini文件

MySQL Command Line Client 运行闪退问题解决&#xff1a; 问题排查&#xff1a; 1.找到Command Line Client的路径位置&#xff0c;并查看属性&#xff0c;步骤截图&#xff1a; 查看属性&#xff1a; 查看属性中的目标路径&#xff1a; 2.进入属性中的目标路径&#xff0c;…

最新支付宝转卡码生成之转账源代码(隐藏部分卡号)

一、需要准备好自己的卡号、名称、以及对应的姓名 二、然后将自己的信息填入下面的代码中 三、然后将拼接好的代码&#xff0c;利用转码技术生产对应的二维码 四、这样一个跳转银行卡二维码的转账码就做好了 效果演示&#xff1a;如下 支付宝扫码、跳转码、转卡码、隐藏卡号…

51单片机应用从零开始(一)

1. 单片机在哪里 单片机是一种集成电路芯片&#xff0c;通常被嵌入到电子设备中用于控制和处理数据&#xff0c;例如家电、汽车、电子玩具、智能家居等。因此&#xff0c;你可以在许多电子设备中找到单片机的存在。单片机通常被放置在设备的主板或控制板上。 2. 单片机是什么…

对Mysql和应用微服务做TPS压力测试

1.对Mysql 使用工具&#xff1a;mysqlslap工具 使用命令&#xff1a; mysqlslap -uroot pGG8697000!#--auto generate sql -auto generate sql-load typemixed-concurrency100,200 - number of queries1000-iterations10 - number-int-cols7 - number-charcols13auto genera…

PDF Expert for mac(专业pdf编辑器)苹果电脑

PDF Expert for Mac 是一款功能强大、界面简洁的PDF阅读、编辑和转换工具&#xff0c;为Mac用户提供了全面而便捷的PDF处理体验。无论是日常工作中的文档阅读、标注&#xff0c;还是专业需求下的编辑、转换&#xff0c;PDF Expert 都能满足您的各种需求。 首先&#xff0c;PDF…

node插件MongoDB(五)—— 库mongoose 的模块化(五)

文章目录 一、使用mongoose 模块化的原因二、准备工作2. 启动mongo.exe 和mongod.exe 两个程序连接数据库 三、基本模块的拆分1、基本逻辑2、代码3、代码图示说明 四、在index.js 中进一步的拆分1.拆分原因2.新建model文件夹存储文档的结构对象3.代码4.代码实际演示和注意点 一…

线性代数-Python-05:矩阵的逆+LU分解

文章目录 1 矩阵的逆1.1 求解矩阵的逆 2 初等矩阵2.1 初等矩阵和可逆性 3 矩阵的LU分解3.1 LU分解的实现 1 矩阵的逆 1.1 求解矩阵的逆 def inv(A):if A.row_num() ! A.col_num():return Nonen A.row_num()"""矩阵A单位矩阵"""ls LinearSyste…

SplayTree高分测试用例

测试用例结果展示 覆盖率 变异得分 测试注意点 从SplayTree测起&#xff0c;然后再测SubSplayTree&#xff0c;因为前者调用后者。SplaySubTree的remove方法大部分内容需要通过反射才能测到。value和index在SplayTree当中都不是唯一的。一个index可能对应多个value。 不足之…