图数据库HugeGraph:HugeGraph-Hubble基于Web的可视化图管理初体验

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 图数据库HugeGraph:HugeGraph-Hubble基于Web的可视化图管理初体验

原创/朱季谦

一、HugeGraph-Hubble简介

关于HugeGraph,官方资料是这样介绍的,它是一款易用、高效、通用的开源图数据库系统(Graph Database), 实现了 Apache TinkerPop3 框架及完全兼容 Gremlin 查询语言, 具备完善的工具链组件,助力用户轻松构建基于图数据库之上的应用和产品。HugeGraph 支持百亿以上的顶点和边快速导入,并提供毫秒级的关联关系查询能力(OLTP), 并可与 Hadoop、Spark 等大数据平台集成以进行离线分析(OLAP)。

HugeGraph与其他图数据库系统一样都提供了一套前端展示工具。HugeGraph在0.10 server 版本之前,是通过HugeGraph-Studio提供的前端展示工具,只有一个页面用于来实现简单图操作。

在HugeGraph在0.10 server 版本之后,百度HugeGraph开始支持一套全新的Web图管理界面HugeGraph-Hubble,其功能相比之前的HugeGraph-Studio,可以说更加丰富,可以实现图管理、元数据建模、数据导入、图分析以及跑批操作,对于想要学习HugeGraph的同学,可以起到更好的帮助。

官网上,关于HugeGraph-Hubble是这样介绍的:HugeGraph-Hubble是HugeGraph的一站式可视化分析平台,平台涵盖了从数据建模,到数据快速导入,再到数据的在线、离线分析、以及图的统一管理的全过程,实现了图应用的全流程向导式操作,旨在提升用户的使用流畅度,降低用户的使用门槛,提供更为高效易用的使用体验。

相关的具体介绍,可以跳转至HugeGraph-Hubble官网详情——

很遗憾是,官网上并没有很详细地介绍如何搭建HugeGraph-Hubble集成到HugeGraph-Server中,我是根据之前的linux环境安装可操作图库语言Gremlin的图框架HugeGraph一文的搭建经验,来重新搭建HugeGraph-Hubble。


二、环境安装依赖版本

首先,是环境依赖,我选择的hadoop、hbase、hugegraph、hugegraph-hubble版本分别是——

hadoop hbase hugegraph hugegraph-hubble
2.7.5 2.1.0 0.11.2 1.5.0


三、hugegraph服务部署文件参数

具体如何安装配置hugegraph的server端,请移步至我之前0.10.4版本的linux环境安装可操作图库语言Gremlin的图框架HugeGraph一文,整体相差不大,主要就修hugegraph安装目录里的hugegraph.properties和rest-server.properties两个文件。

1、rest-server.properties文件主要修改参数——

//图服务ip端口
restserver.url=http://192.168.200.153:8099
graphs=[hugegraph:conf/hugegraph.properties]
server.id=server-1
server.role=master

这里需要注意一点,该图服务端口http://192.168.200.153:8099将在后面的hugegraph-hubble进行图建立时用到。

2、hugegraph配置持久化

本文主要介绍Hbase做持久化与MySql做持久化——

2.1、Hbase持久化设置

hbase需要求版本 在2.0 以上,修改hugegraph.properties以下参数:

//hbase持久化存储
backend=hbase
//后端存储的序列化程序,可用值为[text、binary、cassandra、hbase、mysql],选hbase就用hbase
serializer=hbase
//hbase连接的zookeeper集群连接
hbase.hosts=192.168.200.130,192.168.200.131,192.168.200.132
//hbase连接的zookeeper接口
hbase.port=2181
//存储库名
store=hugegraph

其中,hbase.hosts与hbase.port的参数是对应了hbase设置zookeeper注册中心的参数,hbase的zookeeper集群配置在hbase-2.1.0/conf/hbase-site.xml文件里,我的是——

<configuration>
   ......
   <property>
      <name>hbase.master</name>
      <value>master1</value>
   </property>
   <property>
      <name>hbase.zookeeper.quorum</name>
      <value>192.168.200.130:2181,192.168.200.131:2181,192.168.200.132:2181</value>
   </property>
   ......
</configuration>

而hbase的master默认端口是16000,当hugeGraph这样配置hbase如以下的hosts和post参数后,它起到作用是,会到zookeeper集群注册中心的/hbase/master节点处获取需要连接的hbase的master地址,进而连接hbase,我的hbase的master是放在192.168.200.150机器上。

hbase.hosts=192.168.200.130,192.168.200.131,192.168.200.132
//hbase连接的zookeeper接口
hbase.port=2181

可以稍微验证一下,假如我启动了zookeeper集群,但是没有启动hbase集群,那么当hugeGraph启动进行数据操作时,会出现以下异常——

org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/master, details=, see https://s.apache.org/timeout

其中KeeperErrorCode = NoNode for /hbase/master,说明zookeeper没有/hbase/master这个节点,那就以为着,hugeGraph持久化连接到zookeeper,获取存储到/hbase/master的数据,那么,该数据是什么呢?

很遗憾,我这边直接通过zookeeper客户端去看,出现了乱码,但其他地方的中文又是正常的,因此,我怀疑,该节点数据估计是做了序列化,导致无法看到正常数据......

[zk: localhost:2181(CONNECTED) 21] get /hbase/master
�master:16000�o]7��#PBUF

master1�}�����/��
cZxid = 0x10000032a
ctime = Thu Dec 16 07:50:34 CST 2021
mZxid = 0x10000032a
mtime = Thu Dec 16 07:50:34 CST 2021
pZxid = 0x10000032a
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x27db96bfb240022
dataLength = 56
numChildren = 0

