使用 Docker 构建 Nebula Graph 源码
Nebula Graph 介绍
Nebula Graph 是开源的高性能分布式图数据库。项目使用 C++ 语言开发,cmake
工具构建。其中两个重要的依赖是 Facebook 的 Thrift RPC 框架和 folly 库.
由于项目采用了 C++ 14 标准开发,需要使用较新版本的编译器和一些三方库。虽然 Nebula Graph 官方给出了一份开发者构建指南,但是在本地构建完整的编译环境依然不是一件轻松的事。
开发环境构建
Nebula Graph 依赖较多,且一些第三方库需本地编译安装,为了方便开发者本地编译项目源码, Nebula Graph 官方为大家提供了一个预安装所有依赖的 docker 镜像)。开发者只需如下的三步即可快速的编译 Nebula Graph 工程,参与 Nebula Graph 的开源贡献:
- 本地安装好 Docker
- 将
vesoft/nebula-dev
镜像pull
到本地
$ docker pull vesoft/nebula-dev
- 运行
Docker
并挂载 Nebula 源码目录到容器的/home/nebula
目录
$ docker run --rm -ti -v {nebula-root-path}:/home/nebula vesoft/nebula-dev bash
感谢社区伙伴@阿东 提的建议,把上面的 {nebula-root-path} 替换成你 Nebula Graph 实际 clone 的目录
为了避免每次退出 docker 容器之后,重新键入上述的命令,我们在 vesoft-inc/nebula-dev-docker 中提供了一个简单的 build.sh
脚本,可通过 ./build.sh /path/to/nebula/root/
进入容器。
- 使用
cmake
构建 Nebula 工程
docker> mkdir _build && cd _build docker> cmake .. && make -j2 docker> ctest # 执行单元测试
提醒
Nebula 项目目前主要采用静态依赖的方式编译,加上附加的一些调试信息,所以生产的一些可执行文件会比较占用磁盘空间,建议小伙伴预留 20G 以上的空闲空间给 Nebula 目录 :)
Docker 加速小 Tips
由于 Docker 镜像文件存储在国外,在 pull 过程中会遇到速度过慢的问题,这里 Nebula Graph 提供一种加速 pull 的方法:通过配置国内地址解决,例如:
- Azure 中国镜像 https://dockerhub.azk8s.cn
- 七牛云 https://reg-mirror.qiniu.com
Linux 小伙伴可在 /etc/docker/daemon.json
中加入如下内容(若文件不存在,请新建该文件)
{ "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com" ] }
macOS 小伙伴请点击 Docker Desktop 图标 -> Preferences -> Daemon -> Registry mirrors
。 在列表中添加 https://dockerhub.azk8s.cn
和 https://reg-mirror.qiniu.com
。修改后,点击 Apply & Restart 按钮, 重启 Docker。
Nebula Graph 社区
Nebula Graph 社区是由一群爱好图数据库,共同推进图数据库发展的开发者构成的社区。
本文由 Nebula Graph 社区 Committer 伊兴路贡献,也欢迎阅读本文的你参与到 Nebula Graph 的开发,或向 Nebula Graph 投稿。
附录
Nebula Graph:一个开源的分布式图数据库。
GitHub:https://github.com/vesoft-inc/nebula
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java上传csv文件踩坑记
前言 最近在做交通优化分析工具的产品时,有一个需求是用户上传一份包含路段信息的csv文件,后端需要解析csv的文件内容并将信息插入数据库中。这是一个常规的操作,也不复杂,但是在实现的过程中却踩到了一个utf-8 BOM的坑,随手记录一下。 实现方式 完整的实现方式如下: 在spring中通过MultipartFile file这个对象来接受前端传过来的文件 获取file对象的InputStream输入流 将上一步的输入流和定义好的DTO对象传给opencsv的CsvToBeanBuilder方法, CsvToBeanBuilder方法会自动解析输入流中的内容并生成对应的DTO List 最后根据业务需求,生成相应的DO对象存入数据库 前面有坑 csv文件样例: path_id,path_name 1,文一路 2,文二路 DTO定义: @Data publ
- 下一篇
ASP.NET Core on K8S深入学习(9)Secret & Configmap
一、Secret 1.1 关于Secret 在应用启动过程中需要一些敏感信息,比如数据库用户名、密码,如果直接明文存储在容器镜像中是不安全的,K8S提供的方案是Secret。 Secret 会以密文的方式存储数据,避免了直接在配置文件中保存敏感信息。 Secret 会以 Volume 的形式被 mount 到 Pod,容器可通过文件的方式使用 Secret 中的敏感数据,也可以使用环境变量的方式使用。 1.2 创建与查看Secret 这里假设我们要创建一个包含以下信息的Secret: (1)用户名:Edison (2)密码:EDC123456* 有4种方法来创建Secret: (1)通过 --from-literal: kubectl create secret generic mysecret --from-literal=username=Edison --from-literal=password=EDC123456* PS:每个--from-literal对应一个信息条目 (2)通过 --from-file: echo -n Edison > ./username e...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境