前沿技术学习:安装可操作图库语言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包(截图是目前最新版本)。

网盘下载地址:

链接:https://pan.baidu.com/s/11qPFOFU-d9nxGEdws4zggQ
提取码: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

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

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

bin/init-store.sh

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

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

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

bin/start-hugegraph.sh

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

最后,输入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与端口即可。

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

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

过程遇到的问题:

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

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

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

原文地址:https://www.cnblogs.com/zhujiqian/p/12547653.html

时间: 2024-10-20 02:00:09

前沿技术学习:安装可操作图库语言Gremlin的图框架HugeGraph的相关文章

大数据技术学习路线,有信心能学好的朋友,就开始吧

如果你看完有信心能坚持学习的话,那就当下开始行动吧! 一.大数据技术基础 1.linux操作基础 linux系统简介与安装 linux常用命令–文件操作 linux常用命令–用户管理与权限 linux常用命令–系统管理 linux常用命令–免密登陆配置与网络管理 linux上常用软件安装 linux本地yum源配置及yum软件安装 linux防火墙配置 linux高级文本处理命令cut.sed.awk linux定时任务crontab 2.shell编程 shell编程–基本语法 shell编程

我的2015技术学习流水账

我的2015技术学习流水账 2015年马上就要过去了,匆匆忙忙地又是一年.回头总结整理,发现这一年还挺充实的.在正常上班工作之余,学习到了不少新东西,不禁感到很欣慰!一个多月前就开始写,终于赶在2016年来临之前写完了这篇文章-- 关于本文,尽管叫做流水账,但是出于程序员条理性的"强迫症",还是进行系统分类,分类方法参照Thoughtworks技术雷达的Tecniques.Languages & Frameworks.Tools.Platforms,将其中的Tecniques改

技术学习规划

技术学习规划: ? 2015年 2016年 2017年 基础理论 TCP/IP协议: ? ? ? ? ? ? ? ? ? ? ? ?<TCP/IP详解卷I>(第1遍) ? ? ? ? ? ? ? ? ? ? ? ?<图解TCP/IP>. 数据结构与算法: ? ? ? ? ? ? ? ? ? ? ? ? ?<算法> TCP/IP协议: ? ? ? ? ?<TCP/IP详解卷I>(第2遍) ? ? ? ? ? HTTP协议:<图解HTTP> 数据结构

技术学习步骤

java技术学习步骤 ? 一.入门 二.基础巩固 三.深入学习 四.源码剖析 五.总结分析 语言基础 <java核心技术卷I> <java编程思想> <java核心技术卷II> <Effective java > <java 特种兵> ? ? 框架技术 Struts2:<深入浅出Struts2> ? ? ? ? ? ? ?<Strut2实战> Hibernate:<精通Hibernate> Spring:<

大数据技术学习路线,该怎么学?

如果你看完有信心能坚持学习的话,那就当下开始行动吧! 一.大数据技术基础 1.linux操作基础 linux系统简介与安装linux常用命令–文件操作linux常用命令–用户管理与权限linux常用命令–系统管理linux常用命令–免密登陆配置与网络管理linux上常用软件安装linux本地yum源配置及yum软件安装linux防火墙配置linux高级文本处理命令cut.sed.awklinux定时任务crontab2.shell编程 shell编程–基本语法shell编程–流程控制shell编

Linux技术学习要点,您掌握了吗---初学者必看

Linux技术学习要点,您掌握了吗---初学者必看 1.如何做好嵌入式Linux学习前的准备? 要成为一名合格的嵌入式Linux工程师,就需要系统的学习软.硬件相关领域内的知识,需要在最开始就掌握开发的规范和原则,养成良好的工作习惯.为了确保学习的效果,信盈达安排的整个课程体系是非常集中.高效的,这就要求准备参加嵌入式Linux就业课程学习的同学要调整好自己的时间,务必要确保在4个多月的学习时间内能够高度集中精力.兄弟连Linux培训. 在整个集中学习过程中,既要保证课上认真听讲.实战演练的时间

Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 HTML 形式返回, Java 程序运行在服务端,最终显示在客户端.JSP 源于 Java,因而 JSP 的运行环境依赖JDK,当然也需要服务器软件(例如 Tomcat 等). 一.运行环境搭建 1.安装 JDK,请参阅之前的博文:Java学习-001-JDK安装配置 2.Tomcat部署及环境变

共享单车玩前沿技术?或许这是活命之本

对于共享单车行业而言,目前实在是多事之秋.当然,有喜也有悲.既有近段时间摩拜.ofo先后获得数亿美元融资,让共享单车行业扬眉吐气的喜事,也有单车乱停乱放,甚至成为环境潜在威胁这样的悲事.而如今,似乎共享单车企业又和前沿技术杠上了. 摩拜.ofo等共享单车企业纷纷发布全新单车相关技术,让人眼前一亮.而众多前沿技术的落地和使用,意味着共享单车行业要从此前的比拼投放量向提升使用体验等方向进化.或许在接下来,前沿技术将是共享单车企业的"活命之本". 为前沿技术"疯魔"!摩拜

java技术学习步骤

java技术学习步骤 ? 一.入门 二.基础巩固 三.深入学习 四.源码剖析 五.总结分析 语言基础 <java核心技术卷I> <java编程思想> <java核心技术卷II> <Effective java > <java 特种兵> ? ? 框架技术 Struts2:<深入浅出Struts2> ? ? ? ? ? ? ?<Strut2实战> Hibernate:<精通Hibernate> Spring:<