可以换一种方式验证,我在启动hbase过程中,操作hugeGraph,然后看hugeGraph日志,这时已经可以连接到zookeeper了,但出现以下日志——

2021-12-16 07:49:53 3324377514 [grizzly-http-server-3] [WARN ] org.apache.hadoop.hbase.client.ConnectionImplementation [] - Checking master connection

org.apache.hadoop.hbase.ipc.FailedServerException: Call to master1/192.168.200.150:16000 failed on local exception: org.apache.hadoop.hbase.ipc.FailedServerException: This server is in the failed servers list: master1/192.168.200.150:16000

其中,This server is in the failed servers list: master1/192.168.200.150:16000,说明最后hugeGraph是通过zookeeper拿到了hbase的master地址master1/192.168.200.150:16000,然后去连接hbase,但hbase正在启动中,故而还连接不到,后面有一条日志是连接到,但hbase的master正在启动的提示——

org.apache.hadoop.hbase.client.RpcRetryingCallerImpl [] - Call exception, tries=10, retries=16, started=58047 ms ago, cancelled=false, msg=org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

以上,就是配置hbase做hugeGraph持久化数据层的方式及原理。

2.2、MySql做持久化配置——

hugegraph.properties增加以下配置即可——

backend=mysql
serializer=mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306
jdbc.username=root
jdbc.password=root
jdbc.storage_engine=InnoDB


四、hugegraph与hugegraph-hubble启动服务

配置完后,就可以启动hugeGraph了——(这里需要注意,首次启动,需要进行初始化,初始化指令为bin/init-store.sh,执行完后,再进行服务启动)

[root@slave2 bin]# ./start-hugegraph.sh 
Starting HugeGraphServer...
Connecting to HugeGraphServer (http://192.168.200.153:8099/graphs).OK
Started [pid 39235]

当HugeGraphServer服务成功启动后,就可以开始安装启动web图管理界面 hugegraph-hubble1.5.0了。

上传至虚拟机,解压,进入到/hugegraph-hubble-1.5.0/conf目录,修改hugegraph-hubble.properties文件,我修改后的参数主要为以下——

//允许本机与本机之外的机器访问
server.host=0.0.0.0
//图管理页面端口
server.port=8088
gremlin.suffix_limit=250
//顶点默认查询数量
gremlin.vertex_degree_limit=100
//边默认查询数量
gremlin.edges_total_limit=500
gremlin.batch_query_ids=100

配置完成后,启动hugegraph-hubble——

[root@slave2 bin]# ./start-hubble.sh 
starting HugeGraphHubble....OK
logging to /app/hugegraph-hubble-1.5.0/logs/hugegraph-hubble.log

完成后,浏览器上访问http://192.168.200.153:8088/

截图里,我已经创建了一个图,社区版本允许最大创建三个图。

平台的模块使用流程如下:

创建图的方式很简单,直接点击创建图,弹出框上填入相关服务器配置信息即可,可参考我已经配置好的——

这里主机名和端口号的参数需根据hugegraph.properties配置的ip与端口进行设置。

创建完成后,就可进入到图管理页面了——

我将在下一篇文章当中,分享如何居于hugegraph-hubble图管理进行图实例设计与图分析。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
581 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
7月前
|
Oracle 关系型数据库 网络安全
崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB
文章是作者小草对崖山异构数据库迁移利器 YMP 的初体验分享,包括背景、YMP 简介、体验环境说明、YMP 部署(含安装前准备、安装、卸载、启动与停止)、数据迁移及遇到的问题与解决过程。重点介绍了 YMP 功能、部署的诸多细节和数据迁移流程,还提到了安装和迁移中遇到的问题及解决办法。
|
数据采集 机器学习/深度学习 数据可视化
【优秀python web系统毕设】基于python的全国招聘数据分析可视化系统,包括随机森林算法
本文介绍了一个基于Python的全国招聘数据分析可视化系统,该系统利用数据挖掘技术、随机森林算法和数据可视化技术,从招聘网站抓取数据,进行处理、分析和预测,帮助用户洞察招聘市场,为求职者和企业提供决策支持。
800 2
|
数据可视化 数据库 数据安全/隐私保护
在IDEA中如何用可视化界面操作数据库? 在idea中如何操作数据库? 在idea中如何像Navicat一样操作数据库?
文章介绍了如何在IDEA中使用可视化界面操作数据库,类似于Navicat,以提高数据库操作的效率和管理性。
340 1
在IDEA中如何用可视化界面操作数据库? 在idea中如何操作数据库? 在idea中如何像Navicat一样操作数据库?
|
数据可视化 API PHP
学生信息管理系统-可视化-科目管理CRUD代码生成器
学生信息管理系统-可视化-科目管理CRUD代码生成器
162 5
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
730 1
|
数据采集 数据可视化 关系型数据库
【优秀python web设计】基于Python flask的猫眼电影可视化系统,可视化用echart,前端Layui,数据库用MySQL,包括爬虫
本文介绍了一个基于Python Flask框架、MySQL数据库和Layui前端框架的猫眼电影数据采集分析与可视化系统,该系统通过爬虫技术采集电影数据,利用数据分析库进行处理,并使用Echart进行数据的可视化展示,以提供全面、准确的电影市场分析结果。
448 4
|
SQL 数据可视化 关系型数据库
2022年最新最详细IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
这篇文章详细介绍了如何在IntelliJ IDEA中关联MySQL数据库,包括打开Database侧边栏、选择数据库、输入连接信息、测试连接,并提供了解决连接问题的方案,以及在IDEA中进行数据库的可视化操作步骤。
2022年最新最详细IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
|
开发框架 缓存 NoSQL
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用

热门文章

最新文章