前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NebulaGraph安装方式选择

NebulaGraph安装方式选择

作者头像
堕落飞鸟
发布2023-12-04 16:02:20
4421
发布2023-12-04 16:02:20
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

一、NebulaGraph介绍

1.1、介绍

一个可靠的分布式、线性扩容、 性能高效的图数据库。NebulaGraph 提供了线性扩容的能力,支持快照方式实现数据恢复功能。在查询语言方面,开发团队完全自研开发查询语言——nGQL,兼容 OpenCypher,让 Neo4j 的用户可无缝衔接使用 NebulaGraph。

二、NebulaGraph支持的安装方式以及对比

2.1、编译安装

NebulaGraph支持使用源码编译方式进行安装

优点:1、可以根据自己需求自定义编译和安装配置,测试最新性能,自由度比较大。

缺点:1、需要在操作系统层准备编译环境,可能会与现有环境冲突。

2、需要服务器必须能够联网。

3、整个安装过程会比较繁琐

2.2、使用docker编译安装

通过docker进行编译安装,解决了服务器直接安装可能存在冲突的问题,其余优缺点与服务器编译安装一致,相当于是编译安装的优化版。

2.3、本地单机安装

2.3.1、使用包管理器rpm以及dpkg进行安装

NebulaGraph安装包,支持且仅支持 CentOS 7.x、CentOS 8.x、Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04 操作系统。使用官方封装好的包可以大大降低安装难度。

优点:1、安装简单

2、支持常用的linux发行版

缺点:1、既然已经支持了包管理器,为何不直接维护到yum源和或者apt源,让用户可以直接使用yum命令或者apt命令进行安装呢

2.3.2、tar包安装

可以但是没必要,目前没有发现什么场景是必须使用tar包进行安装的。

2.4、本地多机安装

NebulaGraph 多机集群部署方式,是生产环境建议使用的部署方式之一

优点:1、高性能

2、高可用

缺点:1、资源使用多

2、安装维护稍微有些难度

2.5、docker-compose安装

NebulaGraph 单机集群部署方式,是测试环境建议使用的部署方式之一

优点:1、可以使用单机模拟集群效果,是入门学习集群环境的不二之选

2、部署简单

缺点:1、虽然是集群环境,但是高可用只能限制于容器级别,服务器级别无法实现

2.6、k8s安装

NebulaGraph 集群部署方式,是生产环境建议使用的部署方式之一,在k8s中创建NebulaGraph Operator ,使用NebulaGraph Operator 来创建维护集群,降低部署维护难度。

优点:1、高可用,高于多机集群,因为单点故障,k8s可以自动恢复故障pod,保持节点存活数量

2、高性能,可能略低于多机集群, 因为各种网络转发会降低网络性能,影响性能上限(极端情况才会感受到,正常没问题)

缺点:1、需要人员的技术能力较高,各种问题的排查难度可能会大于多机集群方式。

2.7、对比

编译安装

docker编译安装

单机安装

集群安装

docker-compose安装

k8s安装

部署维护难度

⭐️⭐️

⭐️⭐️

⭐️

⭐️⭐️⭐️

⭐️⭐️

⭐️⭐️⭐️

所需资源

⭐️

⭐️

⭐️

⭐️⭐️⭐️

⭐️⭐️

⭐️⭐️⭐️

高可用,高性能

⭐️

⭐️

⭐️

⭐️⭐️⭐️

⭐️⭐️

⭐️⭐️⭐️

三、NebulaGraph安装方式选择以及安装

3.1、操作系统选择

考虑到后期centos社区维护问题,建议使用ubuntu操作系统。

3.2、安装方式选择

3.2.1、个人测试

刚开始接触学习建议使用单机安装方式,安装简单,可以快速上手。

3.2.2、公司测试

公司测试建议使用多机集群,docker-compose安装,以及k8s安装,尽可能模拟实际生产环境,或完全和生产环境一致,可以根据公司技术路线选择是否使用k8s,公司服务器资源是否充裕,来选择是否使用docker-compose安装。

3.2.3、生成环境

