本文首发于 Nebula 公众号:手把手教你从数据预处理开始体验图数据库,由社区用户 Jiayi98 供稿,分享了她离线部署 Nebula Graph 、预处理 LDBC 数据集的经验,是个对新手极度友好的手把手教你学 Nebula 分享。
这不是一个标准的压力测试,而是通过一个小规模的测试帮助我熟悉 Nebula 的部署,数据导入工具,查询语言,Java API,数据迁移,以及集群性能的一个简单了解。
所有的准备都需要找个有网的环境
docker save xxx
命令将拉好的镜像导出成 tar 包)$ rpm -ivh <rpm 包>
$ systemctl start docker --启动
$ systemctl status docker --查看状态
$ mv docker-compose /usr/local/bin/ --把 docker-compose 文件移动到 /usr/local/bin
$ chmod a+x /usr/local/bin/docker-compose --改权限
$ docker-compose -version
$ docker load <镜像 tar 包>
$ docker image ls
$ sudo docker swarm init --advertise-addr <manager machine ip>
worker
的身份 join swarm
$ docker node ls
worker node
如果出现以下报错:Error response from daemon: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.16.9.129:2377: connect: no route to host"
一般是防火墙未关闭导致的(用以下方式关闭防火墙)。
$ systemctl status firewalld.service
$ systemctl disable firewalld.service
docker-stack.yml
,并创建 nebula.env
-- nebula.env
TZ=UTC
USER=root
$ docker stack deploy <stack name> -c docker-stack.yml
这里附带一些我 Debug / 检查方法:
$ docker service ls --查看服务状态
$ docker service ps <NAME/ID> --查看某一个具体的状态
$ docker stack ps --no-trunc <stack name> --查看 stack 里所有的进程
代码文件夹里是 v1,有一个 v2 的文件夹里是 v2
$ cd nebula-web-docker
或
$ cd nebula-web-docker/v2
$ docker-compose up -d -- 构建并启动 Studio 服务;
其中,-d
表示在后台运行服务容器
启动成功后,在浏览器地址栏输入:http://ip address:7001
我用的 LDBC 。
这里需要说明一下,要注意你用的 nebula 版本是否支持 “|”
作为分隔符。
ldbc 的所有 vertex 和 edge 的 ID / index 都有问题,需要处理一下使得所有 vertex 的 ID 变为 unique key 。
我的做法是每个 vertex 我都给一个前缀,比如 person,原始 ID 为 933,变为 p933 。(为了试用一下我自己搭的 CDH 我用 Spark 做的数据预处理,处理过的数据放在 HDFS 以便后面用 nebula-exchange 导入)
备注:Nebula 不推荐使用 HDD,但我也没有 SSD, 最后测试结果证明 HDD 真的很弱。
3 节点,服务分布如下
2 图空间:
导入 Nebula 之后,占用储存空间共约 76 G,其中 wal 文件占 2.2 G 左右。
没有做导入的测试,一部分用了 Nebula-Importer 导入,一部分用了 Exchange 导入:
测试方法:
timeout
参数调高至 120 秒后的结果,后来在终端执行了一次三度发现要三百多秒。最后,希望这份文档对和我一样的小白们有帮助,也感谢一直以来社区和官方的答疑解惑。
Nebula 真的让用户感到真的非常 supportive,在学习使用 Nebula 的过程中我也收获了很多~
交流图数据库技术?加入 Nebula 交流群请先填写下你的 Nebulae 名片,Nebula 小助手会拉你进群~~
要不要看看 [美团的图数据库系统] 、 [微众银行的数据治理方案] 以及其他大厂的风控、知识图谱实践?Follow Nebula 公众号:NebulaGraphCommunity 回复「 PPT 」即可习得大厂实践技能 ^^