Nebula Graph图数据的安装部署

随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,亟需一种支持海量复杂数据关系运算的数据库即图数据库。本系列文章是学习知识图谱以及图数据库相关的知识梳理与总结

本文会包含如下内容:

  • nebula的介绍
  • nebula server的安装
  • nebula console安装
  • nebula studio安装
  • nebula importer的安装

本篇文章适合人群:架构师、技术专家、对知识图谱与图数据库感兴趣的高级工程师

1. nebula的介绍

官网介绍: nebula是一个可靠的分布式、线性扩容、性能高效的图数据库世界上唯一能够容纳千亿个顶点和万亿条边,并提供毫秒级查询延时的图数据库解决方案

目前互联网大厂如腾讯、京东、美团、快手的图数据库基本都使用这个。

目前nebula有2个版本,nebula 1.x 及 刚刚发布的 nebula 2.0.0版本,2.0.0版本增强了 nGQL 表达能力,提高了带索引数据插入性能,逐步兼容 openCypher

nebula 2.0.0的release notes详见:https://discuss.nebula-graph.com.cn/t/topic/3235

本文基于nebula 2.0.0进行安装部署

一个典型的Nebula Graph集群架构如下:

2. nebula server的安装

安装步骤如下: 

nohup wget https://github.com/vesoft-inc/nebula-graph/releases/download/v2.0.0/nebula-graph-2.0.0.el7.x86_64.rpm &
rpm -ivh --prefix=/data1/graphdb/nebula nebula-graph-2.0.0.el7.x86_64.rpm
cd /data1/graphdb/nebula/etc
mv nebula-metad.conf.production nebula-metad.conf
mv nebula-graphd.conf.production nebula-graphd.conf
mv nebula-storaged.conf.production nebula-graphd.conf 
cd ../
./scripts/nebula.service start all
./scripts/nebula.service status all

./scripts/nebula.service stop all

配置文件有三个,在etc目录下:nebula-metad.conf、nebula-graphd.conf、nebula-storaged.conf,分别是针对元数据服务、图服务、存储服务的配置

三个配置文件都需要配置元数据服务地址,如: --meta_server_addrs=172.25.21.22:9559,172.25.21.17:9559,172.25.21.19:9559,同时需要将--local_ip修改为本机的IP

针对nebula-metad.conf除上面的配置外,其它不用修改

针对nebula-graphd.conf除上面的配置外,增加--default_charset=utf8  --default_collate=utf8_bin两个参数

针对nebula-storaged.conf,调整如下参数:

另外关于 minor compact 和 major compact 调优,生产环境的建议是:开启 minor compact 关闭 major compact。

关闭 major compact 主要是因为这个操作很占磁盘 IO,并且很难通过线程数(--rocksdb_db_options={"max_subcompactions":"4","max_background_jobs":"4"})控制

max_edge_returned_per_vertex 这个参数,数据在最底层存储层直接针对超级节点进行了过滤,在使用中就不会受到超级节点的困扰

#rocksdb DBOptions in json, each name and value of option is a string, given as "option_name":"option_value" separated by comma
--rocksdb_db_options={"max_subcompactions":"4","max_background_jobs":"4"}
# rocksdb ColumnFamilyOptions in json, each name and value of option is string, given as "option_name":"option_value" separated by comma
--rocksdb_column_family_options={"disable_auto_compactions":"false","write_buffer_size":"67108864","max_write_buffer_number":"4","max_bytes_for_level_base":"268435456"}
# rocksdb BlockBasedTableOptions in json, each name and value of option is string, given as "option_name":"option_value" separated by comma
--rocksdb_block_based_table_options={"block_size":"8192"}
# Raft election timeout
--raft_heartbeat_interval_secs=10
# RPC timeout for raft client (ms)
--raft_rpc_timeout_ms=5000
--max_batch_size=512

# recommend: 1/3 of all memory  256/3 == 80GB
 --rocksdb_block_cache=81920
# The type of storage engine, `rocksdb', `memory', etc.
--engine_type=rocksdb

--max_handlers_per_req=10
# 参数配置减小内存使用
--enable_partitioned_index_filter=true
--max_edge_returned_per_vertex=10000

3. nebula console安装

cd /data1/graphdb/
wget https://hub.fastgit.org/vesoft-inc/nebula-console/releases/download/v2.0.0-ga/nebula-console-linux-amd64-v2.0.0-ga
chmod 111 nebula-console-linux-amd64-v2.0.0-ga
mv nebula-console-linux-amd64-v2.0.0-ga nebula-console

#使用语法: nebula-console -addr <ip> -port <port> -u <username> -p <password> [-t 120] [-e "nGQL_statement" | -f filename.nGQL]
nebula-console -addr 172.25.21.22 -port 9669 -u admin -p admin

使用console查看集群信息,可以看到集群有三个节点

4. nebula studio安装

需要提前安装好docker及docker-compose,并配置好aliyun作为镜像【docker的版本是18.09.6,如果docker版本较新,如20.10.5时,网络映射有问题,导致7001端口通过http://ip:7001 不能访问

wget https://hub.fastgit.org/vesoft-inc/nebula-web-docker/archive/refs/heads/master.zip
unzip nebula-web-docker-master.zip
cd /data1/graphdb/nebula-web-docker-master/v2/
#拉取镜像
docker-compose pull
#创建并启动镜像
docker-compose up -d
#停止并删除镜像
docker-compose down

#启动服务
docker-compose start
#停止服务
docker-compose stop

 studio的界面如下:

       

5. nebula importer的安装

importer未提供部署包,需要先编译。因为importer是go语言开发,所以需要先安装go的运行环境

5.1 安装go运行环境

wget https://studygolang.com/dl/golang/go1.13.8.linux-amd64.tar.gz
tar -zxvf go1.13.8.linux-amd64.tar.gz
mv go /usr/local/go

#配置环境变量
#将下述配置加到 `~/.bashrc` 文件中,并通过 `source ~/.bashrc` 使其生效。
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:/data1/graphdb/nebula/bin

检查是否安装成功:go version

如果能成功显示:go version go1.13.8 linux/amd64,则表示安装成功

5.2 编译importer

#使用git clone或手工下载zip包
git clone https://github.com/vesoft-inc/nebula-importer.git
cd nebula-importer
make build

5.3 导入命令示例

nebula-importer --config=nba-data-importer.yaml

6. 配置环境变量

为了执行命令时不需要进入到nebula的安装目录,做如下操作

1. 将所有nebula-console、nebula-importer 迁动到nebula/bin目录下

2. 配置环境变量,修改 `~/.bashrc` 文件的path配置项,并通过 `source ~/.bashrc` 使其生效

    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:/data1/graphdb/nebula/bin:/data1/graphdb/nebula/scripts

这样,就可以愉快的执行命令了,如:

nebula.service status all

   

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

enjoy编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值