linux环境安装可操作图库语言Gremlin的图框架HugeGraph

2023-12-17 22:52

本文主要是介绍linux环境安装可操作图库语言Gremlin的图框架HugeGraph,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原创/朱季谦

若你还没接触过图数据库,可能看到这个概念时,会比较蒙蔽。

图是什么?图数据库又是什么?

首先,在数据结构中,图是一种由顶点(vertex)集合及顶点间关系集合组成的一种非线性数据结构。

而图数据库,则是以图这种具有点边结构来增、删、改、查之类操作的NoSQL数据库,它特别擅长处理大数据之间的关联。

常见的图数据库有Neo4j,JanuasGraph,Tigergraph等,其中,Gremlin是一种操作图数据库的图语言,它是Apache ThinkerPop框架下的图遍历语言。

 

那么HugeGraph又是什么呢?

根据官网上的介绍,HugeGraph是一款易用、高效、通用的开源图数据库系统(Graph Database),实现了Apache TinkerPop3框架及完全兼容Gremlin查询语言,支持百亿以上的顶点和边快速导入,并提供毫秒级的关联关系查询能力(OLTP),并可与Hadoop、Spark等大数据平台集成以进行离线分析(OLAP)。

HugeGraph是百度自主研发的图数据库,在2018年8月开始对外开源,我们之前做一款图库产品时技术选型就是选了HugeGraph,总体感觉这个技术比较前沿也比较厉害。

HugeGraph有以下特点:

  • 顶点、边:支持基本增删改查操作,支持有向图,支持两顶点间同一类型多条边,支持超级点。

  • 属性:支持属性图、支持多值属性、支持多样化的属性类型、支持顶点属性追加与合并。

  • 元数据:支持丰富的Schema校验,如属性是否可空(可选),支持Schema动态修改。

  • 索引:支持二级索引、范围索引、全文索引,支持联合索引。

  • 事务:遵循Tinkerpop事务规范,支持Read Committed级别事务。

  • 多顶点ID策略:支持主键ID、支持自动生成ID、支持用户自定义字符串ID、支持用户自定义数字ID。

  • 大规模数据:支持批量插入顶点/边、支持超级顶点、支持流式分页获取、支持Shard并行获取。

  • 优化的图接口:最短路径(Shortest Path)、K步连通子图(K-neighbor)、K步到达邻接点(K-out)等。

  • 其它:支持图变量(Graph Variables)、兼容性上已通过Apache Tinkerpop官方测试用例90%兼容测试。

说了这么多,那么图库技术有什么用呢?

主要可以用在知识图谱、金融反欺诈、社交关系网络、推荐、用户分析、搜索等等,以及其他。

学习Gremilin的第一步,当然是从安装环境开始,下面,我就把之前的安装教程分享出来:

网盘下载核心安装包HugeGraph Server包和图形界面HugeGraph Studio包(截图是目前最新版本)。

image

网盘下载地址:

链接:百度网盘 请输入提取码
提取码:pqpy

利用HugeGraph学习Gremlin,主要只用安装以上两个包,它们的功能分别是:

核心HugeGraph-Server: HugeGraph-Server是HugeGraph项目的核心部分,包含Core、Backend、API等子模块——

  • Core:图引擎实现,向下连接Backend模块,向上支持API模块;

  • Backend:实现将图数据存储到后端,支持的后端包括:Memory、Cassandra、ScyllaDB、RocksDB、HBase及MySQL,用户根据实际情况选择一种即可;

  • API:内置REST Server,向用户提供RESTful API,同时完全兼容Gremlin查询。

可视化界面(hugegraph-studio):基于Web的可视化环境,提供图操作界面、图数据展示与分析。

一.先安装HugeGraph Server。

1.把压缩包放在你选择放的文件夹里,进行解压:

tar -zxvf hugegraph-0.10.4.tar.gz

clipboard

解压完成后,进入到已解压的文件目录里,执行:vim conf/rest-server.properties,进入到编辑状态,将restserver.url改成:http://0.0.0.0:8080,代表本机以及其他机器都可以访问,修改完成后,:wq保存退出。

clipboard

2.配置文件修改完后,需对后端做初始化操作,执行指令:

bin/init-store.sh

执行成功会打印以下信息:

clipboard

初始化完成后,自动生成一个corksdb-data的文件,这个文件禁止删除,它是与数据存储相关的文件,HugeGraph其实可以与Hbase等第三方组件集成,可在conf目录下的hugegraph.properties文件中进行配置。

image

3.接下来就可以启动HugeGraph Server服务了,执行指令:

bin/start-hugegraph.sh

执行成功后,会打印以下信息:

clipboard

最后,输入jps,若出现HugeGraph Server的进程,则证明已经安装启动成功。

二.接下来,就开始安装启动图形化HugeGraph Studio

1.解压HugeGraph Studio压缩包:

tar -zxvf hugegraph-studio-0.10.0.tar.gz

解压完成后,进入已解压的文件目录里,执行指令:vim conf/hugegraph-studio.properties,进行配置文件编辑状态:

其中,studio.server.port填8088,studio.server.host填0.0.0.0,可令本机与本机之外的机器访问,graph.server.host填的是HugeGraph Server所在机器的地址IP,其安装在虚拟机192.168.200.128机器上,graphGraph Server.port对应的是HugeGraph Server配置设置的8080端口,只需修改设置下图截图ip与端口即可。

clipboard

2.安装完成后,即可执行指令bin/hugegraph-studio.sh进行启动操作,成功启动后,显示打印以下信息:

clipboard

在浏览器测试运行下,输入1+3,若能显示[4],即已经完整启动完成,可在以下Studio界面玩Gremlin图数据库语言了。

clipboard

过程遇到的问题:

刚开始,我参考网上一些教程,把HugeGraph Studio的配置文件中graph.server.host改成0.0.0.0。

clipboard

发现可以出现图形化界面,但是,在操作运行时,报了“Failed to connect HugeGraphServer.com.baidu.hugeGraph.rest.ClientException:Failed to do request的错误,后经检查,发现这里不能填对应HugeGraph Server配置文件里设置的0.0.0.0,而需要填HugeGraph Server所在的机器Ip,例如其所在虚拟机Ip,这样才能正常运行。

clipboard

图数据库是一项很前沿的技术,欢迎小伙伴关注我,我会把学习笔记做成专栏记录下来。

这篇关于linux环境安装可操作图库语言Gremlin的图框架HugeGraph的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/506152

相关文章

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序