公司测试建议使用多机集群,以及k8s安装,应尽量提高应用的可用性以及性能。

3.3、安装过程

3.3.1、单机安装

单机安装可以简单快捷的安装NebulaGraph,用于个人测试环境使用,首先准备一台linux服务器,我这边使用的ubuntu1804操作系统。具体可参考官方文档

下载安装包

代码语言:javascript
复制
wget https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.ubuntu1804.amd64.deb
wget https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.ubuntu1804.amd64.deb.sha256sum.txt

安装

代码语言:javascript
复制
sudo dpkg -i nebula-graph-3.6.0.ubuntu1804.amd64.deb

启动服务

代码语言:javascript
复制
sudo /usr/local/nebula/scripts/nebula.service start all
​
# 查看状态
sudo /usr/local/nebula/scripts/nebula.service status all

注意:安装需要调整一部分内核参数,官方把这部分内容放到配置与日志部分,没有放到安装部分,如果不调整会有警告报错,影响后续使用。官方文档

3.3.2、docker-compose安装

docker-compose部署方式可以快速实现一套单机集群环境,适合资源不充裕的公司测试环境使用。具有一定的高可用能力,可以用来模拟生产环境,已经测试单点故障。

首先安装docker,docker-compose,参考docker官方文档即可。

clone项目代码

代码语言:javascript
复制
$ git clone -b release-3.6 https://github.com/vesoft-inc/nebula-docker-compose.git

启动应用

这个过程中,会自动拉取镜像,需要耐心等待

代码语言:javascript
复制
cd nebula-docker-compose/
docker-compose up -d

拉取镜像中,耐心等等

服务已经启动

3.3.3、k8s安装

这个安装首先你要有一套k8s并且k8s上有storageClass,NebulaGraph基于k8s部署,高可用能力直接拉满,但是占用资源较多,建议在生产环境使用。

我这边使用的是一套二进制部署的k8s平台,rook拉起的一套ceph集群(建议使用高性能ssd,我这没有凑合用)。

安装

代码语言:javascript
复制
#创建namespace
kubectl create namespace nebula
​
#添加repo
helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts
​
#更新资源
helm repo update nebula-operator
​
#设置环境变量
# NebulaGraph 集群的名字。
export NEBULA_CLUSTER_NAME=nebula
# NebulaGraph 集群所处的命名空间的名字。
export NEBULA_CLUSTER_NAMESPACE=nebula    
# NebulaGraph 集群的 StorageClass根据实际填写
export STORAGE_CLASS_NAME=rook-ceph-block 
​
#创建集群
helm install "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \
​
    # 指定集群 chart 的版本,不指定则默认安装最新版本 chart。
    # 执行 helm search repo -l nebula-operator/nebula-cluster 命令可查看所有 chart 版本。
    --version=1.7.3 \
    # 指定 NebulaGraph 集群所处的命名空间。
    --namespace="${NEBULA_CLUSTER_NAMESPACE}" \
    # 自定义集群名称。
    --set nameOverride="${NEBULA_CLUSTER_NAME}" \
    --set nebula.storageClassName="${STORAGE_CLASS_NAME}" \
    # 指定 NebulaGraph 集群的版本。
    --set nebula.version=v3.6.0 
​
查看pod状态
kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}"

Pod状态已经正常

四、结语

首先官方文档非常稳,所有安装过程,参照官方文档均可正常完成安装。建议增加docker的多机集群部署方式。不是docker-compose哦。

我也是刚刚接触NebulaGraph,希望能通过这篇文章帮助想要入坑NebulaGraph的小伙伴能快速的部署一套环境出来。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、NebulaGraph介绍
    • 1.1、介绍
      • 二、NebulaGraph支持的安装方式以及对比
        • 2.1、编译安装
        • 2.2、使用docker编译安装
        • 2.3、本地单机安装
        • 2.4、本地多机安装
        • 2.5、docker-compose安装
        • 2.6、k8s安装
        • 2.7、对比
      • 三、NebulaGraph安装方式选择以及安装
        • 3.1、操作系统选择
        • 3.2、安装方式选择
        • 3.3、安装过程
      • 四、结语
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档