From a1013b771dabbe550676316bdc5bd3bb239bd6d5 Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Tue, 23 Nov 2021 19:07:11 +0800 Subject: [PATCH] add whitespace --- docs-2.0/14.client/1.nebula-client.md | 12 +- docs-2.0/14.client/3.nebula-cpp-client.md | 39 +++--- docs-2.0/14.client/4.nebula-java-client.md | 21 ++- docs-2.0/14.client/5.nebula-python-client.md | 32 ++--- docs-2.0/14.client/6.nebula-go-client.md | 12 +- docs-2.0/15.contribution/how-to-contribute.md | 62 ++++----- docs-2.0/20.appendix/0.FAQ.md | 131 +++++++++--------- docs-2.0/20.appendix/6.eco-tool-version.md | 70 +++++----- docs-2.0/20.appendix/releasenote.md | 3 +- docs-2.0/20.appendix/write-tools.md | 9 +- .../1.resource-preparations.md | 114 ++++++++------- ...bula-graph-by-compiling-the-source-code.md | 66 ++++----- .../2.install-nebula-graph-by-rpm-or-deb.md | 2 +- ...deploy-nebula-graph-with-docker-compose.md | 82 +++++------ .../4.install-nebula-graph-from-tar.md | 22 +-- .../deploy-nebula-graph-cluster.md | 52 +++---- .../upgrade-nebula-from-200-to-latest.md | 28 ++-- .../upgrade-nebula-graph-to-latest.md | 85 ++++++------ .../4.uninstall-nebula-graph.md | 38 ++--- .../1.text-based-index-restrictions.md | 18 +-- .../6.deploy-text-based-index/2.deploy-es.md | 18 ++- .../3.deploy-listener.md | 57 ++++---- .../connect-to-nebula-graph.md | 2 +- .../deploy-license.md | 46 +++--- .../manage-service.md | 2 +- .../1.configurations/1.configurations.md | 46 +++--- .../1.configurations/2.meta-config.md | 54 ++++---- .../1.configurations/3.graph-config.md | 76 +++++----- .../1.configurations/4.storage-config.md | 98 ++++++------- .../1.configurations/6.kernel-config.md | 41 +++--- .../2.log-management/logs.md | 28 ++-- .../1.query-performance-metrics.md | 29 ++-- .../1.authentication/1.authentication.md | 20 +-- .../1.authentication/2.management-user.md | 19 ++- .../1.authentication/3.role-list.md | 30 ++-- .../1.authentication/4.ldap.md | 46 +++--- .../2.backup-restore/1.what-is-br.md | 86 ++++++------ .../2.backup-restore/2.compile-br.md | 10 +- .../2.backup-restore/3.br-backup-data.md | 22 +-- .../2.backup-restore/4.br-restore-data.md | 17 ++- docs-2.0/7.data-security/3.manage-snapshot.md | 27 ++-- docs-2.0/7.data-security/4.ssl.md | 36 ++--- docs-2.0/7.data-security/5.zone.md | 64 ++++----- docs-2.0/8.service-tuning/2.graph-modeling.md | 28 ++-- docs-2.0/8.service-tuning/3.system-design.md | 14 +- docs-2.0/8.service-tuning/4.plan.md | 5 +- docs-2.0/8.service-tuning/compaction.md | 32 ++--- docs-2.0/8.service-tuning/load-balance.md | 40 +++--- docs-2.0/8.service-tuning/practice.md | 18 +-- docs-2.0/8.service-tuning/super-node.md | 20 +-- 50 files changed, 953 insertions(+), 976 deletions(-) diff --git a/docs-2.0/14.client/1.nebula-client.md b/docs-2.0/14.client/1.nebula-client.md index c97eae8a9e6..ced474b3599 100644 --- a/docs-2.0/14.client/1.nebula-client.md +++ b/docs-2.0/14.client/1.nebula-client.md @@ -1,17 +1,17 @@ # 客户端介绍 -Nebula Graph提供多种类型客户端,便于用户连接、管理Nebula Graph图数据库。 +Nebula Graph 提供多种类型客户端,便于用户连接、管理 Nebula Graph 图数据库。 -- [Nebula Console](../2.quick-start/3.connect-to-nebula-graph.md):原生CLI客户端 +- [Nebula Console](../2.quick-start/3.connect-to-nebula-graph.md):原生 CLI 客户端 - [Nebula CPP](3.nebula-cpp-client.md):C++客户端 -- [Nebula Java](4.nebula-java-client.md):Java客户端 +- [Nebula Java](4.nebula-java-client.md):Java 客户端 -- [Nebula Python](5.nebula-python-client.md):Python客户端 +- [Nebula Python](5.nebula-python-client.md):Python 客户端 -- [Nebula Go](6.nebula-go-client.md):Go客户端 +- [Nebula Go](6.nebula-go-client.md):Go 客户端 !!! note - 除Nebula Java之外,其他客户端暂不支持线程安全(thread-safe)。 + 除 Nebula Java 之外,其他客户端暂不支持线程安全(thread-safe)。 diff --git a/docs-2.0/14.client/3.nebula-cpp-client.md b/docs-2.0/14.client/3.nebula-cpp-client.md index 8113debff80..1ba38bfd5c2 100644 --- a/docs-2.0/14.client/3.nebula-cpp-client.md +++ b/docs-2.0/14.client/3.nebula-cpp-client.md @@ -1,26 +1,26 @@ # Nebula CPP -[Nebula CPP](https://github.com/vesoft-inc/nebula-cpp/tree/{{cpp.branch}})是一款C++语言的客户端,可以连接、管理Nebula Graph图数据库。 +[Nebula CPP](https://github.com/vesoft-inc/nebula-cpp/tree/{{cpp.branch}}) 是一款 C++语言的客户端,可以连接、管理 Nebula Graph 图数据库。 ## 前提条件 -- 已安装C++,GCC版本为4.8及以上。 +- 已安装 C++,GCC 版本为 4.8 及以上。 -- 编译安装需要准备正确的编译环境,详情请参见[软硬件要求和安装三方库依赖包](../4.deployment-and-installation/1.resource-preparations.md)。 +- 编译安装需要准备正确的编译环境,详情请参见 [软硬件要求和安装三方库依赖包](../4.deployment-and-installation/1.resource-preparations.md)。 ## 版本对照表 -|Nebula Graph版本|Nebula CPP版本| +|Nebula Graph 版本|Nebula CPP 版本| |:---|:---| |{{ nebula.release }}|{{cpp.release}}| |2.0.1|2.0.0| |2.0.0|2.0.0| -## 安装Nebula CPP +## 安装 Nebula CPP -1. 克隆Nebula CPP源码到机器。 +1. 克隆 Nebula CPP 源码到机器。 - - (推荐)如果需要安装指定版本的Nebula CPP,请使用选项`--branch`指定分支。例如安装v{{ cpp.release }}发布版本,请执行如下命令: + - (推荐)如果需要安装指定版本的 Nebula CPP,请使用选项`--branch`指定分支。例如安装 v{{ cpp.release }}发布版本,请执行如下命令: ```bash $ git clone --branch v{{ cpp.release }} https://github.com/vesoft-inc/nebula-cpp.git @@ -32,19 +32,19 @@ $ git clone https://github.com/vesoft-inc/nebula-cpp.git ``` -2. 进入目录nebula-cpp。 +2. 进入目录 nebula-cpp。 ```bash $ cd nebula-cpp ``` -3. 创建目录build并进入该目录。 +3. 创建目录 build 并进入该目录。 ```bash $ mkdir build && cd build ``` -4. 使用CMake生成makefile文件。 +4. 使用 CMake 生成 makefile 文件。 !!! Note @@ -56,17 +56,17 @@ !!! note - 如果g++不支持c++11,请添加选项`-DDISABLE_CXX11_ABI=ON`。 + 如果 g++不支持 c++11,请添加选项`-DDISABLE_CXX11_ABI=ON`。 -5. 编译Nebula CPP。 +5. 编译 Nebula CPP。 - 为了适当地加快编译速度,可以使用选项`-j`并行编译。并行数量`N`建议为$\min(\text{CPU}核数,\frac{内存(GB)}{2})$。 + 为了适当地加快编译速度,可以使用选项`-j`并行编译。并行数量`N`建议为$\min(\text{CPU}核数,\frac{内存 (GB)}{2})$。 ```bash $ make -j{N} ``` -6. 安装Nebula CPP。 +6. 安装 Nebula CPP。 ```bash $ sudo make install @@ -80,9 +80,9 @@ ## 使用方法 -将CPP文件编译为可执行文件即可。接下来以`SessionExample.cpp`为例,介绍如何操作。 +将 CPP 文件编译为可执行文件即可。接下来以`SessionExample.cpp`为例,介绍如何操作。 -1. 使用[示例代码](https://github.com/vesoft-inc/nebula-cpp/blob/master/examples/SessionExample.cpp)创建`SessionExample.cpp`文件。 +1. 使用 [示例代码](https://github.com/vesoft-inc/nebula-cpp/blob/master/examples/SessionExample.cpp) 创建`SessionExample.cpp`文件。 2. 编译文件,命令如下: @@ -90,9 +90,9 @@ $ LIBRARY_PATH=:$LIBRARY_PATH g++ -std=c++11 SessionExample.cpp -I -lnebula_graph_client -o session_example ``` - - `library_folder_path`:Nebula Graph动态库文件存储路径,默认为`/usr/local/nebula/lib64`。 + - `library_folder_path`:Nebula Graph 动态库文件存储路径,默认为`/usr/local/nebula/lib64`。 - - `include_folder_path`:Nebula Graph头文件存储路径,默认为`/usr/local/nebula/include`。 + - `include_folder_path`:Nebula Graph 头文件存储路径,默认为`/usr/local/nebula/include`。 示例: @@ -102,7 +102,7 @@ ### 核心代码 -详细示例请参见[SessionExample](https://github.com/vesoft-inc/nebula-cpp/blob/master/examples/SessionExample.cpp)。 +详细示例请参见 [SessionExample](https://github.com/vesoft-inc/nebula-cpp/blob/master/examples/SessionExample.cpp)。 ```C++ nebula::init(&argc, &argv); @@ -121,4 +121,3 @@ session.asyncExecute("SHOW HOSTS", [&complete](nebula::ExecutionResponse&& cbRes }); session.release(); ``` - diff --git a/docs-2.0/14.client/4.nebula-java-client.md b/docs-2.0/14.client/4.nebula-java-client.md index a68f665e8e3..662c0c4bc1a 100644 --- a/docs-2.0/14.client/4.nebula-java-client.md +++ b/docs-2.0/14.client/4.nebula-java-client.md @@ -1,23 +1,23 @@ # Nebula Java -[Nebula Java](https://github.com/vesoft-inc/nebula-java/tree/{{ java.branch }})是一款Java语言的客户端,可以连接、管理Nebula Graph图数据库。 +[Nebula Java](https://github.com/vesoft-inc/nebula-java/tree/{{ java.branch }}) 是一款 Java 语言的客户端,可以连接、管理 Nebula Graph 图数据库。 ## 前提条件 -已安装Java,版本为8.0及以上。 +已安装 Java,版本为 8.0 及以上。 ## 版本对照表 -|Nebula Graph版本|Nebula Java版本| +|Nebula Graph 版本|Nebula Java 版本| |:---|:---| |{{ nebula.release }}|{{java.release}}| |2.0.1|2.0.0| |2.0.0|2.0.0| |2.0.0-rc1|2.0.0-rc1| -## 下载Nebula Java +## 下载 Nebula Java -- (推荐)如果需要使用指定版本的Nebula Java,请使用选项`--branch`指定分支。例如使用v{{ java.release }}发布版本,请执行如下命令: +- (推荐)如果需要使用指定版本的 Nebula Java,请使用选项`--branch`指定分支。例如使用 v{{ java.release }}发布版本,请执行如下命令: ```bash $ git clone --branch v{{ java.release }} https://github.com/vesoft-inc/nebula-java.git @@ -35,11 +35,11 @@ 建议一个线程使用一个会话,如果多个线程使用同一个会话,会降低效率。 -使用IDEA等工具导入Maven项目,请在`pom.xml`中添加如下依赖: +使用 IDEA 等工具导入 Maven 项目,请在`pom.xml`中添加如下依赖: !!! note - `2.0.0-SNAPSHOT`为日常研发版本,可能存在未知问题,建议使用release版本号替换`2.0.0-SNAPSHOT`。 + `2.0.0-SNAPSHOT`为日常研发版本,可能存在未知问题,建议使用 release 版本号替换`2.0.0-SNAPSHOT`。 ```bash @@ -49,7 +49,7 @@ ``` -如果无法下载日常研发版本的依赖,请在`pom.xml`中添加如下内容(release版本不需要添加): +如果无法下载日常研发版本的依赖,请在`pom.xml`中添加如下内容(release 版本不需要添加): ```bash @@ -60,11 +60,11 @@ ``` -如果没有Maven管理项目,请手动[下载JAR包](https://repo1.maven.org/maven2/com/vesoft/)进行安装。 +如果没有 Maven 管理项目,请手动 [下载 JAR 包](https://repo1.maven.org/maven2/com/vesoft/) 进行安装。 ### 核心代码 -详细示例请参见[GraphClientExample](https://github.com/vesoft-inc/nebula-java/blob/master/examples/src/main/java/com/vesoft/nebula/examples/GraphClientExample.java)。 +详细示例请参见 [GraphClientExample](https://github.com/vesoft-inc/nebula-java/blob/master/examples/src/main/java/com/vesoft/nebula/examples/GraphClientExample.java)。 ```java NebulaPool pool = new NebulaPool(); @@ -82,7 +82,6 @@ try { String createSpace = "CREATE SPACE IF NOT EXISTS " + space + " (partition_num=15, replica_factor=1, vid_type=fixed_string(30)); "; ResultSet resp = session.execute(createSpace); - //create schema String createSchema = "USE " + space + "; CREATE TAG IF NOT EXISTS person(name string, age int);" + "CREATE EDGE IF NOT EXISTS like(likeness double)"; diff --git a/docs-2.0/14.client/5.nebula-python-client.md b/docs-2.0/14.client/5.nebula-python-client.md index 5b324e028fb..264484a3932 100644 --- a/docs-2.0/14.client/5.nebula-python-client.md +++ b/docs-2.0/14.client/5.nebula-python-client.md @@ -1,23 +1,23 @@ # Nebula Python -[Nebula Python](https://github.com/vesoft-inc/nebula-python)是一款Python语言的客户端,可以连接、管理Nebula Graph图数据库。 +[Nebula Python](https://github.com/vesoft-inc/nebula-python) 是一款 Python 语言的客户端,可以连接、管理 Nebula Graph 图数据库。 ## 前提条件 -已安装Python,版本为3.5及以上。 +已安装 Python,版本为 3.5 及以上。 ## 版本对照表 -|Nebula Graph版本|Nebula Python版本| +|Nebula Graph 版本|Nebula Python 版本| |:---|:---| |{{ nebula.release }}|{{python.release}}| |2.0.1|2.0.0| |2.0.0|2.0.0| |2.0.0-rc1|2.0.0rc1| -## 安装Nebula Python +## 安装 Nebula Python -### pip安装 +### pip 安装 ```bash $ pip install nebula2-python== @@ -25,9 +25,9 @@ $ pip install nebula2-python== ### 克隆源码安装 -1. 克隆Nebula Python源码到机器。 +1. 克隆 Nebula Python 源码到机器。 - - (推荐)如果需要安装指定版本的Nebula Python,请使用选项`--branch`指定分支。例如安装v{{ python.release }}发布版本,请执行如下命令: + - (推荐)如果需要安装指定版本的 Nebula Python,请使用选项`--branch`指定分支。例如安装 v{{ python.release }}发布版本,请执行如下命令: ```bash $ git clone --branch v{{ python.release }} https://github.com/vesoft-inc/nebula-python.git @@ -39,7 +39,7 @@ $ pip install nebula2-python== $ git clone https://github.com/vesoft-inc/nebula-python.git ``` -2. 进入目录nebula-python。 +2. 进入目录 nebula-python。 ```bash $ cd nebula-python @@ -53,9 +53,9 @@ $ pip install nebula2-python== ## 核心代码 -详细示例请参见[Example](https://github.com/vesoft-inc/nebula-python/tree/master/example)。 +详细示例请参见 [Example](https://github.com/vesoft-inc/nebula-python/tree/master/example)。 -### 连接Graph服务 +### 连接 Graph 服务 ```python # 定义配置 @@ -63,24 +63,24 @@ config = Config() config.max_connection_pool_size = 10 # 初始化连接池 connection_pool = ConnectionPool() -# 如果给定的服务器正常,则返回true,否则返回false。 +# 如果给定的服务器正常,则返回 true,否则返回 false。 ok = connection_pool.init([('192.168.xx.1', 9669)], config) -# 方法1:控制连接自行释放。 +# 方法 1:控制连接自行释放。 # 从连接池中获取会话 session = connection_pool.get_session('root', 'nebula') # 选择图空间 session.execute('USE basketballplayer') -# 执行查看TAG命令 +# 执行查看 TAG 命令 result = session.execute('SHOW TAGS') print(result) # 释放会话 session.release() -# 方法2:使用session_context,会话将被自动释放。 +# 方法 2:使用 session_context,会话将被自动释放。 with connection_pool.session_context('root', 'nebula') as session: session.execute('USE basketballplayer;') result = session.execute('SHOW TAGS;') @@ -90,10 +90,10 @@ with connection_pool.session_context('root', 'nebula') as session: connection_pool.close() ``` -### 连接Storage服务 +### 连接 Storage 服务 ```python -# 设置所有Meta服务地址 +# 设置所有 Meta 服务地址 meta_cache = MetaCache([('192.168.xx.1', 9559), ('192.168.xx.2', 9559), ('192.168.xx.3', 9559)], diff --git a/docs-2.0/14.client/6.nebula-go-client.md b/docs-2.0/14.client/6.nebula-go-client.md index 1eb7fbe55c1..2da1e6c6d5b 100644 --- a/docs-2.0/14.client/6.nebula-go-client.md +++ b/docs-2.0/14.client/6.nebula-go-client.md @@ -1,22 +1,22 @@ # Nebula Go -[Nebula Go](https://github.com/vesoft-inc/nebula-go/tree/{{go.branch}})是一款Go语言的客户端,可以连接、管理Nebula Graph图数据库。 +[Nebula Go](https://github.com/vesoft-inc/nebula-go/tree/{{go.branch}}) 是一款 Go 语言的客户端,可以连接、管理 Nebula Graph 图数据库。 ## 前提条件 -已安装Go,版本为1.13及以上。 +已安装 Go,版本为 1.13 及以上。 ## 版本对照表 -|Nebula Graph版本|Nebula Go版本| +|Nebula Graph 版本|Nebula Go 版本| |:---|:---| |{{ nebula.release }}|{{go.release}}| |2.0.1|2.0.0-GA| |2.0.0|2.0.0-GA| -## 下载Nebula Go +## 下载 Nebula Go -- (推荐)如果需要下载指定版本的Nebula Go,请使用选项`--branch`指定分支。例如安装v{{ go.release }}发布版本,请执行如下命令: +- (推荐)如果需要下载指定版本的 Nebula Go,请使用选项`--branch`指定分支。例如安装 v{{ go.release }}发布版本,请执行如下命令: ```bash $ git clone --branch v{{ go.release }} https://github.com/vesoft-inc/nebula-go.git @@ -40,7 +40,7 @@ $ go get -u -v github.com/vesoft-inc/nebula-go@ ## 核心代码 -详细示例请参见[graph_client_basic_example](https://github.com/vesoft-inc/nebula-go/blob/master/basic_example/graph_client_basic_example.go)和[graph_client_goroutines_example](https://github.com/vesoft-inc/nebula-go/blob/master/gorountines_example/graph_client_goroutines_example.go)。 +详细示例请参见 [graph_client_basic_example](https://github.com/vesoft-inc/nebula-go/blob/master/basic_example/graph_client_basic_example.go) 和 [graph_client_goroutines_example](https://github.com/vesoft-inc/nebula-go/blob/master/gorountines_example/graph_client_goroutines_example.go)。 ```bash const ( diff --git a/docs-2.0/15.contribution/how-to-contribute.md b/docs-2.0/15.contribution/how-to-contribute.md index 3c1afbe7384..757427511a0 100644 --- a/docs-2.0/15.contribution/how-to-contribute.md +++ b/docs-2.0/15.contribution/how-to-contribute.md @@ -2,23 +2,23 @@ ## 开始之前 -### github或社区提交问题 +### github 或社区提交问题 -欢迎为项目贡献任何代码或文档,但是建议先在[github](https://github.com/vesoft-inc/nebula)或[社区](https://discuss.nebula-graph.io/)上提交一个问题,和大家共同讨论。 +欢迎为项目贡献任何代码或文档,但是建议先在 [github](https://github.com/vesoft-inc/nebula) 或 [社区](https://discuss.nebula-graph.io/) 上提交一个问题,和大家共同讨论。 ### 签署贡献者许可协议(CLA) -什么是[CLA](https://www.apache.org/licenses/contributor-agreements.html)? +什么是 [CLA](https://www.apache.org/licenses/contributor-agreements.html)? 签署协议链接:[vesoft inc. Contributor License Agreement](https://cla-assistant.io/vesoft-inc/) -单击按钮**Sign in with GitHub to agree**签署协议。 +单击按钮** Sign in with GitHub to agree **签署协议。 如果有任何问题,请发送邮件至`info@vesoft.com`。 ## 修改单篇文档 -Nebula Graph文档以Markdown语言编写。单击文档标题右侧的铅笔图标即可提交修改建议。 +Nebula Graph 文档以 Markdown 语言编写。单击文档标题右侧的铅笔图标即可提交修改建议。 该方法仅适用于修改单篇文档。 @@ -26,13 +26,13 @@ Nebula Graph文档以Markdown语言编写。单击文档标题右侧的铅笔图 该方法适用于贡献代码、批量修改多篇文档或者新增文档。 -### Step 1:通过GitHub fork仓库 +### Step 1:通过 GitHub fork 仓库 -Nebula Graph项目有很多[仓库](https://github.com/vesoft-inc),以[nebula-graph仓库](https://github.com/vesoft-inc/nebula)为例: +Nebula Graph 项目有很多 [仓库](https://github.com/vesoft-inc),以 [nebula-graph 仓库](https://github.com/vesoft-inc/nebula) 为例: -1. 访问[https://github.com/vesoft-inc/nebula](https://github.com/vesoft-inc/nebula)。 +1. 访问 [https://github.com/vesoft-inc/nebula](https://github.com/vesoft-inc/nebula)。 -2. 在右上角单击按钮`Fork`,然后单击用户名,即可fork出nebula-graph仓库。 +2. 在右上角单击按钮`Fork`,然后单击用户名,即可 fork 出 nebula-graph 仓库。 ### Step 2:将分支克隆到本地 @@ -43,10 +43,10 @@ Nebula Graph项目有很多[仓库](https://github.com/vesoft-inc),以[nebula- working_dir=$HOME/Workspace ``` -2. 将`user`设置为GitHub的用户名。 +2. 将`user`设置为 GitHub 的用户名。 ```bash - user={GitHub用户名} + user={GitHub 用户名} ``` 3. 克隆代码。 @@ -73,18 +73,18 @@ Nebula Graph项目有很多[仓库](https://github.com/vesoft-inc),以[nebula- git remote -v ``` -4. (可选)定义pre-commit hook。 +4. (可选)定义 pre-commit hook。 - 请将Nebula Graph的pre-commit hook连接到`.git`目录。 + 请将 Nebula Graph 的 pre-commit hook 连接到`.git`目录。 - hook将检查commit,包括格式、构建、文档生成等。 + hook 将检查 commit,包括格式、构建、文档生成等。 ```bash cd $working_dir/nebula-graph/.git/hooks ln -s $working_dir/nebula-graph/.linters/cpp/hooks/pre-commit.sh . ``` - pre-commit hook有时候可能无法正常执行,用户必须手动执行。 + pre-commit hook 有时候可能无法正常执行,用户必须手动执行。 ```bash cd $working_dir/nebula-graph/.git/hooks @@ -110,8 +110,8 @@ Nebula Graph项目有很多[仓库](https://github.com/vesoft-inc),以[nebula- !!! Note - 由于一个PR通常包含多个commits,最终合入upstream/master分支时,我们会将这些commits挤压(squash)成一个commit进行合并。因此强烈建议创建一个独立的分支进行更改,这样在合入时才容易被挤压。合并后,这个分支可以被丢弃。如果未创建单独的分支,而是直接将commits提交至origin/master,在合入时,可能会出现问题。 - 若未创建单独的分支(或是origin/master合并了其他的分支等),导致origin/master和upstream/master不一致时,用户可以使用hard reset强制两者进行一致。例如: + 由于一个 PR 通常包含多个 commits,最终合入 upstream/master 分支时,我们会将这些 commits 挤压(squash)成一个 commit 进行合并。因此强烈建议创建一个独立的分支进行更改,这样在合入时才容易被挤压。合并后,这个分支可以被丢弃。如果未创建单独的分支,而是直接将 commits 提交至 origin/master,在合入时,可能会出现问题。 + 若未创建单独的分支(或是 origin/master 合并了其他的分支等),导致 origin/master 和 upstream/master 不一致时,用户可以使用 hard reset 强制两者进行一致。例如: ```bash git fetch upstream @@ -124,15 +124,15 @@ Nebula Graph项目有很多[仓库](https://github.com/vesoft-inc),以[nebula- - 代码风格 - **Nebula Graph**采用`cpplint`来确保代码符合Google的代码风格指南。检查器将在提交代码之前执行。 + **Nebula Graph **采用`cpplint`来确保代码符合 Google 的代码风格指南。检查器将在提交代码之前执行。 - 单元测试要求 - 请为新功能或Bug修复添加单元测试。 + 请为新功能或 Bug 修复添加单元测试。 - 构建代码时开启单元测试 - 详情请参见[使用源码安装Nebula Graph](../4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。 + 详情请参见 [使用源码安装 Nebula Graph](../4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。 !!! Note @@ -150,12 +150,12 @@ Nebula Graph项目有很多[仓库](https://github.com/vesoft-inc),以[nebula- ### Step 5:保持分支同步 ```bash -# 当处于myfeature分支时。 +# 当处于 myfeature 分支时。 git fetch upstream git rebase upstream/master ``` -在其他贡献者将PR合并到基础分支之后,用户需要更新head分支。 +在其他贡献者将 PR 合并到基础分支之后,用户需要更新 head 分支。 ### Step 6:Commit @@ -169,31 +169,31 @@ git commit -a ### Step 7:Push -需要审核或离线备份代码时,可以将本地仓库创建的分支push到GitHub的远程仓库。 +需要审核或离线备份代码时,可以将本地仓库创建的分支 push 到 GitHub 的远程仓库。 ```bash git push origin myfeature ``` -### Step 8:创建pull request +### Step 8:创建 pull request -1. 访问fork出的仓库`https://github.com/$user/nebula-graph` (替换此处的用户名`$user`)。 +1. 访问 fork 出的仓库`https://github.com/$user/nebula-graph` (替换此处的用户名`$user`)。 2. 单击`myfeature`分支旁的按钮`Compare & pull request`。 ### Step 9:代码审查 -pull request创建后,至少需要两人审查。审查人员将进行彻底的代码审查,以确保变更满足存储库的贡献准则和其他质量标准。 +pull request 创建后,至少需要两人审查。审查人员将进行彻底的代码审查,以确保变更满足存储库的贡献准则和其他质量标准。 ## 添加测试用例 -添加测试用例的方法参见[How to add test cases](https://github.com/vesoft-inc/nebula/blob/master/tests/README.md#how-to-add-test-case)。 +添加测试用例的方法参见 [How to add test cases](https://github.com/vesoft-inc/nebula/blob/master/tests/README.md#how-to-add-test-case)。 ## 捐赠项目 ### Step 1:确认项目捐赠 -通过邮件、微信、Slack等方式联络Nebula Graph官方人员,确认捐赠项目一事。项目将被捐赠至Nebula Contrib组织下。 +通过邮件、微信、Slack 等方式联络 Nebula Graph 官方人员,确认捐赠项目一事。项目将被捐赠至 Nebula Contrib 组织下。 邮件地址:info@vesoft.com @@ -203,10 +203,10 @@ Slack:[Join Slack](https://join.slack.com/t/nebulagraph/shared_invite/zt-7ybej ### Step 2:获取项目接收人信息 -由Nebula Graph官方人员给出Nebula Contrib的项目接收者ID。 +由 Nebula Graph 官方人员给出 Nebula Contrib 的项目接收者 ID。 ### Step 3:捐赠项目 -由您将项目转移至本次捐赠的项目接受人,并由项目接收者将该项目转移至Nebula Contrib组织下。捐赠后,您将以Maintain角色继续主导社区项目的发展。 +由您将项目转移至本次捐赠的项目接受人,并由项目接收者将该项目转移至 Nebula Contrib 组织下。捐赠后,您将以 Maintain 角色继续主导社区项目的发展。 -GitHub上转移仓库的操作,请参见[Transferring a repository owned by your user account](https://docs.github.com/en/enterprise-server@3.0/github/administering-a-repository/managing-repository-settings/transferring-a-repository#transferring-a-repository-owned-by-your-user-account)。 +GitHub 上转移仓库的操作,请参见 [Transferring a repository owned by your user account](https://docs.github.com/en/enterprise-server@3.0/github/administering-a-repository/managing-repository-settings/transferring-a-repository#transferring-a-repository-owned-by-your-user-account)。 diff --git a/docs-2.0/20.appendix/0.FAQ.md b/docs-2.0/20.appendix/0.FAQ.md index 2c6635c0dbf..8d45379fdb8 100644 --- a/docs-2.0/20.appendix/0.FAQ.md +++ b/docs-2.0/20.appendix/0.FAQ.md @@ -1,30 +1,30 @@ # 常见问题 FAQ -本文列出了使用Nebula Graph {{ nebula.release }} 时可能遇到的常见问题,用户可以使用文档中心或者浏览器的搜索功能查找相应问题。 +本文列出了使用 Nebula Graph {{ nebula.release }} 时可能遇到的常见问题,用户可以使用文档中心或者浏览器的搜索功能查找相应问题。 -如果按照文中的建议无法解决问题,请到[Nebula Graph论坛](https://discuss.nebula-graph.com.cn/)提问或提交[GitHub issue](https://github.com/vesoft-inc/nebula/issues)。 +如果按照文中的建议无法解决问题,请到 [Nebula Graph 论坛](https://discuss.nebula-graph.com.cn/) 提问或提交 [GitHub issue](https://github.com/vesoft-inc/nebula/issues)。 ## 关于本手册 ### 为什么手册示例和系统行为不一致? -Nebula Graph一直在持续开发,功能或操作的行为可能会有变化,如果发现不一致,请提交[issue](https://github.com/vesoft-inc/nebula/issues/new)通知Nebula Graph团队。 +Nebula Graph 一直在持续开发,功能或操作的行为可能会有变化,如果发现不一致,请提交 [issue](https://github.com/vesoft-inc/nebula/issues/new) 通知 Nebula Graph 团队。 !!! note - 如果发现本文档中的错误: + 如果发现本文档中的错误: 1. 用户可以点击页面顶部右上角的"铅笔"图标进入编辑页面。 2. 使用 Markdown 修改文档。完成后点击页面底部的 "Commit changes",这会触发一个 GitHub pull request。 - 3. 完成[CLA签署](../15.contribution/how-to-contribute.md),并且至少2位reviewer审核通过即可合并。 + 3. 完成 [CLA 签署](../15.contribution/how-to-contribute.md),并且至少 2 位 reviewer 审核通过即可合并。 ## 关于历史兼容性 !!! compatibility "`X`版本兼容性" - Nebula Graph {{ nebula.release }} 与 历史版本 (包括 Nebula Graph 1.x 和 2.0-RC) 的数据格式、客户端通信协议均**双向不兼容**。 - 数据格式升级参见[升级 Nebula Graph 历史版本至当前版本](../4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-graph-to-latest.md)。 - 客户端与工具均需要[下载对应版本](../20.appendix/6.eco-tool-version.md)。 + Nebula Graph {{ nebula.release }} 与 历史版本 (包括 Nebula Graph 1.x 和 2.0-RC) 的数据格式、客户端通信协议均**双向不兼容**。 + 数据格式升级参见 [升级 Nebula Graph 历史版本至当前版本](../4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-graph-to-latest.md)。 + 客户端与工具均需要 [下载对应版本](../20.appendix/6.eco-tool-version.md)。 !!! compatibility "`Y`版本兼容性" @@ -32,43 +32,42 @@ Nebula Graph一直在持续开发,功能或操作的行为可能会有变化 ## 关于执行 -### 为什么Nebula Graph 2.6.0的返回结果每行之间没有横线分隔了? +### 为什么 Nebula Graph 2.6.0 的返回结果每行之间没有横线分隔了? -这是Nebula Console 2.6.0版本的变动造成的,不是Nebula Graph内核的变更,不影响返回数据本身的内容。 +这是 Nebula Console 2.6.0 版本的变动造成的,不是 Nebula Graph 内核的变更,不影响返回数据本身的内容。 ### 关于悬挂边 悬挂边 (Dangling edge) 是指一条边的起点或者终点在数据库中不存在。 -Nebula Graph {{ nebula.release }} 的数据模型中,异常情况下可能会存在"悬挂边";也没有 openCypher 中的 MERGE 语句。对于悬挂边的保证完全依赖应用层面。详见[INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md), [DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md), [INSERT EDGE](../3.ngql-guide/13.edge-statements/1.insert-edge.md), [DELETE EDGE](../3.ngql-guide/13.edge-statements/4.delete-edge.md)。 - +Nebula Graph {{ nebula.release }} 的数据模型中,异常情况下可能会存在"悬挂边";也没有 openCypher 中的 MERGE 语句。对于悬挂边的保证完全依赖应用层面。详见 [INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md), [DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md), [INSERT EDGE](../3.ngql-guide/13.edge-statements/1.insert-edge.md), [DELETE EDGE](../3.ngql-guide/13.edge-statements/4.delete-edge.md)。 ### 如何处理错误信息 `[ERROR (-1005)]: Used memory hits the high watermark(0.800000) of total system memory.` -报错原因:Nebula Graph的`system_memory_high_watermark_ratio`参数指定了内存高水位报警机制的触发阈值,默认为`0.8`。系统内存占用率高于该值会触发报警机制,Nebula Graph会停止接受查询。 +报错原因:Nebula Graph 的`system_memory_high_watermark_ratio`参数指定了内存高水位报警机制的触发阈值,默认为`0.8`。系统内存占用率高于该值会触发报警机制,Nebula Graph 会停止接受查询。 解决方案: * 清理系统内存,使其降低到阈值以下。 -* [修改Graph配置](../5.configurations-and-logs/1.configurations/1.configurations.md)。在所有Graph服务器的配置文件中增加`system_memory_high_watermark_ratio`参数,为其设置一个大于`0.8`的值,例如`0.9`。 +* [修改 Graph 配置](../5.configurations-and-logs/1.configurations/1.configurations.md)。在所有 Graph 服务器的配置文件中增加`system_memory_high_watermark_ratio`参数,为其设置一个大于`0.8`的值,例如`0.9`。 !!! note - 仅Graph服务支持`system_memory_high_watermark_ratio`,Storage和Meta服务不支持该参数。 + 仅 Graph 服务支持`system_memory_high_watermark_ratio`,Storage 和 Meta 服务不支持该参数。 ### 如何处理错误信息 `Storage Error E_RPC_FAILURE` -报错原因通常为Graph服务向Storage服务请求了过多的数据,导致Storage服务超时。请尝试以下解决方案: +报错原因通常为 Graph 服务向 Storage 服务请求了过多的数据,导致 Storage 服务超时。请尝试以下解决方案: -* [修改配置文件](../5.configurations-and-logs/1.configurations/3.graph-config.md): 在`nebula-graphd.conf`文件中修改`--storage_client_timeout_ms`参数的值,以增加Storage client的连接超时时间。该值的单位为毫秒(ms)。例如,设置`--storage_client_timeout_ms=60000`。如果`nebula-graphd.conf`文件中未配置该参数,请手动增加。提示:请在配置文件开头添加--local_config=true再重启服务。 +* [修改配置文件](../5.configurations-and-logs/1.configurations/3.graph-config.md): 在`nebula-graphd.conf`文件中修改`--storage_client_timeout_ms`参数的值,以增加 Storage client 的连接超时时间。该值的单位为毫秒(ms)。例如,设置`--storage_client_timeout_ms=60000`。如果`nebula-graphd.conf`文件中未配置该参数,请手动增加。提示:请在配置文件开头添加--local_config=true 再重启服务。 * 优化查询语句:减少全库扫描型的查询,无论是否用`LIMIT`限制了返回结果的数量;用 GO 语句改写 MATCH 语句(前者有优化,后者无优化)。 -* 检查Storaged是否发生过 OOM。(`dmesg |grep nebula`)。 -* 为 Storage 服务器提供性能更好的SSD或者内存。 +* 检查 Storaged 是否发生过 OOM。(`dmesg |grep nebula`)。 +* 为 Storage 服务器提供性能更好的 SSD 或者内存。 * 重试请求。 ### 如何处理错误信息 `The leader has changed. Try again later` -已知问题,通常需要重试 1-N 次(N==partition数量)。原因为 meta client 更新leader缓存需要1-2个心跳或者通过错误触发强制更新。 +已知问题,通常需要重试 1-N 次 (N==partition 数量)。原因为 meta client 更新 leader 缓存需要 1-2 个心跳或者通过错误触发强制更新。 ### 返回消息中 `time spent` 的含义是什么? @@ -88,13 +87,13 @@ Got 1 rows (time spent 1235/1934 us) - 第二个数字`1934`表示从客户端角度看所花费的时间,即从客户端发送请求、接收结果,然后在屏幕上显示结果所花费的时间。 -### 可以在`CREATE SPACE`时设置`replica_factor`为偶数(例如设置为2)吗? +### 可以在`CREATE SPACE`时设置`replica_factor`为偶数(例如设置为 2)吗? 不要这样设置。 Storage 服务使用 Raft 协议(多数表决),为保证可用性,要求出故障的副本数量不能达到一半。 -当机器数量为1时,`replica_factor`只能设置为`1`。 +当机器数量为 1 时,`replica_factor`只能设置为`1`。 当机器数量足够时,如果`replica_factor=2`,当其中一个副本故障时,就会导致系统无法正常工作;如果`replica_factor=4`,只能有一个副本可以出现故障,这和`replica_factor=3`是一样。以此类推,所以`replica_factor`设置为奇数即可。 @@ -104,7 +103,7 @@ Storage 服务使用 Raft 协议(多数表决),为保证可用性,要求 支持。 -详情请参见[终止查询](../3.ngql-guide/18.operation-and-maintenance-statements/6.kill-query.md)。 +详情请参见 [终止查询](../3.ngql-guide/18.operation-and-maintenance-statements/6.kill-query.md)。 ### 使用`GO`和`MATCH`执行相同语义的查询,查询结果为什么不同? @@ -114,33 +113,33 @@ Storage 服务使用 Raft 协议(多数表决),为保证可用性,要求 * `RETURN` 命令未指定排序方式。 -* 触发了Storage服务中`max_edge_returned_per_vertex`定义的稠密点截断限制。 +* 触发了 Storage 服务中`max_edge_returned_per_vertex`定义的稠密点截断限制。 * 路径的类型不同,导致查询结果可能会不同。 - `GO`语句采用的是`walk`类型,遍历时点和边可以重复。 - - `MATCH`语句兼容openCypher,采用的是`trail`类型,遍历时只有点可以重复,边不可以重复。 + - `MATCH`语句兼容 openCypher,采用的是`trail`类型,遍历时只有点可以重复,边不可以重复。 因路径类型不同导致查询结果不同的示例图和说明如下。 ![路径示例](../images/path1.png) -从点A开始查询距离5跳的点,都会查询到点C(`A->B->C->D->E->C`),查询6跳的点时,`GO`语句会查询到点D(`A->B->C->D->E->C->D`),因为边`C->D`可以重复查询,而`MATCH`语句查询为空,因为边不可以重复。 +从点 A 开始查询距离 5 跳的点,都会查询到点 C(`A->B->C->D->E->C`),查询 6 跳的点时,`GO`语句会查询到点 D(`A->B->C->D->E->C->D`),因为边`C->D`可以重复查询,而`MATCH`语句查询为空,因为边不可以重复。 所以使用`GO`和`MATCH`执行相同语义的查询,可能会出现`MATCH`语句的查询结果比`GO`语句少。 -关于路径的详细说明,请参见[维基百科](https://en.wikipedia.org/wiki/Path_(graph_theory)#Walk,_trail,_path)。 +关于路径的详细说明,请参见 [维基百科](https://en.wikipedia.org/wiki/Path_(graph_theory)#Walk,_trail,_path)。 ### 如何处理错误信息`[ERROR (-7)]: SyntaxError: syntax error near`? 大部分情况下,查询语句需要有`YIELD`或`RETURN`,请检查查询语句是否包含。 -### 如何统计每种Tag有多少个点,每个Edge type有多少条边? +### 如何统计每种 Tag 有多少个点,每个 Edge type 有多少条边? -请参见[show-stats](../3.ngql-guide/7.general-query-statements/6.show/14.show-stats.md)。 +请参见 [show-stats](../3.ngql-guide/7.general-query-statements/6.show/14.show-stats.md)。 -### 如何获取每种Tag的所有点,或者每种Edge type的所有边? +### 如何获取每种 Tag 的所有点,或者每种 Edge type 的所有边? 1. 建立并重建索引。 @@ -156,9 +155,9 @@ Storage 服务使用 Raft 协议(多数表决),为保证可用性,要求 > MATCH (n:player) RETURN n; ``` -更多详情请参见[INDEX](../3.ngql-guide/14.native-index-statements/1.create-native-index.md)、[LOOKUP](../3.ngql-guide/7.general-query-statements/5.lookup.md)和[MATCH](../3.ngql-guide/7.general-query-statements/2.match.md)。 +更多详情请参见 [INDEX](../3.ngql-guide/14.native-index-statements/1.create-native-index.md)、[LOOKUP](../3.ngql-guide/7.general-query-statements/5.lookup.md) 和 [MATCH](../3.ngql-guide/7.general-query-statements/2.match.md)。 -### 如何在不指定Tag/EdgeType的情况下,获取所有的点和边? +### 如何在不指定 Tag/EdgeType 的情况下,获取所有的点和边? nGQL 没有该功能。 @@ -166,18 +165,18 @@ nGQL 没有该功能。 例如执行 `MATCH (n) RETURN (n)`. 会返回错误 `can’t solve the start vids from the sentence`。 -一个办法是使用[Nebula Algorithm](../nebula-algorithm.md). +一个办法是使用 [Nebula Algorithm](../nebula-algorithm.md). -或者指定各Tag/Edge Type,然后再自己通过 `Union` 拼装。 +或者指定各 Tag/Edge Type,然后再自己通过 `Union` 拼装。 ### 如何处理错误信息`can’t solve the start vids from the sentence` -查询引擎需要知道从哪些VID开始图遍历。这些开始图遍历的VID,或者通过用户指定,例如: +查询引擎需要知道从哪些 VID 开始图遍历。这些开始图遍历的 VID,或者通过用户指定,例如: ```ngql > GO FROM ${vids} ... > MATCH (src) WHERE id(src) == ${vids} -# 开始图遍历的VID通过如上办法指定 +# 开始图遍历的 VID 通过如上办法指定 ``` 或者通过一个属性索引来得到,例如: @@ -188,28 +187,28 @@ nGQL 没有该功能。 > LOOKUP ON player WHERE player.name == "abc" | ... YIELD ... > MATCH (src) WHERE src.name == "abc" ... -# 通过点属性name的索引,来得到VID +# 通过点属性 name 的索引,来得到 VID ``` 否则,就会抛出这样一个异常 `can’t solve the start vids from the sentence`。 ### 如何处理错误信息`Wrong vertex id type: 1001` -检查输入的VID类型是否是`create space`设置的`INT64`或`FIXED_STRING(N)`。详情请参见[create space](../3.ngql-guide/9.space-statements/1.create-space.md)。 +检查输入的 VID 类型是否是`create space`设置的`INT64`或`FIXED_STRING(N)`。详情请参见 [create space](../3.ngql-guide/9.space-statements/1.create-space.md)。 ### 如何处理错误信息`The VID must be a 64-bit integer or a string fitting space vertex id length limit.` -检查输入的VID是否超过限制长度。详情请参见[create space](../3.ngql-guide/9.space-statements/1.create-space.md)。 +检查输入的 VID 是否超过限制长度。详情请参见 [create space](../3.ngql-guide/9.space-statements/1.create-space.md)。 ### 如何处理错误信息 `edge conflict` 或 `vertex conflict` -Storage服务在毫秒级时间内多次收到插入或者更新同一点或边的请求时,可能返回该错误。请稍后重试。 +Storage 服务在毫秒级时间内多次收到插入或者更新同一点或边的请求时,可能返回该错误。请稍后重试。 ### 如何处理错误信息 `RPC failure in MetaClient: Connection refused` -报错原因通常为metad服务状态异常,或是metad和graphd服务所在机器网络不通。请尝试以下解决方案: +报错原因通常为 metad 服务状态异常,或是 metad 和 graphd 服务所在机器网络不通。请尝试以下解决方案: -- 在metad所在服务器查看下 metad 服务状态,如果服务状态异常,可以重新启动metad服务。 +- 在 metad 所在服务器查看下 metad 服务状态,如果服务状态异常,可以重新启动 metad 服务。 - 在报错服务器下使用`telnet meta-ip:port`查看网络状态。 @@ -219,17 +218,17 @@ Storage服务在毫秒级时间内多次收到插入或者更新同一点或边 报错原因可能是查询的数据量比较大,storaged 处理超时。请尝试以下解决方法: -- 导入数据时,手动[compaction](../8.service-tuning/compaction.md),加速读的速度。 +- 导入数据时,手动 [compaction](../8.service-tuning/compaction.md),加速读的速度。 -- 增加Graph服务与Storage服务的RPC连接超时时间,在`nebula-storaged.conf`文件里面修改`--storage_client_timeout_ms`参数的值。该值的单位为毫秒(ms),默认值为60000毫秒。 +- 增加 Graph 服务与 Storage 服务的 RPC 连接超时时间,在`nebula-storaged.conf`文件里面修改`--storage_client_timeout_ms`参数的值。该值的单位为毫秒(ms),默认值为 60000 毫秒。 - + ### 如何处理 `nebula-storaged.INFO` 中错误日志 `MetaClient.cpp:65] Heartbeat failed, status:Wrong cluster!` 或者 `nebula-metad.INFO` 含有错误日志`HBProcessor.cpp:54] Reject wrong cluster host "x.x.x.x":9771!` 报错的原因可能是用户修改了 metad 的 ip 或者端口信息,或者 storage 之前加入过其他集群。请尝试以下解决方法: -用户到storage部署的机器所在的安装目录(默认安装目录为 `/usr/local/nebula`)下面将`cluster.id`文件删除,然后重启 storaged 服务。 +用户到 storage 部署的机器所在的安装目录(默认安装目录为 `/usr/local/nebula`)下面将`cluster.id`文件删除,然后重启 storaged 服务。 ### 能不能用中文字符做标识符,比如图空间、Tag、Edge type、属性、索引的名称? @@ -237,7 +236,7 @@ Storage服务在毫秒级时间内多次收到插入或者更新同一点或边 图空间、Tag、Edge type、属性以及索引的名称都需由大小写英文字母、数字或下划线组成,暂不支持使用中文字符。 -同时,上述标识符区分大小写,且不可使用[关键字和保留字](../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md) 。 +同时,上述标识符区分大小写,且不可使用 [关键字和保留字](../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md) 。 ### 获取指定点的出度(或者入度)? @@ -258,32 +257,32 @@ nebula > MATCH (s)<-[e]-() WHERE id(s) == "given" RETURN count(e); #入度 查询时提示`Schema not exist`,请确认: -- Schema中是否存在该Tag或Edge type。 +- Schema 中是否存在该 Tag 或 Edge type。 -- Tag或Edge type的名称是否为关键字,如果是关键字,请使用反引号(\`)将它们括起来。详情请参见[关键字](../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。 +- Tag 或 Edge type 的名称是否为关键字,如果是关键字,请使用反引号(\`)将它们括起来。详情请参见 [关键字](../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。 ## 关于运维 ### 日志文件过大时如何回收日志? -Nebula Graph 的日志默认在 `/usr/local/nebula/logs/` 下, 正常INFO级别日志文件为 `nebula-graphd.INFO, nebula-storaged.INFO, nebula-metad.INFO`,报警和错误级别后缀为 `.WARNING` 和 `.ERROR`。 +Nebula Graph 的日志默认在 `/usr/local/nebula/logs/` 下,正常 INFO 级别日志文件为 `nebula-graphd.INFO, nebula-storaged.INFO, nebula-metad.INFO`,报警和错误级别后缀为 `.WARNING` 和 `.ERROR`。 -Nebula Graph使用 [glog](https://github.com/google/glog) 打印日志。glog 没有日志回收的功能,用户可以使用 crontab 设置定期任务回收日志文件,详情请参见[Glog should delete old log files automatically](https://github.com/google/glog/issues/423)。 +Nebula Graph 使用 [glog](https://github.com/google/glog) 打印日志。glog 没有日志回收的功能,用户可以使用 crontab 设置定期任务回收日志文件,详情请参见 [Glog should delete old log files automatically](https://github.com/google/glog/issues/423)。 -### 如何查看Nebula Graph版本 +### 如何查看 Nebula Graph 版本 -服务运行时: `nebula-console` 中执行命令 `SHOW HOSTS META`,详见[SHOW HOSTS](../3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md) +服务运行时:`nebula-console` 中执行命令 `SHOW HOSTS META`,详见 [SHOW HOSTS](../3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md) -服务未运行时: 在安装路径的`bin`目录内,执行`./ --version`命令,可以查看到version和GitHub上的commit ID,例如: +服务未运行时:在安装路径的`bin`目录内,执行`./ --version`命令,可以查看到 version 和 GitHub 上的 commit ID,例如: ```bash $ ./nebula-graphd --version nebula-graphd version 2.5.0, Git: c397299c, Build Time: Aug 19 2021 11:20:18 ``` -- Docker Compose部署 +- Docker Compose 部署 - 查看Docker Compose部署的Nebula Graph版本,方式和编译安装类似,只是要先进入容器内部,示例命令如下: + 查看 Docker Compose 部署的 Nebula Graph 版本,方式和编译安装类似,只是要先进入容器内部,示例命令如下: ```bash docker exec -it nebula-docker-compose_graphd_1 bash @@ -291,7 +290,7 @@ nebula-graphd version 2.5.0, Git: c397299c, Build Time: Aug 19 2021 11:20:18 ./nebula-graphd --version ``` -- RPM/DEB包安装 +- RPM/DEB 包安装 执行`rpm -qa |grep nebula`即可查看版本。 @@ -305,19 +304,19 @@ Nebula Graph {{ nebula.release }} 未提供运维命令以实现自动扩缩容 !!! note - 用户可以使用[脚本工具](https://github.com/vesoft-inc/nebula/blob/master/scripts/meta-transfer-tools.sh)迁移meta服务,但是需要自行修改Graph服务和Storage服务的配置文件中的Meta设置。 + 用户可以使用 [脚本工具](https://github.com/vesoft-inc/nebula/blob/master/scripts/meta-transfer-tools.sh) 迁移 meta 服务,但是需要自行修改 Graph 服务和 Storage 服务的配置文件中的 Meta 设置。 -- graphd 的缩容: 将该graphd 的 ip 从 client 的代码中移除,关闭该 graphd 进程。 +- graphd 的缩容: 将该 graphd 的 ip 从 client 的代码中移除,关闭该 graphd 进程。 - graphd 的扩容: 在新机器上准备 graphd 二进制文件和配置文件,在配置文件中修改或增加已在运行的 metad 地址,启动 graphd 进程。 -- storaged 的缩容:(副本数都必须大于1),参考[缩容命令](../8.service-tuning/load-balance.md#storage_1)。完成后关闭 storaged 进程。 +- storaged 的缩容:(副本数都必须大于 1),参考 [缩容命令](../8.service-tuning/load-balance.md#storage_1)。完成后关闭 storaged 进程。 -- storaged 的扩容:(副本数都必须大于1) 在新机器上准备 storaged 二进制文件和配置文件,在配置文件中修改或增加已在运行的 metad 地址,启动 storaged 进程。 +- storaged 的扩容:(副本数都必须大于 1) 在新机器上准备 storaged 二进制文件和配置文件,在配置文件中修改或增加已在运行的 metad 地址,启动 storaged 进程。 -storaged扩缩容之后,还需要运行[Balance Data 和 Balance Leader 命令](../8.service-tuning/load-balance.md)。 +storaged 扩缩容之后,还需要运行 [Balance Data 和 Balance Leader 命令](../8.service-tuning/load-balance.md)。 -### 修改Host名称后,旧的Host一直显示 `OFFLINE` 怎么办? +### 修改 Host 名称后,旧的 Host 一直显示 `OFFLINE` 怎么办? `OFFLINE` 状态的 Host 将在一天后自动删除。 @@ -325,7 +324,7 @@ storaged扩缩容之后,还需要运行[Balance Data 和 Balance Leader 命令 ### 防火墙中需要开放哪些端口 -如果没有修改过[配置文件](../5.configurations-and-logs/1.configurations/1.configurations.md)中预设的端口,请在防火墙中开放如下端口: +如果没有修改过 [配置文件](../5.configurations-and-logs/1.configurations/1.configurations.md) 中预设的端口,请在防火墙中开放如下端口: |服务类型|端口| |-|-| @@ -339,7 +338,7 @@ storaged扩缩容之后,还需要运行[Balance Data 和 Balance Leader 命令 ### 如何测试端口是否已开放 -用户可以使用如下telnet命令检查端口状态: +用户可以使用如下 telnet 命令检查端口状态: ```bash telnet @@ -347,7 +346,7 @@ telnet !!! Note - 如果无法使用telnet命令,请先检查主机中是否安装并启动了telnet。 + 如果无法使用 telnet 命令,请先检查主机中是否安装并启动了 telnet。 示例: diff --git a/docs-2.0/20.appendix/6.eco-tool-version.md b/docs-2.0/20.appendix/6.eco-tool-version.md index 1e1dbb26a5e..16f0be75e8a 100644 --- a/docs-2.0/20.appendix/6.eco-tool-version.md +++ b/docs-2.0/20.appendix/6.eco-tool-version.md @@ -4,9 +4,9 @@ !!! compatibility - 内核版本号命名规则为 `X.Y.Z`,表示`大版本X`,`中版本Y`,`小版本Z`。对于客户端的升级要求为: + 内核版本号命名规则为 `X.Y.Z`,表示`大版本 X`,`中版本 Y`,`小版本 Z`。对于客户端的升级要求为: - - 内核从`X.Y.Z1`升级成`X.Y.Z2`: 表示内核完全前向兼容,通常用于bugfix,建议尽快升级内核小版本。此时客户端可以**不升级**; + - 内核从`X.Y.Z1`升级成`X.Y.Z2`: 表示内核完全前向兼容,通常用于 bugfix,建议尽快升级内核小版本。此时客户端可以**不升级**; - 内核从`X.Y1.*`升级成`X.Y2.*`: 表示存在 API、语法、返回值部分不兼容,通常用于增加功能、提升性能、代码优化等。需要客户端相应升级至`X.Y2.*`; @@ -14,135 +14,133 @@ - 默认内核及客户端都不支持降级:不可从`X.Y.Z2`降级成`X.Y.Z1`; - - 一个`Y`版本的发布周期大约为6个月,其维护与支持周期为6个月; + - 一个`Y`版本的发布周期大约为 6 个月,其维护与支持周期为 6 个月; - 年初版本通常命名为`X.0.0`, 年中版本命名为`X.5.0`。 - - 文件命名中含有`RC`表示仅用于预览的非正式版本(`Release Candidate`),其维护周期仅至下个RC或者正式版本发布,其客户端、数据兼容性等均无保证。 + - 文件命名中含有`RC`表示仅用于预览的非正式版本 (`Release Candidate`),其维护周期仅至下个 RC 或者正式版本发布,其客户端、数据兼容性等均无保证。 - 文件命名中含有`nightly`、`SNAPSHOT`或者日期的为日常开发版本,无质量保证和维护周期。 !!! compatibility - 1.x版本的生态工具完全不支持在Nebula Graph 2.x版本中使用。 - + 1.x 版本的生态工具完全不支持在 Nebula Graph 2.x 版本中使用。 ## Nebula Graph Studio -Nebula Graph Studio(简称 Studio)是一款可以通过Web访问的图数据库可视化工具,搭配Nebula Graph DBMS使用,提供构图、数据导入、编写nGQL查询、图探索等一站式服务。详情请参见[什么是Nebula Graph Studio](../nebula-studio/about-studio/st-ug-what-is-graph-studio.md)。 +Nebula Graph Studio(简称 Studio)是一款可以通过 Web 访问的图数据库可视化工具,搭配 Nebula Graph DBMS 使用,提供构图、数据导入、编写 nGQL 查询、图探索等一站式服务。详情请参见 [什么是 Nebula Graph Studio](../nebula-studio/about-studio/st-ug-what-is-graph-studio.md)。 !!! Note Studio 版本发布节奏独立于 Nebula Graph 内核,其命名方式也不参照内核命名规则,两者兼容对应关系如下表。 -|Nebula Graph版本|Studio版本(commit id)| +|Nebula Graph 版本|Studio 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{studio.release}}(3754219)| ## Nebula Dashboard(社区版) -Nebula Dashboard(简称Dashboard)是一款用于监控Nebula Graph集群中机器和服务状态的可视化工具。详情参见[什么是Nebula Dashboard](../nebula-dashboard/1.what-is-dashboard.md)。 +Nebula Dashboard(简称 Dashboard)是一款用于监控 Nebula Graph 集群中机器和服务状态的可视化工具。详情参见 [什么是 Nebula Dashboard](../nebula-dashboard/1.what-is-dashboard.md)。 -|Nebula Graph版本|Dashboard版本(commit id)| +|Nebula Graph 版本|Dashboard 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{dashboard.release}}(a610013) | ## Nebula Dashboard(企业版) -Nebula Dashboard(简称Dashboard)是一款用于监控和管理Nebula Graph多集群中机器和服务状态的可视化工具,支持在可视化界面进行集群创建、集群导入、数据平衡、扩容缩容等操作。详情参见[什么是Nebula Dashboard](../nebula-dashboard-ent/1.what-is-dashboard-ent.md)。 +Nebula Dashboard(简称 Dashboard)是一款用于监控和管理 Nebula Graph 多集群中机器和服务状态的可视化工具,支持在可视化界面进行集群创建、集群导入、数据平衡、扩容缩容等操作。详情参见 [什么是 Nebula Dashboard](../nebula-dashboard-ent/1.what-is-dashboard-ent.md)。 -|Nebula Graph版本|Dashboard企业版本(commit id)| +|Nebula Graph 版本|Dashboard 企业版本(commit id)| |:---|:---| | {{ nebula.release }} | {{dashboard_ent.release}}(3474c78) | ## Nebula Explorer -Nebula Explorer(简称Explorer)是一款可以通过Web访问的图探索可视化工具,搭配Nebula Graph内核使用,用于与图数据进行可视化交互。即使没有图数据操作经验,用户也可以快速成为图专家。详情参见[什么是Nebula Explorer](../nebula-explorer/about-explorer/ex-ug-what-is-explorer.md)。 +Nebula Explorer(简称 Explorer)是一款可以通过 Web 访问的图探索可视化工具,搭配 Nebula Graph 内核使用,用于与图数据进行可视化交互。即使没有图数据操作经验,用户也可以快速成为图专家。详情参见 [什么是 Nebula Explorer](../nebula-explorer/about-explorer/ex-ug-what-is-explorer.md)。 -|Nebula Graph版本|Explorer版本(commit id)| +|Nebula Graph 版本|Explorer 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{explorer.release}}(3acdd02) | - ## Nebula Exchange -Nebula Exchange(简称Exchange)是一款Apache Spark™应用,用于在分布式环境中将集群中的数据批量迁移到Nebula Graph中,能支持多种不同格式的批式数据和流式数据的迁移。详情请参见[什么是Nebula Exchange](../nebula-exchange/about-exchange/ex-ug-what-is-exchange.md)。 +Nebula Exchange(简称 Exchange)是一款 Apache Spark™ 应用,用于在分布式环境中将集群中的数据批量迁移到 Nebula Graph 中,能支持多种不同格式的批式数据和流式数据的迁移。详情请参见 [什么是 Nebula Exchange](../nebula-exchange/about-exchange/ex-ug-what-is-exchange.md)。 -|Nebula Graph版本|Exchange社区版版本(commit id)|Exchange企业版版本(commit id)| +|Nebula Graph 版本|Exchange 社区版版本(commit id)|Exchange 企业版版本(commit id)| |:---|:---|:--| | {{ nebula.release }} | {{exchange.release}}(cb83202) |{{exchange_ent.release}}(9c54c97) | ## Nebula Operator -Nebula Operator(简称Operator)是用于在Kubernetes系统上自动化部署和运维Nebula Graph集群的工具。依托于Kubernetes扩展机制,Nebula Graph将其运维领域的知识全面注入至Kubernetes系统中,让Nebula Graph成为真正的云原生图数据库。详情请参考[什么是Nebula Operator](../nebula-operator/1.introduction-to-nebula-operator.md)。 +Nebula Operator(简称 Operator)是用于在 Kubernetes 系统上自动化部署和运维 Nebula Graph 集群的工具。依托于 Kubernetes 扩展机制,Nebula Graph 将其运维领域的知识全面注入至 Kubernetes 系统中,让 Nebula Graph 成为真正的云原生图数据库。详情请参考 [什么是 Nebula Operator](../nebula-operator/1.introduction-to-nebula-operator.md)。 -|Nebula Graph版本|Operator版本(commit id)| +|Nebula Graph 版本|Operator 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{operator.release}}(ba88e28) | ## Nebula Importer -Nebula Importer(简称Importer)是一款Nebula Graph的CSV文件导入工具。Importer可以读取本地的CSV文件,然后导入数据至Nebula Graph图数据库中。详情请参见[什么是Nebula Importer](../nebula-importer/use-importer.md)。 +Nebula Importer(简称 Importer)是一款 Nebula Graph 的 CSV 文件导入工具。Importer 可以读取本地的 CSV 文件,然后导入数据至 Nebula Graph 图数据库中。详情请参见 [什么是 Nebula Importer](../nebula-importer/use-importer.md)。 -|Nebula Graph版本|[Importer](https://github.com/vesoft-inc/nebula-importer/tree/{{importer.branch}})版本(commit id)| +|Nebula Graph 版本|[Importer](https://github.com/vesoft-inc/nebula-importer/tree/{{importer.branch}}) 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{importer.release}}(43234f3) | ## Nebula Spark Connector -Nebula Spark Connector是一个Spark连接器,提供通过Spark标准形式读写Nebula Graph数据的能力。Nebula Spark Connector由Reader和Writer两部分组成。详情请参见[什么是Nebula Spark Connector](../nebula-spark-connector.md)。 +Nebula Spark Connector 是一个 Spark 连接器,提供通过 Spark 标准形式读写 Nebula Graph 数据的能力。Nebula Spark Connector 由 Reader 和 Writer 两部分组成。详情请参见 [什么是 Nebula Spark Connector](../nebula-spark-connector.md)。 -|Nebula Graph版本|Spark Connector版本(commit id)| +|Nebula Graph 版本|Spark Connector 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{sparkconnector.release}}(cfe8ffc) | ## Nebula Flink Connector -Nebula Flink Connector是一款帮助Flink用户快速访问Nebula Graph的连接器,支持从Nebula Graph图数据库中读取数据,或者将其他外部数据源读取的数据写入Nebula Graph图数据库。详情请参见[什么是Nebula Flink Connector](../nebula-flink-connector.md)。 +Nebula Flink Connector 是一款帮助 Flink 用户快速访问 Nebula Graph 的连接器,支持从 Nebula Graph 图数据库中读取数据,或者将其他外部数据源读取的数据写入 Nebula Graph 图数据库。详情请参见 [什么是 Nebula Flink Connector](../nebula-flink-connector.md)。 -|Nebula Graph版本|Flink Connector版本(commit id)| +|Nebula Graph 版本|Flink Connector 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{flinkconnector.release}}(32b5225) | ## Nebula Algorithm -Nebula Algorithm(简称Algorithm)是一款基于[GraphX](https://spark.apache.org/graphx/)的Spark应用程序,通过提交Spark任务的形式使用完整的算法工具对Nebula Graph数据库中的数据执行图计算,也可以通过编程形式调用lib库下的算法针对DataFrame执行图计算。详情请参见[什么是Nebula Algorithm](../nebula-algorithm.md)。 +Nebula Algorithm(简称 Algorithm)是一款基于 [GraphX](https://spark.apache.org/graphx/) 的 Spark 应用程序,通过提交 Spark 任务的形式使用完整的算法工具对 Nebula Graph 数据库中的数据执行图计算,也可以通过编程形式调用 lib 库下的算法针对 DataFrame 执行图计算。详情请参见 [什么是 Nebula Algorithm](../nebula-algorithm.md)。 -|Nebula Graph版本|Algorithm版本(commit id)| +|Nebula Graph 版本|Algorithm 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{algorithm.release}}(2c61ca5) | ## Nebula Console -Nebula Console是Nebula Graph的原生CLI客户端。如何使用请参见[连接Nebula Graph](../2.quick-start/3.connect-to-nebula-graph.md)。 +Nebula Console 是 Nebula Graph 的原生 CLI 客户端。如何使用请参见 [连接 Nebula Graph](../2.quick-start/3.connect-to-nebula-graph.md)。 -|Nebula Graph版本|Console版本(commit id)| +|Nebula Graph 版本|Console 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{console.release}}(0834198) | ## Nebula Docker Compose -Docker Compose可以快速部署Nebula Graph集群。如何使用请参见[Docker Compose部署Nebula Graph](../4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md)。 +Docker Compose 可以快速部署 Nebula Graph 集群。如何使用请参见 [Docker Compose 部署 Nebula Graph](../4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md)。 -|Nebula Graph版本|Docker Compose版本(commit id)| +|Nebula Graph 版本|Docker Compose 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{dockercompose.release}}(a6e9d78) | ## Nebula Bench -[Nebula Bench](https://github.com/vesoft-inc/nebula-bench) 用于测试Nebula Graph的基线性能数据,使用LDBC v0.3.3的标准数据集。 +[Nebula Bench](https://github.com/vesoft-inc/nebula-bench) 用于测试 Nebula Graph 的基线性能数据,使用 LDBC v0.3.3 的标准数据集。 -|Nebula Graph版本|Nebula Bench版本(commit id)| +|Nebula Graph 版本|Nebula Bench 版本(commit id)| |:---|:---| | {{ nebula.release }} | {{bench.release}}(661f871) | @@ -152,7 +150,7 @@ Docker Compose可以快速部署Nebula Graph集群。如何使用请参见[Docke 选择与内核版本相同`X.Y.*`的最新版本。 -|Nebula Graph版本| 语言(commit id) | +|Nebula Graph 版本| 语言(commit id) | |:---| :--- | | {{ nebula.release }}| [C++](https://github.com/vesoft-inc/nebula-cpp/tree/{{cpp.branch}})(00e2625) | | {{ nebula.release }}| [Go](https://github.com/vesoft-inc/nebula-go/tree/{{go.branch}})(02eb246) | diff --git a/docs-2.0/20.appendix/releasenote.md b/docs-2.0/20.appendix/releasenote.md index 64f300aa79a..4b0f59b4960 100644 --- a/docs-2.0/20.appendix/releasenote.md +++ b/docs-2.0/20.appendix/releasenote.md @@ -2,9 +2,8 @@ ## Bug fix -修复了`LOOKUP`中`YIELD`子句出现聚合函数时,Nebula Graph连接会被中断的缺陷。[#3245](https://github.com/vesoft-inc/nebula/pull/3245) +修复了`LOOKUP`中`YIELD`子句出现聚合函数时,Nebula Graph 连接会被中断的缺陷。[#3245](https://github.com/vesoft-inc/nebula/pull/3245) ## 历史版本 [历史版本](https://nebula-graph.com.cn/tags/release-note/) - diff --git a/docs-2.0/20.appendix/write-tools.md b/docs-2.0/20.appendix/write-tools.md index f6054e7684d..cbb24923991 100644 --- a/docs-2.0/20.appendix/write-tools.md +++ b/docs-2.0/20.appendix/write-tools.md @@ -1,15 +1,14 @@ # 导入工具选择 -有多种方式可以写入Nebula Graph {{ nebula.release }}: +有多种方式可以写入 Nebula Graph {{ nebula.release }}: -- 使用 [命令行 -f 的方式](../2.quick-start/3.connect-to-nebula-graph.md)导入: 可以导入少量准备好的nGQL文件,适合少量手工测试数据准备; +- 使用 [命令行 -f 的方式](../2.quick-start/3.connect-to-nebula-graph.md) 导入:可以导入少量准备好的 nGQL 文件,适合少量手工测试数据准备; - 使用 [studio 导入](../nebula-studio/quick-start/st-ug-import-data.md): 可以用过浏览器导入本机多个 csv 文件,单个文件不超过 100 MB,格式有限制; - 使用 [importer 导入](../nebula-importer/use-importer.md): 导入单机多个 csv 文件,大小没有限制,格式灵活; -- 使用 [Exchange 导入](../nebula-exchange/about-exchange/ex-ug-what-is-exchange.md): 从 Neo4j, Hive, MySQL等多种源分布式导入,需要有 Spark 集群; -- 使用 [Spark-connector](../nebula-spark-connector.md)/[Flink-connector](../nebula-flink-connector.md) 导入:有相应组件(Spark/Flink),撰写少量代码; +- 使用 [Exchange 导入](../nebula-exchange/about-exchange/ex-ug-what-is-exchange.md): 从 Neo4j, Hive, MySQL 等多种源分布式导入,需要有 Spark 集群; +- 使用 [Spark-connector](../nebula-spark-connector.md)/[Flink-connector](../nebula-flink-connector.md) 导入:有相应组件 (Spark/Flink),撰写少量代码; - 使用 [C++/GO/Java/Python SDK](../20.appendix/6.eco-tool-version.md):编写程序的方式导入,需要有一定编程和调优能力。 下图给出了几种方式的定位: ![image](../images/write-choice.png) - diff --git a/docs-2.0/4.deployment-and-installation/1.resource-preparations.md b/docs-2.0/4.deployment-and-installation/1.resource-preparations.md index 7ef9c1e8b71..9dc5f7d23df 100644 --- a/docs-2.0/4.deployment-and-installation/1.resource-preparations.md +++ b/docs-2.0/4.deployment-and-installation/1.resource-preparations.md @@ -1,40 +1,40 @@ -# 准备编译、安装和运行Nebula Graph的环境 +# 准备编译、安装和运行 Nebula Graph 的环境 -本文介绍编译、安装Nebula Graph的要求和建议,以及如何预估集群运行所需的资源。 +本文介绍编译、安装 Nebula Graph 的要求和建议,以及如何预估集群运行所需的资源。 ## 阅读指南 如果是带着如下问题阅读本文,可以直接单击问题跳转查看对应的说明。 -- [编译Nebula Graph源码的要求是什么?](#nebula_graph_1) +- [编译 Nebula Graph 源码的要求是什么?](#nebula_graph_1) -- [测试环境中运行Nebula Graph的要求是什么?](#nebula_graph_2) +- [测试环境中运行 Nebula Graph 的要求是什么?](#nebula_graph_2) -- [生产环境中运行Nebula Graph的要求是什么?](#nebula_graph_3) +- [生产环境中运行 Nebula Graph 的要求是什么?](#nebula_graph_3) -- [需要预留多少内存和硬盘空间给Nebula Graph集群?](#nebula_graph_4) +- [需要预留多少内存和硬盘空间给 Nebula Graph 集群?](#nebula_graph_4) -## 编译Nebula Graph源码要求 +## 编译 Nebula Graph 源码要求 ### 硬件要求 | 类型 | 要求 | | :---- | :--- | -| CPU架构 | x86_64 | +| CPU 架构 | x86_64 | | 内存 | 4 GB | | 硬盘 | 10 GB,SSD | ### 操作系统要求 -当前仅支持在Linux系统中编译Nebula Graph,建议使用内核版本为`2.6.32`及以上版本的Linux系统。 +当前仅支持在 Linux 系统中编译 Nebula Graph,建议使用内核版本为`2.6.32`及以上版本的 Linux 系统。 ### 软件要求 -软件版本需要如下表所示,如果它们不符合要求,或者也不确定它们的版本,请按照[安装编译所需软件](#_5)中的步骤进行操作。 +软件版本需要如下表所示,如果它们不符合要求,或者也不确定它们的版本,请按照 [安装编译所需软件](#_5) 中的步骤进行操作。 | 软件名称 | 版本 | 备注 | | ---------------- | ---------- | ----------------------------------------| -| glibc | 2.17及以上 | 执行命令`ldd --version`检查版本。 | +| glibc | 2.17 及以上 | 执行命令`ldd --version`检查版本。 | | make | 任意稳定版本 | - | | m4 | 任意稳定版本 | - | | git | 任意稳定版本 | - | @@ -44,25 +44,25 @@ | readline-devel | 任意稳定版本 | - | | ncurses-devel | 任意稳定版本 | - | | zlib-devel | 任意稳定版本 | - | -| gcc | 7.5.0及以上 | 执行命令`gcc -v`检查版本。 | +| gcc | 7.5.0 及以上 | 执行命令`gcc -v`检查版本。 | | gcc-c++ | 任意稳定版本 | - | -| cmake | 3.9.0及以上 | 执行命令`cmake --version`检查版本。 | +| cmake | 3.9.0 及以上 | 执行命令`cmake --version`检查版本。 | | gettext | 任意稳定版本 | - | | curl | 任意稳定版本 | - | | redhat-lsb-core | 任意稳定版本 | - | -| libstdc++-static | 任意稳定版本 | 仅在CentOS 8+、RedHat 8+、Fedora中需要。 | -| libasan | 任意稳定版本 | 仅在CentOS 8+、RedHat 8+、Fedora中需要。 | +| libstdc++-static | 任意稳定版本 | 仅在 CentOS 8+、RedHat 8+、Fedora 中需要。 | +| libasan | 任意稳定版本 | 仅在 CentOS 8+、RedHat 8+、Fedora 中需要。 | | bzip2 | 任意稳定版本 | - | 其他第三方软件将在安装(cmake)阶段自动下载并安装到`build`目录中。 ### 安装编译所需软件 -本小节指导下载和安装Nebula Graph编译时需要的软件。 +本小节指导下载和安装 Nebula Graph 编译时需要的软件。 1. 安装依赖包。 - - CentOS、RedHat、Fedora用户请执行如下命令: + - CentOS、RedHat、Fedora 用户请执行如下命令: ```bash $ yum update @@ -82,11 +82,11 @@ curl \ redhat-lsb-core \ bzip2 - // 仅CentOS 8+、RedHat 8+、Fedora需要安装libstdc++-static和libasan。 + // 仅 CentOS 8+、RedHat 8+、Fedora 需要安装 libstdc++-static 和 libasan。 $ yum install -y libstdc++-static libasan ``` - - Debian和Ubuntu用户请执行如下命令: + - Debian 和 Ubuntu 用户请执行如下命令: ```bash $ apt-get update @@ -105,7 +105,7 @@ gettext ``` -2. 检查主机上的GCC和CMake版本是否正确。版本信息请参见[软件要求](#_4)。 +2. 检查主机上的 GCC 和 CMake 版本是否正确。版本信息请参见 [软件要求](#_4)。 ```bash $ g++ --version @@ -120,7 +120,7 @@ $ git clone -b {{ nebula.branch}} https://github.com/vesoft-inc/nebula.git ``` - 如需安装特定版本的Nebula Graph,使用`--branch`或`-b`选项指定相应的nebula-common分支。 例如,指定{{ nebula.release }},命令如下: + 如需安装特定版本的 Nebula Graph,使用`--branch`或`-b`选项指定相应的 nebula-common 分支。 例如,指定{{ nebula.release }},命令如下: ```bash $ git clone --branch {{ nebula.branch}} https://github.com/vesoft-inc/nebula.git @@ -132,19 +132,19 @@ $ cd nebula ``` - 3. 执行如下命令安装和启用GCC和CMake。 + 3. 执行如下命令安装和启用 GCC 和 CMake。 ```bash - // 安装CMake。 + // 安装 CMake。 $ ./third-party/install-cmake.sh cmake-install - // 启用CMake。 + // 启用 CMake。 $ source cmake-install/bin/enable-cmake.sh - //opt目录添加写权限。 + //opt 目录添加写权限。 $ sudo mkdir /opt/vesoft && sudo chmod -R a+w /opt/vesoft - // 安装GCC。安装到opt目录需要写权限,用户也可以修改为其他目录。 + // 安装 GCC。安装到 opt 目录需要写权限,用户也可以修改为其他目录。 $ ./third-party/install-gcc.sh --prefix=/opt // 启用 GCC。 @@ -157,55 +157,55 @@ $ ./third-party/install-third-party.sh ``` -## 测试环境运行Nebula Graph要求 +## 测试环境运行 Nebula Graph 要求 ### 硬件要求 | 类型 | 要求 | | -------- | ----------- | -| CPU架构 | x86_64 | -| CPU核数 | 4 | +| CPU 架构 | x86_64 | +| CPU 核数 | 4 | | 内存 | 8 GB | | 硬盘 | 100 GB,SSD | ### 操作系统要求 -当前仅支持在Linux系统中安装Nebula Graph,建议在测试环境中使用内核版本为`3.9`及以上版本的Linux系统。 +当前仅支持在 Linux 系统中安装 Nebula Graph,建议在测试环境中使用内核版本为`3.9`及以上版本的 Linux 系统。 ### 服务架构建议 | 进程 | 建议数量| | ------------------------| ------| -| metad(meta数据服务进程) | 1 | +| metad(meta 数据服务进程) | 1 | | storaged(存储服务进程) | ≥1 | | graphd(查询引擎服务进程) | ≥1 | -例如单机测试环境,用户可以在机器上部署1个metad、1个storaged和1个graphd进程。 +例如单机测试环境,用户可以在机器上部署 1 个 metad、1 个 storaged 和 1 个 graphd 进程。 -对于更常见的测试环境,例如三台机器构成的集群,用户可以按照如下方案部署Nebula Graph。 +对于更常见的测试环境,例如三台机器构成的集群,用户可以按照如下方案部署 Nebula Graph。 -| 机器名称 | metad进程数量 | storaged进程数量 | graphd进程数量 | +| 机器名称 | metad 进程数量 | storaged 进程数量 | graphd 进程数量 | | ------------ | --------------- | ------------------ | ---------------- | | A | 1 | 1 | 1 | | B | - | 1 | 1 | | C | - | 1 | 1 | -## 生产环境运行Nebula Graph要求 +## 生产环境运行 Nebula Graph 要求 ### 硬件要求 | 类型 | 要求 | | -------- | ----------- | -| CPU架构 | x86_64 | -| CPU核数 | 48 | +| CPU 架构 | x86_64 | +| CPU 核数 | 48 | | 内存 | 96 GB | | 硬盘 | 2 * 900 GB,NVMe SSD | ### 操作系统要求 -当前仅支持在Linux系统中安装Nebula Graph,建议在生产环境中使用内核版本为`3.9`及以上版本的Linux系统。 +当前仅支持在 Linux 系统中安装 Nebula Graph,建议在生产环境中使用内核版本为`3.9`及以上版本的 Linux 系统。 -用户可以通过调整一些内核参数来提高Nebula Graph性能,详情请参见[内核配置](../5.configurations-and-logs/1.configurations/6.kernel-config.md)。 +用户可以通过调整一些内核参数来提高 Nebula Graph 性能,详情请参见 [内核配置](../5.configurations-and-logs/1.configurations/6.kernel-config.md)。 ### 服务架构建议 @@ -215,17 +215,17 @@ | 进程 | 数量| | ------------------------| ------| -| metad(meta数据服务进程) | 3 | +| metad(meta 数据服务进程) | 3 | | storaged(存储服务进程) | ≥3 | | graphd(查询引擎服务进程) | ≥3 | -有且仅有3个metad进程,每个metad进程会自动创建并维护meta数据的一个副本。 +有且仅有 3 个 metad 进程,每个 metad 进程会自动创建并维护 meta 数据的一个副本。 -storaged进程的数量不会影响图空间副本的数量。 +storaged 进程的数量不会影响图空间副本的数量。 -用户可以在一台机器上部署多个不同进程,例如五台机器构成的集群,用户可以按照如下方案部署Nebula Graph。 +用户可以在一台机器上部署多个不同进程,例如五台机器构成的集群,用户可以按照如下方案部署 Nebula Graph。 -| 机器名称 | metad进程数量 | storaged进程数量 | graphd进程数量 | +| 机器名称 | metad 进程数量 | storaged 进程数量 | graphd 进程数量 | | ------------ | --------------- | ------------------ | ---------------- | | A | 1 | 1 | 1 | | B | 1 | 1 | 1 | @@ -233,27 +233,27 @@ storaged进程的数量不会影响图空间副本的数量。 | D | - | 1 | 1 | | E | - | 1 | 1 | -## Nebula Graph资源要求 +## Nebula Graph 资源要求 -用户可以预估一个3副本Nebula Graph集群所需的内存、硬盘空间和分区数量。 +用户可以预估一个 3 副本 Nebula Graph 集群所需的内存、硬盘空间和分区数量。 | 资源 |单位 | 计算公式 |说明| |:--- |:---|:--- |:---| -| 硬盘空间 |Bytes| `点和边的总数` * `属性的平均字节大小` * 6 * 120% |由于边存在存储放大现象,所以需要`点和边的总数` * `属性的平均字节大小` * 6 的空间,详情请参见[切边与存储放大](../1.introduction/3.nebula-graph-architecture/4.storage-service.md)。| -| 内存 |Bytes| [`点和边的总数` * 15 + `RocksDB实例数量` * (`write_buffer_size` * `max_write_buffer_number` + `块缓存大小`)] * 120% |`点和边的总数` * 15 是[BloomFilter](https://zh.wikipedia.org/wiki/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8)需要占用的内存空间,`write_buffer_size`和`max_write_buffer_number`是RocksDB内存相关参数,详情请参见[MemTable](https://github.com/facebook/rocksdb/wiki/MemTable)。块缓存大小请参见[Memory usage in RocksDB](https://github.com/facebook/rocksdb/wiki/Memory-usage-in-RocksDB#block-cache)。| -| 分区数量 |-| `集群硬盘数量` * `disk_partition_num_multiplier` |`disk_partition_num_multiplier`是取值为2~10的一个整数,用于衡量硬盘性能。HDD使用2。| +| 硬盘空间 |Bytes| `点和边的总数` * `属性的平均字节大小` * 6 * 120% |由于边存在存储放大现象,所以需要`点和边的总数` * `属性的平均字节大小` * 6 的空间,详情请参见 [切边与存储放大](../1.introduction/3.nebula-graph-architecture/4.storage-service.md)。| +| 内存 |Bytes| [`点和边的总数` * 15 + `RocksDB 实例数量` * (`write_buffer_size` * `max_write_buffer_number` + `块缓存大小`)] * 120% |`点和边的总数` * 15 是 [BloomFilter](https://zh.wikipedia.org/wiki/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8) 需要占用的内存空间,`write_buffer_size`和`max_write_buffer_number`是 RocksDB 内存相关参数,详情请参见 [MemTable](https://github.com/facebook/rocksdb/wiki/MemTable)。块缓存大小请参见 [Memory usage in RocksDB](https://github.com/facebook/rocksdb/wiki/Memory-usage-in-RocksDB#block-cache)。| +| 分区数量 |-| `集群硬盘数量` * `disk_partition_num_multiplier` |`disk_partition_num_multiplier`是取值为 2~10 的一个整数,用于衡量硬盘性能。HDD 使用 2。| -- 问题 1:为什么磁盘空间和内存都要乘以120%? +- 问题 1:为什么磁盘空间和内存都要乘以 120%? - 答:额外的20%用于缓冲。 + 答:额外的 20%用于缓冲。 -- 问题 2:如何获取RocksDB实例数量? +- 问题 2:如何获取 RocksDB 实例数量? - 答:在`etc`目录内查看配置文件`nebula-storaged.conf`,`--data_path`选项中的每个目录对应一个RocksDB实例,目录总数即是RocksDB实例数量。 + 答:在`etc`目录内查看配置文件`nebula-storaged.conf`,`--data_path`选项中的每个目录对应一个 RocksDB 实例,目录总数即是 RocksDB 实例数量。 !!! Note - 用户可以在配置文件`nebula-storaged.conf`中添加`--enable_partitioned_index_filter=true`来降低bloom过滤器占用的内存大小,但是在某些随机寻道(random-seek)的情况下,可能会降低读取性能。 + 用户可以在配置文件`nebula-storaged.conf`中添加`--enable_partitioned_index_filter=true`来降低 bloom 过滤器占用的内存大小,但是在某些随机寻道(random-seek)的情况下,可能会降低读取性能。 ## FAQ @@ -269,10 +269,8 @@ Nebula Graph 是针对 NVMe SSD 进行设计和实现的,所有默认参数都 - 使用本地 SSD 设备。 -### 关于CPU架构 +### 关于 CPU 架构 !!! enterpriseonly - Nebula Graph {{ nebula.release }} 不支持直接在 ARM 架构上运行。访问官网获取[商业支持](https://nebula-graph.com.cn/pricing/)。 - - + Nebula Graph {{ nebula.release }} 不支持直接在 ARM 架构上运行。访问官网获取 [商业支持](https://nebula-graph.com.cn/pricing/)。 diff --git a/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md b/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md index d264aba669f..f2fdf36c811 100644 --- a/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md +++ b/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md @@ -1,32 +1,32 @@ -# 使用源码安装Nebula Graph +# 使用源码安装 Nebula Graph -使用源码安装Nebula Graph允许自定义编译和安装设置,并测试最新特性。 +使用源码安装 Nebula Graph 允许自定义编译和安装设置,并测试最新特性。 ## 前提条件 -- 准备正确的编译环境。参见[软硬件要求和安装三方库依赖包](../1.resource-preparations.md)。 +- 准备正确的编译环境。参见 [软硬件要求和安装三方库依赖包](../1.resource-preparations.md)。 !!! note - 暂不支持离线编译Nebula Graph。 + 暂不支持离线编译 Nebula Graph。 -- 待安装Nebula Graph的主机可以访问互联网。 +- 待安装 Nebula Graph 的主机可以访问互联网。 ## 安装步骤 !!! Note - 从{{ nebula.release }}版本开始,Nebula-Graph、Nebula-Storage、Nebula-Common的代码仓库合并为Nebula代码仓库,因此编译步骤与之前版本的步骤有所不同。 + 从{{ nebula.release }}版本开始,Nebula-Graph、Nebula-Storage、Nebula-Common 的代码仓库合并为 Nebula 代码仓库,因此编译步骤与之前版本的步骤有所不同。 -1. 克隆Nebula Graph的源代码到主机。 +1. 克隆 Nebula Graph 的源代码到主机。 - - [推荐]如果需要安装{{nebula.release}}版本的Nebula Graph,执行如下命令: + - [推荐] 如果需要安装{{nebula.release}}版本的 Nebula Graph,执行如下命令: ```bash $ git clone --branch {{nebula.branch}} https://github.com/vesoft-inc/nebula.git ``` - - 如果需要安装最新的开发版本用于测试,执行如下命令克隆master分支的代码: + - 如果需要安装最新的开发版本用于测试,执行如下命令克隆 master 分支的代码: ```bash $ git clone https://github.com/vesoft-inc/nebula.git @@ -44,31 +44,31 @@ $ mkdir build && cd build ``` -4. 使用CMake生成makefile文件。 +4. 使用 CMake 生成 makefile 文件。 !!! Note 默认安装路径为`/usr/local/nebula`,如果需要修改路径,请在下方命令内增加参数 `-DCMAKE_INSTALL_PREFIX=`。 - 更多CMake参数说明,请参见[CMake参数](#cmake)。 + 更多 CMake 参数说明,请参见 [CMake 参数](#cmake)。 ```bash $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nebula -DENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release .. ``` -5. 编译Nebula Graph。 +5. 编译 Nebula Graph。 !!! Note - 检查[软硬件要求和安装三方库依赖包](../1.resource-preparations.md)。 + 检查 [软硬件要求和安装三方库依赖包](../1.resource-preparations.md)。 - 为了适当地加快编译速度,可以使用选项`-j`并行编译。并行数量`N`建议为$\min(\text{CPU}核数,\frac{内存(GB)}{2})$。 + 为了适当地加快编译速度,可以使用选项`-j`并行编译。并行数量`N`建议为$\min(\text{CPU}核数,\frac{内存 (GB)}{2})$。 ```bash $ make -j{N} # E.g., make -j2 ``` -6. 安装Nebula Graph。 +6. 安装 Nebula Graph。 ```bash $ sudo make install @@ -80,9 +80,9 @@ 在 2.0.1 中,可以直接使用 `script` 目录下的脚本,不需要将配置文件重新命名。 -## 更新master版本 +## 更新 master 版本 -master分支的代码更新速度快,如果安装了master分支对应的开发版Nebula Graph,可根据以下步骤更新版本。 +master 分支的代码更新速度快,如果安装了 master 分支对应的开发版 Nebula Graph,可根据以下步骤更新版本。 1. 在目录`nebula`中,执行命令`git pull upstream master`更新源码。 @@ -90,11 +90,11 @@ master分支的代码更新速度快,如果安装了master分支对应的开 ## 下一步 -- (企业版)[设置License](../deploy-license.md) +- (企业版)[设置 License](../deploy-license.md) -- [管理Nebula Graph服务](../../2.quick-start/5.start-stop-service.md) +- [管理 Nebula Graph 服务](../../2.quick-start/5.start-stop-service.md) -## CMake参数 +## CMake 参数 ### 使用方法 @@ -102,11 +102,11 @@ master分支的代码更新速度快,如果安装了master分支对应的开 $ cmake -D= ... ``` -下文的CMake参数可以在配置(CMake)阶段用来调整编译设置。 +下文的 CMake 参数可以在配置 (CMake) 阶段用来调整编译设置。 ### CMAKE_INSTALL_PREFIX -`CMAKE_INSTALL_PREFIX`指定Nebula Graph服务模块、脚本和配置文件的安装路径,默认路径为`/usr/local/nebula`。 +`CMAKE_INSTALL_PREFIX`指定 Nebula Graph 服务模块、脚本和配置文件的安装路径,默认路径为`/usr/local/nebula`。 ### ENABLE_WERROR @@ -114,35 +114,35 @@ $ cmake -D= ... ### ENABLE_TESTING -`ENABLE_TESTING`默认值为`ON`,表示单元测试服务由Nebula Graph服务构建。如果只需要服务模块,可以设置为`OFF`。 +`ENABLE_TESTING`默认值为`ON`,表示单元测试服务由 Nebula Graph 服务构建。如果只需要服务模块,可以设置为`OFF`。 ### ENABLE_ASAN -`ENABLE_ASAN`默认值为`OFF`,表示关闭内存问题检测工具ASan(AddressSanitizer)。该工具是为Nebula Graph开发者准备的,如果需要开启,可以设置为`ON`。 +`ENABLE_ASAN`默认值为`OFF`,表示关闭内存问题检测工具 ASan(AddressSanitizer)。该工具是为 Nebula Graph 开发者准备的,如果需要开启,可以设置为`ON`。 ### CMAKE_BUILD_TYPE -`CMAKE_BUILD_TYPE`控制Nebula Graph的build方法,取值说明如下: +`CMAKE_BUILD_TYPE`控制 Nebula Graph 的 build 方法,取值说明如下: - `Debug` - `CMAKE_BUILD_TYPE`的默认值,build过程中只记录debug信息,不使用优化选项。 + `CMAKE_BUILD_TYPE`的默认值,build 过程中只记录 debug 信息,不使用优化选项。 - `Release` - build过程中使用优化选项,不记录debug信息。 + build 过程中使用优化选项,不记录 debug 信息。 - `RelWithDebInfo` - build过程中既使用优化选项,也记录debug信息。 + build 过程中既使用优化选项,也记录 debug 信息。 - `MinSizeRel` - build过程中仅通过优化选项控制代码大小,不记录debug信息。 + build 过程中仅通过优化选项控制代码大小,不记录 debug 信息。 ### CMAKE_C_COMPILER/CMAKE_CXX_COMPILER -通常情况下,CMake会自动查找并使用主机上的C/C++编译器,但是如果编译器没有安装在标准路径,或者想使用其他编译器,请执行如下命令指定目标编译器的安装路径: +通常情况下,CMake 会自动查找并使用主机上的 C/C++编译器,但是如果编译器没有安装在标准路径,或者想使用其他编译器,请执行如下命令指定目标编译器的安装路径: ```bash $ cmake -DCMAKE_C_COMPILER= -DCMAKE_CXX_COMPILER= .. @@ -151,9 +151,9 @@ $ cmake -DCMAKE_C_COMPILER= -DCMAKE_CXX_COMPILER= -DCMAKE_CXX_COMPILER= diff --git a/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md b/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md index 826792e3906..bd1937e6915 100644 --- a/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md +++ b/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md @@ -1,6 +1,6 @@ -# 使用Docker Compose部署Nebula Graph +# 使用 Docker Compose 部署 Nebula Graph -使用Docker Compose可以基于准备好的配置文件快速部署Nebula Graph服务,仅建议在测试Nebula Graph功能时使用该方式。 +使用 Docker Compose 可以基于准备好的配置文件快速部署 Nebula Graph 服务,仅建议在测试 Nebula Graph 功能时使用该方式。 ## 前提条件 @@ -12,15 +12,15 @@ |Docker Compose|最新版本|[Install Docker Compose](https://docs.docker.com/compose/install/)| |Git|最新版本|[Download Git](https://git-scm.com/download/)| -- 如果使用非root用户部署Nebula Graph,请授权该用户Docker相关的权限。详细信息,请参见[Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)。 +- 如果使用非 root 用户部署 Nebula Graph,请授权该用户 Docker 相关的权限。详细信息,请参见 [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)。 -- 启动主机上的Docker服务。 +- 启动主机上的 Docker 服务。 -- 如果已经通过Docker Compose在主机上部署了另一个版本的Nebula Graph,为避免兼容性问题,需要删除目录`nebula-docker-compose/data`。 +- 如果已经通过 Docker Compose 在主机上部署了另一个版本的 Nebula Graph,为避免兼容性问题,需要删除目录`nebula-docker-compose/data`。 -## 部署和连接Nebula Graph +## 部署和连接 Nebula Graph -1. 通过Git克隆`nebula-docker-compose`仓库的`{{dockercompose.release}}`分支到主机。 +1. 通过 Git 克隆`nebula-docker-compose`仓库的`{{dockercompose.release}}`分支到主机。 !!! danger @@ -36,11 +36,11 @@ $ cd nebula-docker-compose/ ``` -3. 执行如下命令启动Nebula Graph服务。 +3. 执行如下命令启动 Nebula Graph 服务。 !!! Note - 如果长期未更新镜像,请先更新[Nebula Graph镜像](#nebula_graphdocker)和[Nebula Console镜像](#nebula_console)。 + 如果长期未更新镜像,请先更新 [Nebula Graph 镜像](#nebula_graphdocker) 和 [Nebula Console 镜像](#nebula_console)。 ```bash [nebula-docker-compose]$ docker-compose up -d @@ -57,11 +57,11 @@ !!! Note - 上述服务的更多信息,请参见[架构总览](../../1.introduction/3.nebula-graph-architecture/1.architecture-overview.md)。 + 上述服务的更多信息,请参见 [架构总览](../../1.introduction/3.nebula-graph-architecture/1.architecture-overview.md)。 -4. 连接Nebula Graph。 +4. 连接 Nebula Graph。 - 1. 使用Nebula Console镜像启动一个容器,并连接到Nebula Graph服务所在的网络(nebula-docker-compose_nebula-net)中。 + 1. 使用 Nebula Console 镜像启动一个容器,并连接到 Nebula Graph 服务所在的网络(nebula-docker-compose_nebula-net)中。 ```bash $ docker run --rm -ti --network nebula-docker-compose_nebula-net --entrypoint=/bin/sh vesoft/nebula-console:{{console.branch}} @@ -80,7 +80,7 @@ 93ba48b4b288 none null local ``` - 2. 通过Nebula Console连接Nebula Graph。 + 2. 通过 Nebula Console 连接 Nebula Graph。 ```bash docker> nebula-console -u -p --address=graphd --port=9669 @@ -88,7 +88,7 @@ !!! Note - 默认情况下,身份认证功能是关闭的,只能使用已存在的用户名(默认为`root`)和任意密码登录。如果想使用身份认证,请参见[身份认证](../../7.data-security/1.authentication/1.authentication.md)。 + 默认情况下,身份认证功能是关闭的,只能使用已存在的用户名(默认为`root`)和任意密码登录。如果想使用身份认证,请参见 [身份认证](../../7.data-security/1.authentication/1.authentication.md)。 3. 执行如下命令检查`nebula-storaged`进程状态。 @@ -106,9 +106,9 @@ 5. 执行两次`exit` 可以退出容器。 -## 查看Nebula Graph服务的状态和端口 +## 查看 Nebula Graph 服务的状态和端口 -执行命令`docker-compose ps`可以列出Nebula Graph服务的状态和端口。 +执行命令`docker-compose ps`可以列出 Nebula Graph 服务的状态和端口。 ```bash $ docker-compose ps @@ -134,11 +134,11 @@ nebula-docker-compose_storaged2_1 ./bin/nebula-storaged --fl ... Up (health: 44500/tcp, 44501/tcp, 0.0.0.0:33300->9779/tcp ``` -Nebula Graph默认使用`9669`端口为客户端提供服务,如果需要修改端口,请修改目录`nebula-docker-compose`内的文件`docker-compose.yaml`,然后重启Nebula Graph服务。 +Nebula Graph 默认使用`9669`端口为客户端提供服务,如果需要修改端口,请修改目录`nebula-docker-compose`内的文件`docker-compose.yaml`,然后重启 Nebula Graph 服务。 -## 查看Nebula Graph服务的数据和日志 +## 查看 Nebula Graph 服务的数据和日志 -Nebula Graph的所有数据和日志都持久化存储在`nebula-docker-compose/data`和`nebula-docker-compose/logs`目录中。 +Nebula Graph 的所有数据和日志都持久化存储在`nebula-docker-compose/data`和`nebula-docker-compose/logs`目录中。 目录的结构如下: @@ -164,9 +164,9 @@ nebula-docker-compose/ └── storage2 ``` -## 停止Nebula Graph服务 +## 停止 Nebula Graph 服务 -用户可以执行如下命令停止Nebula Graph服务: +用户可以执行如下命令停止 Nebula Graph 服务: ```bash $ docker-compose down @@ -198,17 +198,17 @@ Removing network nebula-docker-compose_nebula-net !!! danger - 命令`docker-compose down -v`的参数`-v`将会**删除**所有本地的数据。如果使用的是nightly版本,并且有一些兼容性问题,请尝试这个命令。 + 命令`docker-compose down -v`的参数`-v`将会**删除**所有本地的数据。如果使用的是 nightly 版本,并且有一些兼容性问题,请尝试这个命令。 ## 修改配置 -Docker Compose部署的Nebula Graph,配置文件位置为`nebula-docker-compose/docker-compose.yaml`,修改该文件内的配置并重启服务即可使新配置生效。 +Docker Compose 部署的 Nebula Graph,配置文件位置为`nebula-docker-compose/docker-compose.yaml`,修改该文件内的配置并重启服务即可使新配置生效。 -具体的配置说明请参见[配置管理](../../5.configurations-and-logs/1.configurations/1.configurations.md)。 +具体的配置说明请参见 [配置管理](../../5.configurations-and-logs/1.configurations/1.configurations.md)。 ## 常见问题 -### 如何固定Docker映射到外部的端口? +### 如何固定 Docker 映射到外部的端口? 在目录`nebula-docker-compose`内修改文件`docker-compose.yaml`,将对应服务的`ports`设置为固定映射,例如: @@ -222,20 +222,20 @@ graphd: - 19670 ``` -`9669:9669`表示内部的9669映射到外部的端口也是9669,下方的`19669`表示内部的19669映射到外部的端口是随机的。 +`9669:9669`表示内部的 9669 映射到外部的端口也是 9669,下方的`19669`表示内部的 19669 映射到外部的端口是随机的。 -### 如何升级/更新Nebula Graph服务的Docker镜像? +### 如何升级/更新 Nebula Graph 服务的 Docker 镜像? 1. 在文件`nebula-docker-compose/docker-compose.yaml`中,找到所有服务的`image`并修改其值为相应的镜像版本。 -2. 在目录`nebula-docker-compose`内执行命令`docker-compose pull`,更新Graph服务、Storage服务和Meta服务的镜像。 +2. 在目录`nebula-docker-compose`内执行命令`docker-compose pull`,更新 Graph 服务、Storage 服务和 Meta 服务的镜像。 !!! note - 执行`docker-compose pull`命令更新服务镜像前,确保已停止Nebula Graph。 + 执行`docker-compose pull`命令更新服务镜像前,确保已停止 Nebula Graph。 -3. 执行命令`docker-compose up -d`启动Nebula Graph服务。 +3. 执行命令`docker-compose up -d`启动 Nebula Graph 服务。 -4. 通过Nebula Console连接Nebula Graph后,分别执行命令`SHOW HOSTS GRAPH`、`SHOW HOSTS STORAGE`、`SHOW HOSTS META`查看各服务版本。 +4. 通过 Nebula Console 连接 Nebula Graph 后,分别执行命令`SHOW HOSTS GRAPH`、`SHOW HOSTS STORAGE`、`SHOW HOSTS META`查看各服务版本。 ### 执行命令`docker-compose pull`报错`ERROR: toomanyrequests` @@ -243,32 +243,32 @@ graphd: `ERROR: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit` -以上错误表示已达到Docker Hub的速率限制。解决方案请参见[Understanding Docker Hub Rate Limiting](https://www.docker.com/increase-rate-limit)。 +以上错误表示已达到 Docker Hub 的速率限制。解决方案请参见 [Understanding Docker Hub Rate Limiting](https://www.docker.com/increase-rate-limit)。 -### 如何更新Nebula Console? +### 如何更新 Nebula Console? -执行如下命令可以更新Nebula Console客户端镜像。 +执行如下命令可以更新 Nebula Console 客户端镜像。 ```bash docker pull vesoft/nebula-console:{{console.branch}} ``` -### 为什么更新nebula-docker-compose仓库(Nebula Graph 2.0.0-RC)后,无法通过端口`3699`连接Nebula Graph? +### 为什么更新 nebula-docker-compose 仓库(Nebula Graph 2.0.0-RC)后,无法通过端口`3699`连接 Nebula Graph? 在 Nebula Graph 2.0.0-RC 版本,默认端口从`3699`改为`9669`。请使用`9669`端口连接,或修改配置文件`docker-compose.yaml`内的端口。 -### 为什么更新nebula-docker-compose仓库后,无法访问数据?(2021年01月04日) +### 为什么更新 nebula-docker-compose 仓库后,无法访问数据?(2021 年 01 月 04 日) -如果在2021年01月04日后更新过nebula-docker-compose仓库,而且之前已经有数据,请修改文件`docker-compose.yaml`,将端口修改为之前使用的端口。详情请参见[修改默认端口](https://github.com/vesoft-inc/nebula-docker-compose/commit/2a612f1c4f0e2c31515e971b24b355b3be69420a)。 +如果在 2021 年 01 月 04 日后更新过 nebula-docker-compose 仓库,而且之前已经有数据,请修改文件`docker-compose.yaml`,将端口修改为之前使用的端口。详情请参见 [修改默认端口](https://github.com/vesoft-inc/nebula-docker-compose/commit/2a612f1c4f0e2c31515e971b24b355b3be69420a)。 -### 为什么更新nebula-docker-compose仓库后,无法访问数据?(2021年01月27日) +### 为什么更新 nebula-docker-compose 仓库后,无法访问数据?(2021 年 01 月 27 日) -2021年01月27日修改了数据格式,无法兼容之前的数据,请执行命令`docker-compose down -v`删除所有本地数据。 +2021 年 01 月 27 日修改了数据格式,无法兼容之前的数据,请执行命令`docker-compose down -v`删除所有本地数据。 ## 相关视频 -用户也可以查看视频快速部署Nebula Graph 2.0。 +用户也可以查看视频快速部署 Nebula Graph 2.0。 -[使用 docker compose 部署 Nebula Graph 2.0 和 Web Studio](https://www.bilibili.com/video/BV1T54y1b7pa)(18分10秒) +[使用 docker compose 部署 Nebula Graph 2.0 和 Web Studio](https://www.bilibili.com/video/BV1T54y1b7pa)(18 分 10 秒) diff --git a/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md b/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md index 59da1de61f3..2d08ff9b4b8 100644 --- a/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md +++ b/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md @@ -1,14 +1,14 @@ -# 使用tar.gz文件安装Nebula Graph +# 使用 tar.gz 文件安装 Nebula Graph -用户可以下载打包好的tar.gz文件快速安装Nebula Graph。 +用户可以下载打包好的 tar.gz 文件快速安装 Nebula Graph。 !!! note - Nebula Graph从2.6.0版本起提供tar.gz文件。 + Nebula Graph 从 2.6.0 版本起提供 tar.gz 文件。 ## 操作步骤 -1. 使用如下地址下载Nebula Graph的tar.gz文件。 +1. 使用如下地址下载 Nebula Graph 的 tar.gz 文件。 下载前需将``替换为需要下载的版本。 @@ -39,19 +39,19 @@ https://oss-cdn.nebula-graph.com.cn/package//nebula-graph-.ubuntu2004.amd64.tar.gz.sha256sum.txt ``` - 例如,要下载适用于`CentOS 7.5`的Nebula Graph {{nebula.branch}} tar.gz文件,运行以下命令: + 例如,要下载适用于`CentOS 7.5`的 Nebula Graph {{nebula.branch}} tar.gz 文件,运行以下命令: ```bash wget https://oss-cdn.nebula-graph.com.cn/package/{{nebula.release}}/nebula-graph-{{nebula.release}}.el7.x86_64.tar.gz ``` -2. 解压tar.gz文件到Nebula Graph安装目录。 +2. 解压 tar.gz 文件到 Nebula Graph 安装目录。 ```bash tar -xvzf -C ``` - * `tar.gz_file_name`表示tar.gz文件的名称。 + * `tar.gz_file_name`表示 tar.gz 文件的名称。 * `install_path`表示安装路径。 例如: @@ -62,12 +62,12 @@ 3. 修改配置文件名以应用配置。 - 进入解压出的目录,将子目录`etc`中的文件`nebula-graphd.conf.default`、`nebula-metad.conf.default`和`nebula-storaged.conf.default`重命名,删除`.default`,即可应用Nebula Graph的默认配置。如需修改配置,参见[配置管理](../../5.configurations-and-logs/1.configurations/1.configurations.md)。 + 进入解压出的目录,将子目录`etc`中的文件`nebula-graphd.conf.default`、`nebula-metad.conf.default`和`nebula-storaged.conf.default`重命名,删除`.default`,即可应用 Nebula Graph 的默认配置。如需修改配置,参见 [配置管理](../../5.configurations-and-logs/1.configurations/1.configurations.md)。 -至此,Nebula Graph安装完毕。 +至此,Nebula Graph 安装完毕。 ## 下一步 -- (企业版)[设置License](../deploy-license.md) +- (企业版)[设置 License](../deploy-license.md) -- [管理Nebula Graph服务](../manage-service.md) +- [管理 Nebula Graph 服务](../manage-service.md) diff --git a/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md b/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md index fb68272c56f..5a79946138f 100644 --- a/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md +++ b/docs-2.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md @@ -1,10 +1,10 @@ -# 使用RPM/DEB包部署Nebula Graph多机集群 +# 使用 RPM/DEB 包部署 Nebula Graph 多机集群 -Nebula Graph不提供官方的集群部署工具,用户可以使用RPM或DEB文件手动部署集群。本文提供了部署集群的示例。 +Nebula Graph 不提供官方的集群部署工具,用户可以使用 RPM 或 DEB 文件手动部署集群。本文提供了部署集群的示例。 ## 部署方案 -| 机器名称 |IP地址 | graphd进程数量 | storaged进程数量 | metad进程数量 | +| 机器名称 |IP 地址 | graphd 进程数量 | storaged 进程数量 | metad 进程数量 | | :----- |:---------------|:------------- | :----------------- | :---------------- | | A | 192.168.10.111 |1 | 1 | 1 | | B | 192.168.10.112 |1 | 1 | 1 | @@ -14,23 +14,23 @@ Nebula Graph不提供官方的集群部署工具,用户可以使用RPM或DEB ## 前提条件 -准备5台用于部署集群的机器。 +准备 5 台用于部署集群的机器。 ## 手动部署流程 -### 1.安装Nebula Graph +### 1. 安装 Nebula Graph -在集群的每一台服务器上都安装Nebula Graph,安装后暂不需要启动服务。安装方式请参见: +在集群的每一台服务器上都安装 Nebula Graph,安装后暂不需要启动服务。安装方式请参见: -- [使用RPM或DEB包安装Nebula Graph](2.install-nebula-graph-by-rpm-or-deb.md) +- [使用 RPM 或 DEB 包安装 Nebula Graph](2.install-nebula-graph-by-rpm-or-deb.md) -- [使用源码安装Nebula Graph](1.install-nebula-graph-by-compiling-the-source-code.md) +- [使用源码安装 Nebula Graph](1.install-nebula-graph-by-compiling-the-source-code.md) -### 2.修改配置文件 +### 2. 修改配置文件 -修改每个服务器上的Nebula Graph配置文件。 +修改每个服务器上的 Nebula Graph 配置文件。 -Nebula Graph的所有配置文件均位于安装目录的`etc`目录内,包括`nebula-graphd.conf`、`nebula-metad.conf`和`nebula-storaged.conf`,用户可以只修改所需服务的配置文件。各个机器需要修改的配置文件如下。 +Nebula Graph 的所有配置文件均位于安装目录的`etc`目录内,包括`nebula-graphd.conf`、`nebula-metad.conf`和`nebula-storaged.conf`,用户可以只修改所需服务的配置文件。各个机器需要修改的配置文件如下。 | 机器名称 |待修改配置文件 | | :----- |:---------------| @@ -44,15 +44,15 @@ Nebula Graph的所有配置文件均位于安装目录的`etc`目录内,包括 !!! note - 主要修改的配置是`meta_server_addrs`,所有配置文件都需要填写所有Meta服务的IP地址和端口,同时需要修改`local_ip`为机器本身的联网IP地址。配置参数的详细说明请参见: + 主要修改的配置是`meta_server_addrs`,所有配置文件都需要填写所有 Meta 服务的 IP 地址和端口,同时需要修改`local_ip`为机器本身的联网 IP 地址。配置参数的详细说明请参见: - - [Meta服务配置](../../5.configurations-and-logs/1.configurations/2.meta-config.md) + - [Meta 服务配置](../../5.configurations-and-logs/1.configurations/2.meta-config.md) - - [Graph服务配置](../../5.configurations-and-logs/1.configurations/3.graph-config.md) + - [Graph 服务配置](../../5.configurations-and-logs/1.configurations/3.graph-config.md) - - [Storage服务配置](../../5.configurations-and-logs/1.configurations/4.storage-config.md) + - [Storage 服务配置](../../5.configurations-and-logs/1.configurations/4.storage-config.md) -- 机器A配置 +- 机器 A 配置 - `nebula-graphd.conf` @@ -98,7 +98,7 @@ Nebula Graph的所有配置文件均位于安装目录的`etc`目录内,包括 --port=9559 ``` -- 机器B配置 +- 机器 B 配置 - `nebula-graphd.conf` @@ -144,7 +144,7 @@ Nebula Graph的所有配置文件均位于安装目录的`etc`目录内,包括 --port=9559 ``` -- 机器C配置 +- 机器 C 配置 - `nebula-graphd.conf` @@ -190,7 +190,7 @@ Nebula Graph的所有配置文件均位于安装目录的`etc`目录内,包括 --port=9559 ``` -- 机器D配置 +- 机器 D 配置 - `nebula-graphd.conf` @@ -222,7 +222,7 @@ Nebula Graph的所有配置文件均位于安装目录的`etc`目录内,包括 --port=9779 ``` -- 机器E配置 +- 机器 E 配置 - `nebula-graphd.conf` @@ -254,7 +254,7 @@ Nebula Graph的所有配置文件均位于安装目录的`etc`目录内,包括 --port=9779 ``` -### 3.启动集群 +### 3. 启动集群 依次启动**各个服务器**上的对应进程。 @@ -266,7 +266,7 @@ Nebula Graph的所有配置文件均位于安装目录的`etc`目录内,包括 | D | graphd、storaged | | E | graphd、storaged | -启动Nebula Graph进程的命令如下: +启动 Nebula Graph 进程的命令如下: ```bash sudo /usr/local/nebula/scripts/nebula.service start @@ -276,13 +276,13 @@ sudo /usr/local/nebula/scripts/nebula.service start - 确保每个服务器中的对应进程都已启动,否则服务将启动失败。 - - 当需都启动graphd、storaged和metad时,可以用all代替。 + - 当需都启动 graphd、storaged 和 metad 时,可以用 all 代替。 - - `/usr/local/nebula`是Nebula Graph的默认安装路径,如果修改过安装路径,请使用实际路径。更多启停服务的内容,请参见[管理Nebula Graph服务](../../2.quick-start/5.start-stop-service.md)。 + - `/usr/local/nebula`是 Nebula Graph 的默认安装路径,如果修改过安装路径,请使用实际路径。更多启停服务的内容,请参见 [管理 Nebula Graph 服务](../../2.quick-start/5.start-stop-service.md)。 -### 4.检查集群 +### 4. 检查集群 -安装原生CLI客户端[Nebula Console](../../2.quick-start/3.connect-to-nebula-graph.md#_1),然后连接任何一个已启动graphd进程的机器,执行命令`SHOW HOSTS`检查集群状态。例如: +安装原生 CLI 客户端 [Nebula Console](../../2.quick-start/3.connect-to-nebula-graph.md#_1),然后连接任何一个已启动 graphd 进程的机器,执行命令`SHOW HOSTS`检查集群状态。例如: ```bash $ ./nebula-console --addr 192.168.10.111 --port 9669 -u root -p nebula diff --git a/docs-2.0/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-from-200-to-latest.md b/docs-2.0/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-from-200-to-latest.md index 2c3ebac370e..1544617414c 100644 --- a/docs-2.0/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-from-200-to-latest.md +++ b/docs-2.0/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-from-200-to-latest.md @@ -1,20 +1,20 @@ -# 升级Nebula Graph v2.0.x至v{{nebula.release}} +# 升级 Nebula Graph v2.0.x 至 v{{nebula.release}} -Nebula Graph v2.0.x升级至v{{nebula.release}},只需要使用v{{nebula.release}}的RPM/DEB包进行升级操作即可,或者[编译v{{nebula.release}}](../2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)之后重新安装。 +Nebula Graph v2.0.x 升级至 v{{nebula.release}},只需要使用 v{{nebula.release}}的 RPM/DEB 包进行升级操作即可,或者 [编译 v{{nebula.release}}](../2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md) 之后重新安装。 !!! note - Nebula Graph v2.0.x指v2.0.0-GA和v2.0.1版本。如果Nebula Graph版本过低(v2.0.0-RC、v2.0.0-beta、v1.x),请参见[升级 Nebula Graph 历史版本至 v{{nebula.release}}](upgrade-nebula-graph-to-latest.md)。 + Nebula Graph v2.0.x 指 v2.0.0-GA 和 v2.0.1 版本。如果 Nebula Graph 版本过低(v2.0.0-RC、v2.0.0-beta、v1.x),请参见 [升级 Nebula Graph 历史版本至 v{{nebula.release}}](upgrade-nebula-graph-to-latest.md)。 -## RPM/DEB包升级步骤 +## RPM/DEB 包升级步骤 -1. 下载[RPM/DEB包](https://github.com/vesoft-inc/nebula-graph/releases/tag/v{{nebula.release}})。 +1. 下载 [RPM/DEB 包](https://github.com/vesoft-inc/nebula-graph/releases/tag/v{{nebula.release}})。 -2. 停止所有Nebula Graph服务。详情请参见[管理Nebula Graph服务](../../2.quick-start/5.start-stop-service.md)。建议更新前备份配置文件。 +2. 停止所有 Nebula Graph 服务。详情请参见 [管理 Nebula Graph 服务](../../2.quick-start/5.start-stop-service.md)。建议更新前备份配置文件。 3. 执行如下命令升级: - - RPM包 + - RPM 包 ```bash $ sudo rpm -Uvh @@ -25,30 +25,30 @@ Nebula Graph v2.0.x升级至v{{nebula.release}},只需要使用v{{nebula.relea ```bash $ sudo rpm -Uvh --prefix= ``` - - DEB包 + - DEB 包 ```bash $ sudo dpkg -i ``` -4. 在每台服务器上启动所需的服务。详情请参见[管理Nebula Graph服务](../../2.quick-start/5.start-stop-service.md#_1)。 +4. 在每台服务器上启动所需的服务。详情请参见 [管理 Nebula Graph 服务](../../2.quick-start/5.start-stop-service.md#_1)。 ## 编译新版本源码升级步骤 -1. 备份旧版本的配置文件。配置文件保存在Nebula Graph安装路径的`etc`目录内。 +1. 备份旧版本的配置文件。配置文件保存在 Nebula Graph 安装路径的`etc`目录内。 -2. 更新仓库并编译源码。详情请参见[使用源码安装Nebula Graph](../2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。 +2. 更新仓库并编译源码。详情请参见 [使用源码安装 Nebula Graph](../2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。 !!! note 编译时注意设置安装路径,和旧版本的安装路径保持一致。 -## Docker Compose部署升级步骤 +## Docker Compose 部署升级步骤 1. 修改目录`nebula-docker-compose`内的文件`docker-compose.yaml`,将`image`后的所有版本都修改为`{{nebula.branch}}`。 2. 在目录`nebula-docker-compose`内执行命令`docker-compose pull`,更新所有服务的镜像版本。 -3. 执行命令`docker-compose down`停止Nebula Graph服务。 +3. 执行命令`docker-compose down`停止 Nebula Graph 服务。 -4. 执行命令`docker-compose up -d`启动Nebula Graph服务。 +4. 执行命令`docker-compose up -d`启动 Nebula Graph 服务。 diff --git a/docs-2.0/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-graph-to-latest.md b/docs-2.0/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-graph-to-latest.md index 650dc747809..df44afa4c15 100644 --- a/docs-2.0/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-graph-to-latest.md +++ b/docs-2.0/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-graph-to-latest.md @@ -1,10 +1,10 @@ -# 升级Nebula Graph历史版本至v{{nebula.release}} +# 升级 Nebula Graph 历史版本至 v{{nebula.release}} -Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍如何升级历史版本至v{{nebula.release}}。 +Nebula Graph 历史版本指低于 Nebula Graph v2.0.0-GA 的版本,本文介绍如何升级历史版本至 v{{nebula.release}}。 !!! note - Nebula Graph v2.0.0-GA或更新版本升级至v{{nebula.release}},请参见[Nebula Graph v2.0.x升级至v{{nebula.release}}](upgrade-nebula-from-200-to-latest.md)。 + Nebula Graph v2.0.0-GA 或更新版本升级至 v{{nebula.release}},请参见 [Nebula Graph v2.0.x 升级至 v{{nebula.release}}](upgrade-nebula-from-200-to-latest.md)。 ## 升级限制 @@ -12,21 +12,21 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 - 未提供升级脚本,需手动在每台服务器上依次执行。 -- **不支持**基于Docker容器(包括Docker Swarm、Docker Compose、K8s)的升级。 +- **不支持**基于 Docker 容器(包括 Docker Swarm、Docker Compose、K8s)的升级。 -- 必须在原服务器上原地升级,不能修改原机器的IP地址、配置文件,不可更改集群拓扑。 +- 必须在原服务器上原地升级,不能修改原机器的 IP 地址、配置文件,不可更改集群拓扑。 - 硬盘空间要求:各机器硬盘剩余空间都需要是原数据目录的**三倍**。 -- 已知会造成数据丢失的4种场景,和alter schema以及default value相关,请参见[github known issues](https://github.com/vesoft-inc/nebula-graph/issues/857)。 +- 已知会造成数据丢失的 4 种场景,和 alter schema 以及 default value 相关,请参见 [github known issues](https://github.com/vesoft-inc/nebula-graph/issues/857)。 - 所有的客户端均需要升级,通信协议不兼容。 -- 升级时间大约需要30分钟(取决于具体配置),请参见文末测试环境。 +- 升级时间大约需要 30 分钟(取决于具体配置),请参见文末测试环境。 - 数据目录不要使用软连接切换,避免失效。 -- 升级操作需要有sudo权限。 +- 升级操作需要有 sudo 权限。 ## 前置条件说明 @@ -34,17 +34,17 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 默认情况下,历史版本安装的根目录为`/usr/local/nebula/`(下文记为 `${nebula-old}`)。默认配置文件目录为 `${nebula-old}/etc/`。 -- `${nebula-old}/etc/nebula-storaged.conf`文件中的`--data_path`参数指定了storaged数据目录的位置,其默认值为`data/storage`。 +- `${nebula-old}/etc/nebula-storaged.conf`文件中的`--data_path`参数指定了 storaged 数据目录的位置,其默认值为`data/storage`。 -- `${nebula-old}/etc/nebula-metad.conf`文件中的`--data_path`参数指定了metad数据目录位置,其默认值为`data/meta`。 +- `${nebula-old}/etc/nebula-metad.conf`文件中的`--data_path`参数指定了 metad 数据目录位置,其默认值为`data/meta`。 !!! Note - Nebula Graph的实际安装路径可能和本文示例不同,请使用实际路径。用户也可以用 `ps -ef | grep nebula` 中的参数来找到实际使用的配置文件地址。 + Nebula Graph 的实际安装路径可能和本文示例不同,请使用实际路径。用户也可以用 `ps -ef | grep nebula` 中的参数来找到实际使用的配置文件地址。 ### 新版本安装目录 -本文中新版本安装目录记为 `${nebula-new}` (例如 `/usr/local/nebula-new/`)。 +本文中新版本安装目录记为 `${nebula-new}` (例如 `/usr/local/nebula-new/`)。 ``` # mkdir -p ${nebula-new} @@ -82,16 +82,16 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 1. 安装新的二进制文件。 - - 如果从 RPM/DEB 安装,从[release page](https://github.com/vesoft-inc/nebula-graph/releases)下载对应操作系统的安装包。 + - 如果从 RPM/DEB 安装,从 [release page](https://github.com/vesoft-inc/nebula-graph/releases) 下载对应操作系统的安装包。 ``` # sudo rpm --force -i --prefix=${nebula-new} ${nebula-package-name.rpm} # for centos/redhat # sudo dpkg -i --instdir==${nebula-new} ${nebula-package-name.deb} # for ubuntu ``` - 具体步骤请参见[从RPM/DEB安装](../2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md)。 + 具体步骤请参见 [从 RPM/DEB 安装](../2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md)。 - - 如果从源代码安装。具体步骤请参见[从源代码安装](../2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。这里列出几个关键命令: + - 如果从源代码安装。具体步骤请参见 [从源代码安装](../2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。这里列出几个关键命令: - clone 源代码 @@ -111,13 +111,13 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 # cp -rf ${nebula-old}/etc ${nebula-new}/ ``` -4. 在曾经运行 metad 的服务器上(通常为3台),拷贝 metad 数据、配置文件到新目录。 +4. 在曾经运行 metad 的服务器上(通常为 3 台),拷贝 metad 数据、配置文件到新目录。 - 拷贝 metad 数据 在 `${nebula-old}/etc/nebula-metad.conf` 中找到 `--data_path` 项(其默认值为 `data/meta`) - - 如果历史版本配置**未更改** `--data_path` 项,则可以运行如下命令,将metad数据拷贝到新目录。 + - 如果历史版本配置**未更改** `--data_path` 项,则可以运行如下命令,将 metad 数据拷贝到新目录。 ``` # mkdir -p ${nebula-new}/data/meta/ @@ -134,20 +134,19 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 # vim ${nebula-new}/nebula-metad.conf ``` - - [可选]增加配置项: + - [可选] 增加配置项: - `--null_type=false`: 升级后的Schema的属性是否要支持 [`NULL`](../../3.ngql-guide/3.data-types/5.null.md),**默认为 true**。不希望支持 NULL 的话,设置为 false。此时,升级后的 Schema 如果要增加属性(ALTER TAG/EDGE)必须指定 [default 值](../../3.ngql-guide/10.tag-statements/1.create-tag.md),否则会读不出数据。 + `--null_type=false`: 升级后的 Schema 的属性是否要支持 [`NULL`](../../3.ngql-guide/3.data-types/5.null.md),**默认为 true**。不希望支持 NULL 的话,设置为 false。此时,升级后的 Schema 如果要增加属性(ALTER TAG/EDGE)必须指定 [default 值](../../3.ngql-guide/10.tag-statements/1.create-tag.md),否则会读不出数据。 - `--string_index_limit=32`: 升级后 string 对应的[索引的长度](../../3.ngql-guide/14.native-index-statements/1.create-native-index.md),不加的话系统默认为 64。 + `--string_index_limit=32`: 升级后 string 对应的 [索引的长度](../../3.ngql-guide/14.native-index-statements/1.create-native-index.md),不加的话系统默认为 64。 !!! Note - 请确保在每个metad服务器都完成了以上操作。 + 请确保在每个 metad 服务器都完成了以上操作。 -5. 在每个 storaged 服务器上, 修改 storaged 配置文件。 +5. 在每个 storaged 服务器上,修改 storaged 配置文件。 - - + [可选]如果历史版本 storaged 数据目录 `--data_path=data/storage` 不是默认值,有更改。 + + [可选] 如果历史版本 storaged 数据目录 `--data_path=data/storage` 不是默认值,有更改。 ``` # vim ${nebula-new}/nebula-storaged.conf @@ -198,13 +197,13 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 参数说明: - - `--src_db_path`:**历史版本**storaged的数据目录的绝对路径,多个目录用逗号分隔,不加空格。 + - `--src_db_path`:**历史版本** storaged 的数据目录的绝对路径,多个目录用逗号分隔,不加空格。 - - `--dst_db_path`:**新版本**storaged的数据目录的绝对路径,多个目录用逗号分隔。逗号分隔的目录必须和`--src_db_path`中一一对应。 + - `--dst_db_path`:**新版本** storaged 的数据目录的绝对路径,多个目录用逗号分隔。逗号分隔的目录必须和`--src_db_path`中一一对应。 - - `--upgrade_meta_server` :步骤6中启动的所有新 metad 的地址. + - `--upgrade_meta_server` :步骤 6 中启动的所有新 metad 的地址。 - - `--upgrade_version`:如果历史版本为v1.2.x,则填写1;如果历史版本为v2.0.0-RC,则填写2。不可填写其他数字。 + - `--upgrade_version`:如果历史版本为 v1.2.x,则填写 1;如果历史版本为 v2.0.0-RC,则填写 2。不可填写其他数字。 !!! danger @@ -233,9 +232,9 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 !!! Note - 如果工具抛出异常请在论坛提交问题。**放弃本次升级,关闭所有已经启动的 metad,在原目录正常启动 nebula 服务。** - - 请确保在每个storaged服务器都完成了以上操作。 + - 请确保在每个 storaged 服务器都完成了以上操作。 -8. 在每个storaged服务器启动新版本的storaged服务。 +8. 在每个 storaged 服务器启动新版本的 storaged 服务。 ``` # ${nebula-new}/scripts/nebula.service start storaged @@ -244,7 +243,7 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 !!! Note - 如果有 storaged 未正常启动,请将日志`${nebula-new}/logs/`在论坛提交问题。**放弃本次升级,关闭所有已经启动的 metad和storaged,在原目录正常启动 nebula 服务。** + 如果有 storaged 未正常启动,请将日志`${nebula-new}/logs/`在论坛提交问题。**放弃本次升级,关闭所有已经启动的 metad 和 storaged,在原目录正常启动 nebula 服务。** 9. 在每个 graphd 服务器启动新版本的 graphd 服务。 @@ -254,9 +253,9 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 ``` !!! Note - 如果有graphd未正常启动,请将日志`${nebula-new}/logs/`在论坛提交问题。**放弃本次升级,关闭所有已经启动的 metad,storaged,graphd. 在原目录正常启动 nebula 服务。** + 如果有 graphd 未正常启动,请将日志`${nebula-new}/logs/`在论坛提交问题。**放弃本次升级,关闭所有已经启动的 metad,storaged,graphd. 在原目录正常启动 nebula 服务。** -10. 使用[新版本Nebula Console](https://github.com/vesoft-inc/nebula-console) 连接新的Nebula Graph,验证服务是否可用、数据是否正常。命令行参数,如 graphd 的 IP、端口都不变。 +10. 使用 [新版本 Nebula Console](https://github.com/vesoft-inc/nebula-console) 连接新的 Nebula Graph,验证服务是否可用、数据是否正常。命令行参数,如 graphd 的 IP、端口都不变。 ```ngql nebula> SHOW HOSTS; @@ -269,11 +268,11 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 !!! Note - 历史版本Nebula Console可能会有兼容性问题。 + 历史版本 Nebula Console 可能会有兼容性问题。 11. 升级其他客户端。 - 所有的客户端都必须升级到支持Nebula Graph v{{nebula.release}} 的版本。包括但不限于[Python](https://github.com/vesoft-inc/nebula-python)、[Java](https://github.com/vesoft-inc/nebula-java)、[go](https://github.com/vesoft-inc/nebula-go)、[C++](https://github.com/vesoft-inc/nebula-cpp)、[Flink-connector](https://github.com/vesoft-inc/nebula-flink-connector)、[Algorithm](https://github.com/vesoft-inc/nebula-algorithm)、[Exchange](https://github.com/vesoft-inc/nebula-exchange)、[Spark-connector](https://github.com/vesoft-inc/nebula-spark-connector)、[Nebula Bench](https://github.com/vesoft-inc/nebula-bench)。请找到各 repo 对应的 branch。 + 所有的客户端都必须升级到支持 Nebula Graph v{{nebula.release}} 的版本。包括但不限于 [Python](https://github.com/vesoft-inc/nebula-python)、[Java](https://github.com/vesoft-inc/nebula-java)、[go](https://github.com/vesoft-inc/nebula-go)、[C++](https://github.com/vesoft-inc/nebula-cpp)、[Flink-connector](https://github.com/vesoft-inc/nebula-flink-connector)、[Algorithm](https://github.com/vesoft-inc/nebula-algorithm)、[Exchange](https://github.com/vesoft-inc/nebula-exchange)、[Spark-connector](https://github.com/vesoft-inc/nebula-spark-connector)、[Nebula Bench](https://github.com/vesoft-inc/nebula-bench)。请找到各 repo 对应的 branch。 !!! Note @@ -287,17 +286,17 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 所有周边客户端也切换为**历史版本**。 -## 附1:升级测试环境 +## 附 1:升级测试环境 本文测试升级的环境如下: -- 机器配置:32核CPU、62 GB内存、SSD +- 机器配置:32 核 CPU、62 GB 内存、SSD -- 数据规模:Nebula Graph 1.2 版本 LDBC 测试数据 100 GB(1个图空间、24个分片、data目录 92 GB) +- 数据规模:Nebula Graph 1.2 版本 LDBC 测试数据 100 GB(1 个图空间、24 个分片、data 目录 92 GB) - 并发参数:`--max_concurrent=5`、`--max_concurrent_parts=24`、`--write_batch_num=100` -升级共耗时**21分钟**(其中 compaction 耗时13分钟)。工具并发参数说明如下: +升级共耗时** 21 分钟**(其中 compaction 耗时 13 分钟)。工具并发参数说明如下: |参数名称|默认值| |:---|:---| @@ -305,7 +304,7 @@ Nebula Graph历史版本指低于Nebula Graph v2.0.0-GA的版本,本文介绍 |`--max_concurrent_parts`|10| |`--write_batch_num`|100| -## 附2:Nebula Graph v2.0.0 代码地址和 commit id +## 附 2:Nebula Graph v2.0.0 代码地址和 commit id | 地址 | commit id | |:---|:---| @@ -321,11 +320,11 @@ A:不可以。这个过程中写入的数据状态是未定义的。 Q:除了 v1.2.x 和 v2.0.0-RC 外,其他版本是否支持升级? -A:未验证过。理论上 v1.0.0 - v1.2.0 都可以采用 v1.2.x 的升级版本。 v2.0.0-RC之前的日常研发版本(nightly)无升级方案。 +A:未验证过。理论上 v1.0.0 - v1.2.0 都可以采用 v1.2.x 的升级版本。 v2.0.0-RC 之前的日常研发版本(nightly)无升级方案。 Q:如果某台机器只有 graphd 服务,没有 storaged 服务,如何升级? -A:只需要升级 graphd 对应的 binary (或者RPM包)。 +A:只需要升级 graphd 对应的 binary (或者 RPM 包)。 Q:操作报错 `Permission denied`。 @@ -333,7 +332,7 @@ A:部分命令需要有 sudo 权限。 Q:是否有 gflags 发生改变? -A: 目前已知的 gflags 改变整理在[github issues](https://github.com/vesoft-inc/nebula/issues/2501)。 +A: 目前已知的 gflags 改变整理在 [github issues](https://github.com/vesoft-inc/nebula/issues/2501)。 Q:删除数据重新安装,和升级有何不同? diff --git a/docs-2.0/4.deployment-and-installation/4.uninstall-nebula-graph.md b/docs-2.0/4.deployment-and-installation/4.uninstall-nebula-graph.md index 986b7a9dee2..bd641eadcb7 100644 --- a/docs-2.0/4.deployment-and-installation/4.uninstall-nebula-graph.md +++ b/docs-2.0/4.deployment-and-installation/4.uninstall-nebula-graph.md @@ -1,24 +1,24 @@ -# 卸载Nebula Graph +# 卸载 Nebula Graph -本文介绍如何卸载Nebula Graph。 +本文介绍如何卸载 Nebula Graph。 !!! caution - 如果需要重新部署Nebula Graph,请务必完全卸载后再重新部署,否则可能会出现问题,包括Meta不一致等。 + 如果需要重新部署 Nebula Graph,请务必完全卸载后再重新部署,否则可能会出现问题,包括 Meta 不一致等。 ## 前提条件 -停止Nebula Graph服务。详情参见[管理Nebula Graph服务](../2.quick-start/5.start-stop-service.md)。 +停止 Nebula Graph 服务。详情参见 [管理 Nebula Graph 服务](../2.quick-start/5.start-stop-service.md)。 -## 步骤1:删除数据和元数据文件 +## 步骤 1:删除数据和元数据文件 如果在配置文件内修改了数据文件的路径,可能会导致安装路径和数据文件保存路径不一致,因此需要查看配置文件,确认数据文件保存路径,然后手动删除数据文件目录。 !!! Note - 如果是集群架构,需要删除所有Storage和Meta服务节点的数据文件。 + 如果是集群架构,需要删除所有 Storage 和 Meta 服务节点的数据文件。 -1. 检查Storage服务的[disk配置](../5.configurations-and-logs/1.configurations/4.storage-config.md#disk)。例如: +1. 检查 Storage 服务的 [disk 配置](../5.configurations-and-logs/1.configurations/4.storage-config.md#disk)。例如: ```bash ########## Disk ########## @@ -27,11 +27,11 @@ --data_path=/nebula/data/storage ``` -2. 检查metad服务的配置文件,找到对应元数据目录。 +2. 检查 metad 服务的配置文件,找到对应元数据目录。 3. 删除以上数据和元数据目录。 -## 步骤2:卸载安装目录 +## 步骤 2:卸载安装目录 !!! Note @@ -39,13 +39,13 @@ 安装路径为参数`--prefix`指定的路径。默认路径为`/usr/local/nebula`。 -### 卸载编译安装的Nebula Graph +### 卸载编译安装的 Nebula Graph -找到Nebula Graph的安装目录,删除整个安装目录。 +找到 Nebula Graph 的安装目录,删除整个安装目录。 -### 卸载RPM包安装的Nebula Graph +### 卸载 RPM 包安装的 Nebula Graph -1. 使用如下命令查看Nebula Graph版本。 +1. 使用如下命令查看 Nebula Graph 版本。 ```bash $ rpm -qa | grep "nebula" @@ -57,7 +57,7 @@ nebula-graph-{{ nebula.release }}-1.x86_64 ``` -2. 使用如下命令卸载Nebula Graph。 +2. 使用如下命令卸载 Nebula Graph。 ```bash sudo rpm -e @@ -71,9 +71,9 @@ 3. 删除安装目录。 -### 卸载DEB包安装的Nebula Graph +### 卸载 DEB 包安装的 Nebula Graph -1. 使用如下命令查看Nebula Graph版本。 +1. 使用如下命令查看 Nebula Graph 版本。 ```bash $ dpkg -l | grep "nebula" @@ -85,7 +85,7 @@ ii nebula-graph {{ nebula.release }} amd64 Nebula Package built using CMake ``` -2. 使用如下命令卸载Nebula Graph。 +2. 使用如下命令卸载 Nebula Graph。 ```bash sudo dpkg -r @@ -99,9 +99,9 @@ 3. 删除安装目录。 -### 卸载Docker Compose部署的Nebula Graph +### 卸载 Docker Compose 部署的 Nebula Graph -1. 在目录`nebula-docker-compose`内执行如下命令停止Nebula Graph服务。 +1. 在目录`nebula-docker-compose`内执行如下命令停止 Nebula Graph 服务。 ```bash docker-compose down -v diff --git a/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md b/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md index b7c817d4f47..e30e1cb9fd9 100644 --- a/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md +++ b/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md @@ -8,21 +8,21 @@ - 全文索引当前仅支持`LOOKUP`语句。 -- 定长字符串长度超过256字节,将无法创建全文索引。 +- 定长字符串长度超过 256 字节,将无法创建全文索引。 -- 如果Tag/Edge type上存在全文索引,无法删除或修改Tag/Edge type。 +- 如果 Tag/Edge type 上存在全文索引,无法删除或修改 Tag/Edge type。 -- 一个Tag/Edge type只能有一个全文索引。 +- 一个 Tag/Edge type 只能有一个全文索引。 - 属性的类型必须为`String`。 -- 全文索引不支持多个Tag/Edge type的搜索。 +- 全文索引不支持多个 Tag/Edge type 的搜索。 - 不支持排序全文搜索的返回结果,而是按照数据插入的顺序返回。 - 全文索引不支持搜索属性值为`NULL`的属性。 -- 不支持修改Elasticsearch索引。 +- 不支持修改 Elasticsearch 索引。 - 不支持管道符。 @@ -30,10 +30,10 @@ - 全文索引不会与图空间一起删除。 -- 确保同时启动了Elasticsearch集群和Nebula Graph,否则可能导致Elasticsearch集群写入的数据不完整。 +- 确保同时启动了 Elasticsearch 集群和 Nebula Graph,否则可能导致 Elasticsearch 集群写入的数据不完整。 -- 在点或边的属性值中不要包含`'`或 `\`,否则会导致Elasticsearch集群存储时报错。 +- 在点或边的属性值中不要包含`'`或 `\`,否则会导致 Elasticsearch 集群存储时报错。 -- 从写入Nebula Graph,到写入listener,再到写入 Elasticsearch 并创建索引可能需要一段时间。如果访问全文索引时返回未找到索引,可等待索引生效(但是,该等待时间未知,也无返回码检查)。 +- 从写入 Nebula Graph,到写入 listener,再到写入 Elasticsearch 并创建索引可能需要一段时间。如果访问全文索引时返回未找到索引,可等待索引生效(但是,该等待时间未知,也无返回码检查)。 -- 使用K8s方式部署的Nebula Graph集群不支持全文索引。 +- 使用 K8s 方式部署的 Nebula Graph 集群不支持全文索引。 diff --git a/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/2.deploy-es.md b/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/2.deploy-es.md index e270c2e2cd4..24598f4c30e 100644 --- a/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/2.deploy-es.md +++ b/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/2.deploy-es.md @@ -1,16 +1,16 @@ # 部署全文索引 -Nebula Graph的全文索引是基于[Elasticsearch](https://en.wikipedia.org/wiki/Elasticsearch)实现,这意味着用户可以使用Elasticsearch全文查询语言来检索想要的内容。全文索引由内置的进程管理,当listener集群和Elasticsearch集群部署后,内置的进程只能为数据类型为定长字符串或变长字符串的属性创建全文索引。 +Nebula Graph 的全文索引是基于 [Elasticsearch](https://en.wikipedia.org/wiki/Elasticsearch) 实现,这意味着用户可以使用 Elasticsearch 全文查询语言来检索想要的内容。全文索引由内置的进程管理,当 listener 集群和 Elasticsearch 集群部署后,内置的进程只能为数据类型为定长字符串或变长字符串的属性创建全文索引。 ## 注意事项 -使用全文索引前,请确认已经了解全文索引的[使用限制](../../4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md)。 +使用全文索引前,请确认已经了解全文索引的 [使用限制](../../4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md)。 -## 部署Elasticsearch集群 +## 部署 Elasticsearch 集群 -部署Elasticsearch集群请参见[Kubernetes安装Elasticsearch](https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-elasticsearch.html)或[单机安装Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/7.15/targz.html)。 +部署 Elasticsearch 集群请参见 [Kubernetes 安装 Elasticsearch](https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-elasticsearch.html) 或 [单机安装 Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/7.15/targz.html)。 -当Elasticsearch集群启动时,请添加Nebula Graph全文索引的模板文件。关于索引模板的说明请参见[Elasticsearch官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-templates.html)。 +当 Elasticsearch 集群启动时,请添加 Nebula Graph 全文索引的模板文件。关于索引模板的说明请参见 [Elasticsearch 官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-templates.html)。 以下面的模板为例: @@ -68,11 +68,11 @@ curl -H "Content-Type: application/json; charset=utf-8" -XPUT http://127.0.0.1:9 }' ``` -用户可以配置Elasticsearch来满足业务需求,如果需要定制Elasticsearch,请参见[Elasticsearch官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html)。 +用户可以配置 Elasticsearch 来满足业务需求,如果需要定制 Elasticsearch,请参见 [Elasticsearch 官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html)。 ## 登录文本搜索客户端 -部署Elasticsearch集群之后,可以使用`SIGN IN`语句登录Elasticsearch客户端。必须使用Elasticsearch配置文件中的IP地址和端口才能正常连接,同时登录多个客户端,请在多个`elastic_ip:port`之间用英文逗号(,)分隔。 +部署 Elasticsearch 集群之后,可以使用`SIGN IN`语句登录 Elasticsearch 客户端。必须使用 Elasticsearch 配置文件中的 IP 地址和端口才能正常连接,同时登录多个客户端,请在多个`elastic_ip:port`之间用英文逗号(,)分隔。 ### 语法 @@ -88,7 +88,7 @@ nebula> SIGN IN TEXT SERVICE (127.0.0.1:9200); !!! Note - Elasticsearch默认没有用户名和密码,如果设置了用户名和密码,请在`SIGN IN`语句中指定。 + Elasticsearch 默认没有用户名和密码,如果设置了用户名和密码,请在`SIGN IN`语句中指定。 ## 显示文本搜索客户端 @@ -108,8 +108,6 @@ nebula> SHOW TEXT SEARCH CLIENTS; | Host | Port | +-------------+------+ | "127.0.0.1" | 9200 | -| "127.0.0.1" | 9200 | -| "127.0.0.1" | 9200 | +-------------+------+ ``` diff --git a/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md b/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md index aa0771c34cc..a49a2b0bda9 100644 --- a/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md +++ b/docs-2.0/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md @@ -1,58 +1,58 @@ -# 部署Raft listener +# 部署 Raft listener -全文索引的数据是异步写入Elasticsearch集群的。流程是通过Storage服务的 Raft listener(简称listener)这个单独部署的进程,从Storage服务读取数据,然后将它们写入Elasticsearch集群。 +全文索引的数据是异步写入 Elasticsearch 集群的。流程是通过 Storage 服务的 Raft listener(简称 listener)这个单独部署的进程,从 Storage 服务读取数据,然后将它们写入 Elasticsearch 集群。 ## 前提条件 -- 已经了解全文索引的[使用限制](../../4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md)。 +- 已经了解全文索引的 [使用限制](../../4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md)。 -- 已经[部署Nebula Graph集群](../2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md)。 +- 已经 [部署 Nebula Graph 集群](../2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md)。 -- 完成[部署Elasticsearch集群](./2.deploy-es.md)。 +- 完成 [部署 Elasticsearch 集群](./2.deploy-es.md)。 -- 准备一台或者多台额外的服务器,来部署Raft listener。 +- 准备一台或者多台额外的服务器,来部署 Raft listener。 ## 注意事项 -- 请保证Nebula 各组件(Metad、Storaged、Graphd、listener)有相同的版本。 +- 请保证 Nebula 各组件(Metad、Storaged、Graphd、listener)有相同的版本。 - 只能为一个图空间“一次性添加所有的 listener 机器”。尝试向已经存在有 listener 的图空间再添加新 listener 会失败。因此,需在一个命令语句里完整地添加全部的 listener。 ## 部署流程 -### 第一步:安装Storage服务 +### 第一步:安装 Storage 服务 -listener进程与storaged进程使用相同的二进制文件,但是二者配置文件不同,进程使用端口也不同,可以在所有需要部署listener的服务器上都安装Nebula Graph,但是仅使用Storage服务。详情请参见[使用RPM或DEB安装包安装Nebula Graph](../2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md)。 +listener 进程与 storaged 进程使用相同的二进制文件,但是二者配置文件不同,进程使用端口也不同,可以在所有需要部署 listener 的服务器上都安装 Nebula Graph,但是仅使用 Storage 服务。详情请参见 [使用 RPM 或 DEB 安装包安装 Nebula Graph](../2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md)。 -### 第二步:准备listener的配置文件 +### 第二步:准备 listener 的配置文件 -用户必须在需要部署listener的机器上准备对应的配置文件,文件名称必须为`nebula-storaged-listener.conf`,并保存在安装路径下的`etc`目录内。用户可以参考提供的[模板](https://github.com/vesoft-inc/nebula/blob/master/conf/nebula-storaged-listener.conf.production)。注意去掉文件后缀`.production`。 +用户必须在需要部署 listener 的机器上准备对应的配置文件,文件名称必须为`nebula-storaged-listener.conf`,并保存在安装路径下的`etc`目录内。用户可以参考提供的 [模板](https://github.com/vesoft-inc/nebula/blob/master/conf/nebula-storaged-listener.conf.production)。注意去掉文件后缀`.production`。 -大部分配置与[Storage服务](../../5.configurations-and-logs/1.configurations/4.storage-config.md)的配置文件相同,本文仅介绍差异部分。 +大部分配置与 [Storage 服务](../../5.configurations-and-logs/1.configurations/4.storage-config.md) 的配置文件相同,本文仅介绍差异部分。 | 名称 | 预设值 | 说明 | | :----------- | :----------------------- | :------------------| | `daemonize` | `true` | 是否启动守护进程。 | -| `pid_file` | `pids_listener/nebula-storaged.pid` | 记录进程ID的文件。 | -| `meta_server_addrs` | - | 全部Meta服务的IP地址和端口。多个Meta服务用英文逗号(,)分隔。 | -| `local_ip` | - | listener服务的本地IP地址。 | -| `port` | - | listener服务的RPC守护进程监听端口。 | -| `heartbeat_interval_secs` | `10` | Meta服务的心跳间隔。单位:秒(s)。 | -| `listener_path` | `data/listener` | listener的WAL目录。只允许使用一个目录。 | +| `pid_file` | `pids_listener/nebula-storaged.pid` | 记录进程 ID 的文件。 | +| `meta_server_addrs` | - | 全部 Meta 服务的 IP 地址和端口。多个 Meta 服务用英文逗号(,)分隔。 | +| `local_ip` | - | listener 服务的本地 IP 地址。 | +| `port` | - | listener 服务的 RPC 守护进程监听端口。 | +| `heartbeat_interval_secs` | `10` | Meta 服务的心跳间隔。单位:秒(s)。 | +| `listener_path` | `data/listener` | listener 的 WAL 目录。只允许使用一个目录。 | | `data_path` | `data` | 出于兼容性考虑,可以忽略此参数。填充一个默认值`data`。 | | `part_man_type` | `memory` | 部件管理器类型,可选值为`memory`和`meta`。 | | `rocksdb_batch_size` | `4096` | 批处理操作的默认保留字节。 | -| `rocksdb_block_cache` | `4` | BlockBasedTable的默认块缓存大小。单位:兆字节(MB)。 | +| `rocksdb_block_cache` | `4` | BlockBasedTable 的默认块缓存大小。单位:兆字节(MB)。 | | `engine_type` | `rocksdb` | 存储引擎类型,例如`rocksdb`、`memory`等。 | | `part_type` | `simple`| 部件类型,例如`simple`、`consensus`等。 | !!! Note - 在配置文件中请使用真实的(listener机器)IP地址替换`127.0.0.1`。 + 在配置文件中请使用真实的(listener 机器)IP 地址替换`127.0.0.1`。 -### 第三步:启动listener +### 第三步:启动 listener -执行如下命令启动启动listener: +执行如下命令启动启动 listener: ```bash ./bin/nebula-storaged --flagfile /nebula-storaged-listener.conf @@ -62,7 +62,7 @@ listener进程与storaged进程使用相同的二进制文件,但是二者配 ### 第四步:添加 listener 到 Nebula Graph 集群 -[用命令行连接到Nebula Graph](../../2.quick-start/3.connect-to-nebula-graph.md),然后执行[`USE `](../../3.ngql-guide/9.space-statements/2.use-space.md)进入需要创建全文索引的图空间。然后执行如下命令添加 listener: +[用命令行连接到 Nebula Graph](../../2.quick-start/3.connect-to-nebula-graph.md),然后执行 [`USE `](../../3.ngql-guide/9.space-statements/2.use-space.md) 进入需要创建全文索引的图空间。然后执行如下命令添加 listener: ```ngql ADD LISTENER ELASTICSEARCH [,, ...] @@ -70,7 +70,7 @@ ADD LISTENER ELASTICSEARCH [,, ...] !!! warning - listener 必须使用真实的IP地址。 + listener 必须使用真实的 IP 地址。 请在一个语句里完整地添加所有 listener。例如: @@ -95,9 +95,9 @@ nebula> SHOW LISTENER; +--------+-----------------+-----------------------+----------+ ``` -## 删除listener +## 删除 listener -执行`REMOVE LISTENER ELASTICSEARCH`语句可以删除图空间的所有listener。 +执行`REMOVE LISTENER ELASTICSEARCH`语句可以删除图空间的所有 listener。 ### 示例 @@ -107,9 +107,8 @@ nebula> REMOVE LISTENER ELASTICSEARCH; !!! danger - 删除 listener 后,将不能重新添加 listener,因此也无法继续向ES集群同步,文本索引数据将不完整。如果确实需要,只能重新创建图空间。 - + 删除 listener 后,将不能重新添加 listener,因此也无法继续向 ES 集群同步,文本索引数据将不完整。如果确实需要,只能重新创建图空间。 ## 下一步 -部署[全文索引](2.deploy-es.md)和 listener 后,全文索引会在 Elasticsearch 集群中自动创建,用户可以开始进行全文搜索。详情请参见[全文搜索](../../3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md)。 +部署 [全文索引](2.deploy-es.md) 和 listener 后,全文索引会在 Elasticsearch 集群中自动创建,用户可以开始进行全文搜索。详情请参见 [全文搜索](../../3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md)。 diff --git a/docs-2.0/4.deployment-and-installation/connect-to-nebula-graph.md b/docs-2.0/4.deployment-and-installation/connect-to-nebula-graph.md index 1c009ff8414..3032eff894e 100644 --- a/docs-2.0/4.deployment-and-installation/connect-to-nebula-graph.md +++ b/docs-2.0/4.deployment-and-installation/connect-to-nebula-graph.md @@ -1,4 +1,4 @@ -# 连接Nebula Graph服务 +# 连接 Nebula Graph 服务 {% include "/source_connect-to-nebula-graph.md" %} diff --git a/docs-2.0/4.deployment-and-installation/deploy-license.md b/docs-2.0/4.deployment-and-installation/deploy-license.md index 28654da4047..bba60080fec 100644 --- a/docs-2.0/4.deployment-and-installation/deploy-license.md +++ b/docs-2.0/4.deployment-and-installation/deploy-license.md @@ -1,30 +1,30 @@ -# 设置企业版License +# 设置企业版 License -Nebula Graph企业版需要用户设置License才可以正常启动并使用企业版功能,本文介绍如何设置企业版的License文件。 +Nebula Graph 企业版需要用户设置 License 才可以正常启动并使用企业版功能,本文介绍如何设置企业版的 License 文件。 !!! enterpriseonly - License是为企业版用户提供的软件授权证书,企业版用户可以发送邮件至`inquiry@vesoft.com`申请License文件。 + License 是为企业版用户提供的软件授权证书,企业版用户可以发送邮件至`inquiry@vesoft.com`申请 License 文件。 ## 注意事项 -- 没有设置License时,Nebula Graph企业版无法启动。 +- 没有设置 License 时,Nebula Graph 企业版无法启动。 -- 请勿修改License文件,否则会导致License失效。 +- 请勿修改 License 文件,否则会导致 License 失效。 -- License快过期时,请及时发送邮件至`inquiry@vesoft.com`申请续期。 +- License 快过期时,请及时发送邮件至`inquiry@vesoft.com`申请续期。 -- License的过期缓冲为3天: +- License 的过期缓冲为 3 天: - - 过期7天前和过期当天,服务启动时会打印日志进行提醒。 + - 过期 7 天前和过期当天,服务启动时会打印日志进行提醒。 - - 过期后仍可继续使用3天。 + - 过期后仍可继续使用 3 天。 - - 过期3天后,服务无法启动,并会打印日志进行提醒。 + - 过期 3 天后,服务无法启动,并会打印日志进行提醒。 -## License说明 +## License 说明 -用户可以用`cat`等命令查看License文件(`nebula.license`)内容,示例文件内容如下: +用户可以用`cat`等命令查看 License 文件(`nebula.license`)内容,示例文件内容如下: ```bash ----------License Content Start---------- @@ -44,28 +44,28 @@ cofFcOxxxxxxxxxxxxxhnZgaxrQ== ----------License Key End---------- ``` -License文件包含生效时间、过期时间等信息。说明如下。 +License 文件包含生效时间、过期时间等信息。说明如下。 |参数|说明| |:---|:---| |`vendor`|发放渠道。| |`organization`|用户名称。| -|`issuedDate`|License生效时间。| -|`expirationDate`|License过期时间。| -|`product`|产品类型。Nebula Graph的产品类型为`nebula_graph`。| +|`issuedDate`|License 生效时间。| +|`expirationDate`|License 过期时间。| +|`product`|产品类型。Nebula Graph 的产品类型为`nebula_graph`。| |`version`|版本支持的信息。| -|`licenseType`|License类型。包括`enterprise`、`samll_bussiness`、`pro`、`individual`。预留参数。| +|`licenseType`|License 类型。包括`enterprise`、`samll_bussiness`、`pro`、`individual`。预留参数。| -## 设置License +## 设置 License -1. 发送邮件至`inquiry@vesoft.com`申请Nebula Graph企业版安装包。 +1. 发送邮件至`inquiry@vesoft.com`申请 Nebula Graph 企业版安装包。 -2. 安装Nebula Graph企业版。安装方式与社区版相同,请参见[使用RPM或DEB包安装Nebula Graph](2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md)。 +2. 安装 Nebula Graph 企业版。安装方式与社区版相同,请参见 [使用 RPM 或 DEB 包安装 Nebula Graph](2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md)。 -3. 发送邮件至`inquiry@vesoft.com`申请License文件`nebula.license`。 +3. 发送邮件至`inquiry@vesoft.com`申请 License 文件`nebula.license`。 -4. 将License文件上传到所有包含Meta服务的机器上,路径为每个Meta服务安装目录的`share/resources/`内。 +4. 将 License 文件上传到所有包含 Meta 服务的机器上,路径为每个 Meta 服务安装目录的`share/resources/`内。 !!! note - 周边工具的License文件上传位置,请参见[具体周边工具](../20.appendix/6.eco-tool-version.md)的说明文档。 + 周边工具的 License 文件上传位置,请参见 [具体周边工具](../20.appendix/6.eco-tool-version.md) 的说明文档。 diff --git a/docs-2.0/4.deployment-and-installation/manage-service.md b/docs-2.0/4.deployment-and-installation/manage-service.md index c6474392a25..e5dc5ea6f52 100644 --- a/docs-2.0/4.deployment-and-installation/manage-service.md +++ b/docs-2.0/4.deployment-and-installation/manage-service.md @@ -1,4 +1,4 @@ -# 管理Nebula Graph服务 +# 管理 Nebula Graph 服务 {% include "/source_manage-service.md" %} diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/1.configurations.md b/docs-2.0/5.configurations-and-logs/1.configurations/1.configurations.md index e625dd9634c..0ecc4582444 100644 --- a/docs-2.0/5.configurations-and-logs/1.configurations/1.configurations.md +++ b/docs-2.0/5.configurations-and-logs/1.configurations/1.configurations.md @@ -1,6 +1,6 @@ # 配置管理 -Nebula Graph基于[gflags](https://gflags.github.io/gflags/)库打造了系统配置,多数配置项都是其中的flags。Nebula Graph服务启动时,默认会从[配置文件](#_4)中获取配置信息,文件中没有的配置项应用默认值。 +Nebula Graph 基于 [gflags](https://gflags.github.io/gflags/) 库打造了系统配置,多数配置项都是其中的 flags。Nebula Graph 服务启动时,默认会从 [配置文件](#_4) 中获取配置信息,文件中没有的配置项应用默认值。 !!! enterpriseonly @@ -8,12 +8,12 @@ Nebula Graph基于[gflags](https://gflags.github.io/gflags/)库打造了系统 !!! note - * 由于配置项数多且可能随着Nebula Graph的开发发生变化,文档不会介绍所有配置项。按下文说明可在命令行获取配置项的详细说明。 + * 由于配置项数多且可能随着 Nebula Graph 的开发发生变化,文档不会介绍所有配置项。按下文说明可在命令行获取配置项的详细说明。 * 不建议修改文档未介绍的配置项,除非已经熟悉源代码并完全了解配置项的作用。 !!! compatibility "历史版本兼容性" - 1.x版本的文档提供了使用CONFIGS命令修改缓存中配置的方法,但在生产环境中使用该方法容易导致集群配置与本地配置文件不一致。因此,2.x版本的文档中将不再介绍CONFIGS命令的使用方法。 + 1.x 版本的文档提供了使用 CONFIGS 命令修改缓存中配置的方法,但在生产环境中使用该方法容易导致集群配置与本地配置文件不一致。因此,2.x 版本的文档中将不再介绍 CONFIGS 命令的使用方法。 ## 查看配置项列表与说明 @@ -26,67 +26,67 @@ Nebula Graph基于[gflags](https://gflags.github.io/gflags/)库打造了系统 例如: ```bash -# 获取Meta配置项的帮助信息 +# 获取 Meta 配置项的帮助信息 $ /usr/local/nebula/bin/nebula-metad --help -# 获取Graph配置项的帮助信息 +# 获取 Graph 配置项的帮助信息 $ /usr/local/nebula/bin/nebula-graphd --help -# 获取Storage配置项的帮助信息 +# 获取 Storage 配置项的帮助信息 $ /usr/local/nebula/bin/nebula-storaged --help ``` -以上示例使用了二进制文件的默认存储路径`/usr/local/nebula/bin/`。如果修改了Nebula Graph安装路径,使用实际路径查询配置项信息。 +以上示例使用了二进制文件的默认存储路径`/usr/local/nebula/bin/`。如果修改了 Nebula Graph 安装路径,使用实际路径查询配置项信息。 ## 查看运行配置 -使用`curl`命令获取运行中的配置项的值,即Nebula Graph的运行配置。 +使用`curl`命令获取运行中的配置项的值,即 Nebula Graph 的运行配置。 !!! compatibility "历史版本兼容性" - Nebula Graph v2.x版本的`curl`命令不兼容v1.x版本。命令和参数都有改变。 + Nebula Graph v2.x 版本的`curl`命令不兼容 v1.x 版本。命令和参数都有改变。 例如: ```bash -# 获取Meta服务的运行配置 +# 获取 Meta 服务的运行配置 curl 127.0.0.1:19559/flags -# 获取Graph服务的运行配置 +# 获取 Graph 服务的运行配置 curl 127.0.0.1:19669/flags -# 获取Storage服务的运行配置 +# 获取 Storage 服务的运行配置 curl 127.0.0.1:19779/flags ``` !!! Note - 实际环境中需使用真实的主机IP地址取代以上示例中的`127.0.0.1`。 + 实际环境中需使用真实的主机 IP 地址取代以上示例中的`127.0.0.1`。 ## 配置文件简介 -Nebula Graph为每个服务都提供了两份初始配置文件`.conf.default`和`.conf.production`,方便用户在不同场景中使用。文件的默认路径为`/usr/local/nebula/etc/`。 +Nebula Graph 为每个服务都提供了两份初始配置文件`.conf.default`和`.conf.production`,方便用户在不同场景中使用。文件的默认路径为`/usr/local/nebula/etc/`。 初始配置文件中的配置值仅供参考,使用时可根据实际需求调整。如需使用初始配置文件,从上述两个文件选择其一,删除后缀`.default`或`.production`使其生效。 !!! caution - 为确保服务的可用性,同类服务的配置需保持一致,本机IP地址`local_ip`除外。例如,一个Nebula Graph集群中部署了3个Storage服务器,3者除IP地址外的其它配置需相同。 + 为确保服务的可用性,同类服务的配置需保持一致,本机 IP 地址`local_ip`除外。例如,一个 Nebula Graph 集群中部署了 3 个 Storage 服务器,3 者除 IP 地址外的其它配置需相同。 下表列出了各服务对应的初始配置文件。 -| Nebula Graph服务 | 初始配置文件 | 配置说明 | +| Nebula Graph 服务 | 初始配置文件 | 配置说明 | | - | - | - | -| Meta | `nebula-metad.conf.default`和`nebula-metad.conf.production` | [Meta服务配置](2.meta-config.md) | -| Graph | `nebula-graphd.conf.default`和`nebula-graphd.conf.production` | [Graph服务配置](3.graph-config.md) | -| Storage | `nebula-storaged.conf.default`和`nebula-storaged.conf.production` | [Storage服务配置](4.storage-config.md) | +| Meta | `nebula-metad.conf.default`和`nebula-metad.conf.production` | [Meta 服务配置](2.meta-config.md) | +| Graph | `nebula-graphd.conf.default`和`nebula-graphd.conf.production` | [Graph 服务配置](3.graph-config.md) | +| Storage | `nebula-storaged.conf.default`和`nebula-storaged.conf.production` | [Storage 服务配置](4.storage-config.md) | -所有服务的初始配置文件中都包含`local_config`参数,预设值为`true`,表示Nebula Graph服务会从其配置文件获取配置并启动。 +所有服务的初始配置文件中都包含`local_config`参数,预设值为`true`,表示 Nebula Graph 服务会从其配置文件获取配置并启动。 !!! caution - 不建议修改`local_config`的值为`false`。修改后Nebula Graph服务启动后会先尝试从Meta服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 + 不建议修改`local_config`的值为`false`。修改后 Nebula Graph 服务启动后会先尝试从 Meta 服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 ## 修改配置 -默认情况下,所有Nebula Graph服务从配置文件获取配置。用户可以按照以下步骤修改配置并使其生效: +默认情况下,所有 Nebula Graph 服务从配置文件获取配置。用户可以按照以下步骤修改配置并使其生效: 1. 使用文本编辑器修改目标服务的配置文件并保存。 -2. 选择合适的时间重启**所有**Nebula Graph服务使修改生效。 +2. 选择合适的时间重启**所有** Nebula Graph 服务使修改生效。 diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md index 699b7a02dce..9c0d33dc90a 100644 --- a/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md +++ b/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md @@ -1,41 +1,41 @@ -# Meta服务配置 +# Meta 服务配置 -Meta服务提供了两份初始配置文件`nebula-metad.conf.default`和`nebula-metad.conf.production`,方便在不同场景中使用。文件的默认路径为`/usr/local/nebula/etc/`。 +Meta 服务提供了两份初始配置文件`nebula-metad.conf.default`和`nebula-metad.conf.production`,方便在不同场景中使用。文件的默认路径为`/usr/local/nebula/etc/`。 !!! caution - * 不建议修改`local_config`的值为`false`。修改后Nebula Graph服务启动后会先尝试从Meta服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 + * 不建议修改`local_config`的值为`false`。修改后 Nebula Graph 服务启动后会先尝试从 Meta 服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 * 不建议修改文档未介绍的配置项,除非已经熟悉源代码并清楚了解配置项作用。 ## 配置文件使用方式 -如需使用初始配置文件,从上述两个文件选择其一,删除后缀`.default`或`.production`,Meta服务才能将其识别为配置文件并从中获取配置信息。 +如需使用初始配置文件,从上述两个文件选择其一,删除后缀`.default`或`.production`,Meta 服务才能将其识别为配置文件并从中获取配置信息。 ## 配置文件参数值说明 配置文件内没有设置某个参数表示参数使用的是默认值。文件内只预设了部分参数的值,而且两份初始配置文件内的参数值也略有不同,本文的预设值以`nebula-metad.conf.default`为准。 -如需查看所有的参数及其当前值,参见[配置管理](1.configurations.md)。 +如需查看所有的参数及其当前值,参见 [配置管理](1.configurations.md)。 -## basics配置 +## basics 配置 | 名称 | 预设值 | 说明 | | :----------- | :----------------------- | :------------------| | `daemonize` | `true` | 是否启动守护进程。 | -| `pid_file` | `pids/nebula-metad.pid` | 记录进程ID的文件。 | -| `timezone_name` | - | 指定Nebula Graph的时区。初始配置文件中未设置该参数,如需使用请手动添加。系统默认值为`UTC+00:00:00`。格式请参见[Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual")。例如,东八区的设置方式为`--timezone_name=UTC+08:00`。 | +| `pid_file` | `pids/nebula-metad.pid` | 记录进程 ID 的文件。 | +| `timezone_name` | - | 指定 Nebula Graph 的时区。初始配置文件中未设置该参数,如需使用请手动添加。系统默认值为`UTC+00:00:00`。格式请参见 [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual")。例如,东八区的设置方式为`--timezone_name=UTC+08:00`。 | !!! Note - * 在插入[时间类型](../../3.ngql-guide/3.data-types/4.date-and-time.md)的属性值时,Nebula Graph会根据`timezone_name`设置的时区将该时间值(TIMESTAMP类型例外)转换成相应的UTC时间,因此在查询中返回的时间类型属性值为UTC时间。 - * `timezone_name`参数只用于转换Nebula Graph中存储的数据,Nebula Graph进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。 + * 在插入 [时间类型](../../3.ngql-guide/3.data-types/4.date-and-time.md) 的属性值时,Nebula Graph 会根据`timezone_name`设置的时区将该时间值(TIMESTAMP 类型例外)转换成相应的 UTC 时间,因此在查询中返回的时间类型属性值为 UTC 时间。 + * `timezone_name`参数只用于转换 Nebula Graph 中存储的数据,Nebula Graph 进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。 -## logging配置 +## logging 配置 | 名称 | 预设值 | 说明 | | :------------- | :------------------------ | :------------------------------------------------ | -| `log_dir` | `logs` | 存放Meta服务日志的目录,建议和数据保存在不同硬盘。 | -| `minloglevel` | `0` | 最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph不会记录任何日志。 | +| `log_dir` | `logs` | 存放 Meta 服务日志的目录,建议和数据保存在不同硬盘。 | +| `minloglevel` | `0` | 最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph 不会记录任何日志。 | | `v` | `0` | 日志详细级别,值越大,日志记录越详细。可选值为`0`、`1`、`2`、`3`。 | | `logbufsecs` | `0` | 缓冲日志的最大时间,超时后输出到日志文件。`0`表示实时输出。单位:秒。 | |`redirect_stdout`|`true` |是否将标准输出和标准错误重定向到单独的输出文件。 | @@ -43,38 +43,38 @@ Meta服务提供了两份初始配置文件`nebula-metad.conf.default`和`nebula |`stderr_log_file` |`metad-stderr.log` | 标准错误日志文件名称。 | |`stderrthreshold` | `2` | 要复制到标准错误中的最小日志级别(`minloglevel`)。 | -## networking配置 +## networking 配置 | 名称 | 预设值 | 说明 | | :----------------------- | :---------------- | :---------------------------------------------------- | -| `meta_server_addrs` | `127.0.0.1:9559` | 全部Meta服务的IP地址和端口。多个Meta服务用英文逗号(,)分隔。 | -|`local_ip` | `127.0.0.1` | Meta服务的本地IP地址。本地IP地址用于识别nebula-metad进程,如果是分布式集群或需要远程访问,请修改为对应地址。| -| `port` | `9559` | Meta服务的RPC守护进程监听端口。Meta服务对外端口为`9559`,对内端口为`对外端口+1`,即`9560`,Nebula Graph使用内部端口进行多副本间的交互。 | -| `ws_ip` | `0.0.0.0` | HTTP服务的IP地址。 | -| `ws_http_port` | `19559` | HTTP服务的端口。 | -| `ws_h2_port` | `19560` | HTTP2服务的端口。 | -|`ws_storage_http_port`|`19779`| HTTP协议监听Storage服务的端口,需要和Storage服务配置文件中的`ws_http_port`保持一致。| +| `meta_server_addrs` | `127.0.0.1:9559` | 全部 Meta 服务的 IP 地址和端口。多个 Meta 服务用英文逗号(,)分隔。 | +|`local_ip` | `127.0.0.1` | Meta 服务的本地 IP 地址。本地 IP 地址用于识别 nebula-metad 进程,如果是分布式集群或需要远程访问,请修改为对应地址。| +| `port` | `9559` | Meta 服务的 RPC 守护进程监听端口。Meta 服务对外端口为`9559`,对内端口为`对外端口+1`,即`9560`,Nebula Graph 使用内部端口进行多副本间的交互。 | +| `ws_ip` | `0.0.0.0` | HTTP 服务的 IP 地址。 | +| `ws_http_port` | `19559` | HTTP 服务的端口。 | +| `ws_h2_port` | `19560` | HTTP2 服务的端口。 | +|`ws_storage_http_port`|`19779`| HTTP 协议监听 Storage 服务的端口,需要和 Storage 服务配置文件中的`ws_http_port`保持一致。| |`heartbeat_interval_secs` | `10` | 默认心跳间隔。请确保所有服务的`heartbeat_interval_secs`取值相同,否则会导致系统无法正常工作。单位:秒。 | !!! caution - 必须在配置文件中使用真实的IP地址。否则某些情况下`127.0.0.1/0.0.0.0`无法正确解析。 + 必须在配置文件中使用真实的 IP 地址。否则某些情况下`127.0.0.1/0.0.0.0`无法正确解析。 -## storage配置 +## storage 配置 | 名称 | 预设值 | 说明 | | :------------------- | :------------------------ | :------------------------------------------ | -|`data_path`|`data/meta`|meta数据存储路径。| +|`data_path`|`data/meta`|meta 数据存储路径。| -## misc配置 +## misc 配置 | 名称 | 预设值 | 说明 | | :------------------------- | :-------- | :------------------------ | |`default_parts_num` | `100` | 创建图空间时的默认分片数量。 | |`default_replica_factor` | `1` | 创建图空间时的默认副本数量。 | -## rocksdb options配置 +## rocksdb options 配置 | 名称 | 预设值 | 说明 | | :------------------- | :------------------------ | :------------------------------------------ | -|`rocksdb_wal_sync` |`true` |是否同步RocksDB的WAL日志。| +|`rocksdb_wal_sync` |`true` |是否同步 RocksDB 的 WAL 日志。| diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/3.graph-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/3.graph-config.md index 01fe6993775..715434cce40 100644 --- a/docs-2.0/5.configurations-and-logs/1.configurations/3.graph-config.md +++ b/docs-2.0/5.configurations-and-logs/1.configurations/3.graph-config.md @@ -1,43 +1,43 @@ -# Graph服务配置 +# Graph 服务配置 -Graph服务提供了两份初始配置文件`nebula-graphd.conf.default`和`nebula-graphd.conf.production`,方便在不同场景中使用。文件的默认路径为`/usr/local/nebula/etc/`。 +Graph 服务提供了两份初始配置文件`nebula-graphd.conf.default`和`nebula-graphd.conf.production`,方便在不同场景中使用。文件的默认路径为`/usr/local/nebula/etc/`。 !!! caution - * 不建议修改`local_config`的值为`false`。修改后Nebula Graph服务启动后会先尝试从Meta服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 + * 不建议修改`local_config`的值为`false`。修改后 Nebula Graph 服务启动后会先尝试从 Meta 服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 * 不建议修改文档未介绍的配置项,除非已经熟悉源代码并完全了解配置项的作用。 ## 配置文件使用方式 -如需使用初始配置文件,从上述两个文件选择其一,删除后缀`.default`或`.production`,Meta服务才能将其识别为配置文件并从中获取配置信息。 +如需使用初始配置文件,从上述两个文件选择其一,删除后缀`.default`或`.production`,Meta 服务才能将其识别为配置文件并从中获取配置信息。 ## 配置文件参数值说明 配置文件内没有设置某个参数表示参数使用的是默认值。文件内只预设了部分参数的值,而且两份初始配置文件内的参数值也略有不同,本文的预设值以`nebula-metad.conf.default`为准。 -如需查看所有的参数及其当前值,参见[配置管理](1.configurations.md)。 +如需查看所有的参数及其当前值,参见 [配置管理](1.configurations.md)。 -## basics配置 +## basics 配置 | 名称 | 预设值 | 说明 | | ----------------- | ----------------------- | ------------------| | `daemonize` | `true` | 是否启动守护进程。 | -| `pid_file` | `pids/nebula-graphd.pid`| 记录进程ID的文件。 | +| `pid_file` | `pids/nebula-graphd.pid`| 记录进程 ID 的文件。 | |`enable_optimizer` |`true` | 是否启用优化器。| -| `timezone_name` | - | 指定Nebula Graph的时区。初始配置文件中未设置该参数,使用需手动添加。系统默认值为`UTC+00:00:00`。格式请参见[Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual")。例如,东八区的设置方式为`--timezone_name=UTC+08:00`。 | +| `timezone_name` | - | 指定 Nebula Graph 的时区。初始配置文件中未设置该参数,使用需手动添加。系统默认值为`UTC+00:00:00`。格式请参见 [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual")。例如,东八区的设置方式为`--timezone_name=UTC+08:00`。 | | `local_config` | `true` | 是否从配置文件获取配置信息。 | !!! Note - * 在插入[时间类型](../../3.ngql-guide/3.data-types/4.date-and-time.md)的属性值时,Nebula Graph会根据`timezone_name`设置的时区将该时间值(TIMESTAMP类型例外)转换成相应的UTC时间,因此在查询中返回的时间类型属性值为UTC时间。 - * `timezone_name`参数只用于转换Nebula Graph中存储的数据,Nebula Graph进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。 + * 在插入 [时间类型](../../3.ngql-guide/3.data-types/4.date-and-time.md) 的属性值时,Nebula Graph 会根据`timezone_name`设置的时区将该时间值(TIMESTAMP 类型例外)转换成相应的 UTC 时间,因此在查询中返回的时间类型属性值为 UTC 时间。 + * `timezone_name`参数只用于转换 Nebula Graph 中存储的数据,Nebula Graph 进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。 -## logging配置 +## logging 配置 | 名称 | 预设值 | 说明 | | ------------- | ------------------------ | ------------------------------------------------ | -| `log_dir` | `logs` | 存放Graph服务日志的目录,建议和数据保存在不同硬盘。 | -| `minloglevel` | `0` | 最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph不会记录任何日志。 | +| `log_dir` | `logs` | 存放 Graph 服务日志的目录,建议和数据保存在不同硬盘。 | +| `minloglevel` | `0` | 最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph 不会记录任何日志。 | | `v` | `0` | 日志详细级别,值越大,日志记录越详细。可选值为`0`、`1`、`2`、`3`。 | | `logbufsecs` | `0` | 缓冲日志的最大时间,超时后输出到日志文件。`0`表示实时输出。单位:秒。 | |`redirect_stdout`|`true` |是否将标准输出和标准错误重定向到单独的输出文件。 | @@ -45,68 +45,68 @@ Graph服务提供了两份初始配置文件`nebula-graphd.conf.default`和`nebu |`stderr_log_file` |`graphd-stderr.log` | 标准错误日志文件名称。 | |`stderrthreshold` | `2` | 要复制到标准错误中的最小日志级别(`minloglevel`)。 | -## query配置 +## query 配置 | 名称 | 预设值 | 说明 | | ------------------- | ------------------------ | ------------------------------------------ | |`accept_partial_success` |`false` |是否将部分成功视为错误。此配置仅适用于只读请求,写请求总是将部分成功视为错误。| -|`session_reclaim_interval_secs`|`10`| 将Session信息发送给Meta服务的间隔。单位:秒。| -|`max_allowed_query_size`|`4194304`|最大查询语句长度。单位:字节。默认为`4194304`,即4MB。| +|`session_reclaim_interval_secs`|`10`| 将 Session 信息发送给 Meta 服务的间隔。单位:秒。| +|`max_allowed_query_size`|`4194304`|最大查询语句长度。单位:字节。默认为`4194304`,即 4MB。| -## networking配置 +## networking 配置 | 名称 | 预设值 | 说明 | | ----------------------- | ---------------- | ---------------------------------------------------- | -| `meta_server_addrs` | `127.0.0.1:9559` | 全部Meta服务的IP地址和端口。多个Meta服务用英文逗号(,)分隔。 | -|`local_ip` | `127.0.0.1` | Graph服务的本地IP地址。本地IP地址用于识别nebula-graphd进程,如果是分布式集群或需要远程访问,请修改为对应地址。| +| `meta_server_addrs` | `127.0.0.1:9559` | 全部 Meta 服务的 IP 地址和端口。多个 Meta 服务用英文逗号(,)分隔。 | +|`local_ip` | `127.0.0.1` | Graph 服务的本地 IP 地址。本地 IP 地址用于识别 nebula-graphd 进程,如果是分布式集群或需要远程访问,请修改为对应地址。| |`listen_netdev` |`any` |监听的网络设备。 | -| `port` | `9669` | Graph服务的RPC守护进程监听端口。 | -|`reuse_port` |`false` | 是否启用SO_REUSEPORT。 | -|`listen_backlog` |`1024` | socket监听的连接队列最大长度,调整本参数需要同时调整`net.core.somaxconn`。 | +| `port` | `9669` | Graph 服务的 RPC 守护进程监听端口。 | +|`reuse_port` |`false` | 是否启用 SO_REUSEPORT。 | +|`listen_backlog` |`1024` | socket 监听的连接队列最大长度,调整本参数需要同时调整`net.core.somaxconn`。 | |`client_idle_timeout_secs` |`0` | 空闲连接的超时时间。`0`表示永不超时。单位:秒。 | |`session_idle_timeout_secs` |`0` | 空闲会话的超时时间。`0`表示永不超时。单位:秒。 | |`num_accept_threads` |`1` | 接受传入连接的线程数。 | -|`num_netio_threads` |`0` | 网络IO线程数。`0`表示CPU核数。 | -|`num_worker_threads` |`0` | 执行用户查询的线程数。`0`表示CPU核数。 | -| `ws_ip` | `0.0.0.0` | HTTP服务的IP地址。 | -| `ws_http_port` | `19669` | HTTP服务的端口。 | -| `ws_h2_port` | `19670` | HTTP2服务的端口。 | +|`num_netio_threads` |`0` | 网络 IO 线程数。`0`表示 CPU 核数。 | +|`num_worker_threads` |`0` | 执行用户查询的线程数。`0`表示 CPU 核数。 | +| `ws_ip` | `0.0.0.0` | HTTP 服务的 IP 地址。 | +| `ws_http_port` | `19669` | HTTP 服务的端口。 | +| `ws_h2_port` | `19670` | HTTP2 服务的端口。 | |`heartbeat_interval_secs` | `10` | 默认心跳间隔。请确保所有服务的`heartbeat_interval_secs`取值相同,否则会导致系统无法正常工作。单位:秒。 | -|`storage_client_timeout_ms`|-| Graph服务与Storage服务的RPC连接超时时间。初始配置文件中未设置该参数,使用需手动添加。默认值为`60000`毫秒。| -|`ws_meta_http_port`|`19559`|HTTP协议监听Meta服务的端口,需要和Meta服务配置文件中的`ws_http_port`保持一致。| +|`storage_client_timeout_ms`|-| Graph 服务与 Storage 服务的 RPC 连接超时时间。初始配置文件中未设置该参数,使用需手动添加。默认值为`60000`毫秒。| +|`ws_meta_http_port`|`19559`|HTTP 协议监听 Meta 服务的端口,需要和 Meta 服务配置文件中的`ws_http_port`保持一致。| !!! caution - 必须在配置文件中使用真实的IP地址。否则某些情况下`127.0.0.1/0.0.0.0`无法正确解析。 + 必须在配置文件中使用真实的 IP 地址。否则某些情况下`127.0.0.1/0.0.0.0`无法正确解析。 -## charset and collate配置 +## charset and collate 配置 | 名称 | 预设值 | 说明 | | ------------------- | ---------------- | ------------------------------------------ | | `default_charset` | `utf8` | 创建图空间时的默认字符集。 | | `default_collate` | `utf8_bin` | 创建图空间时的默认排序规则。 | -## authorization配置 +## authorization 配置 | 名称 | 预设值 | 说明 | | ------------------- | ---------------- | ------------------------------------------ | -|`enable_authorize` |`false` |用户登录时是否进行身份验证。身份验证详情请参见[身份验证](../../7.data-security/1.authentication/1.authentication.md)。| +|`enable_authorize` |`false` |用户登录时是否进行身份验证。身份验证详情请参见 [身份验证](../../7.data-security/1.authentication/1.authentication.md)。| |`auth_type` |`password` |用户登录的身份验证方式。取值为`password`、`ldap`、`cloud`。| -## memory配置 +## memory 配置 | 名称 | 预设值 | 说明 | | ------------------- | ------------------------ | ------------------------------------------ | -| `system_memory_high_watermark_ratio` | - |内存高水位报警机制的触发阈值,默认为`0.9`。系统内存占用率高于该值会触发报警机制,Nebula Graph会停止接受查询。| +| `system_memory_high_watermark_ratio` | - |内存高水位报警机制的触发阈值,默认为`0.9`。系统内存占用率高于该值会触发报警机制,Nebula Graph 会停止接受查询。| -## experimental配置 +## experimental 配置 | 名称 | 预设值 | 说明 | | ------------------- | ------------------------ | ------------------------------------------ | |`enable_experimental_feature`|`false`|实验性功能开关。可选值为`true`和`false`。当前支持的实验性功能请参见下文。| -### experimental功能说明 +### experimental 功能说明 | 名称 | 说明 | | ------------------- | ------------------------------------------| -|TOSS | TOSS(Transaction on Storage Side)功能,用于保证对边进行`INSERT`、`UPDATE`或`UPSERT`操作的最终一致性(因为逻辑上的一条边对应着硬盘上的两个键值对)。暂不支持`DELETE`操作。开启后会增加相关操作的时延约1倍。| +|TOSS | TOSS(Transaction on Storage Side)功能,用于保证对边进行`INSERT`、`UPDATE`或`UPSERT`操作的最终一致性(因为逻辑上的一条边对应着硬盘上的两个键值对)。暂不支持`DELETE`操作。开启后会增加相关操作的时延约 1 倍。| diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md index b457ae9e245..c88708a3124 100644 --- a/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md +++ b/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md @@ -1,15 +1,15 @@ -# Storage服务配置 +# Storage 服务配置 -Storage服务提供了两份初始配置文件`nebula-storaged.conf.default`和`nebula-storaged.conf.production`,方便在不同场景中使用。文件的默认路径为`/usr/local/nebula/etc/`。 +Storage 服务提供了两份初始配置文件`nebula-storaged.conf.default`和`nebula-storaged.conf.production`,方便在不同场景中使用。文件的默认路径为`/usr/local/nebula/etc/`。 !!! caution - * 不建议修改`local_config`的值为`false`。修改后Nebula Graph服务启动后会先尝试从Meta服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 + * 不建议修改`local_config`的值为`false`。修改后 Nebula Graph 服务启动后会先尝试从 Meta 服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 * 不建议修改文档未介绍的配置项,除非已经熟悉源代码并完全了解配置项的作用。 ## 配置文件使用方式 -如需使用初始配置文件,从上述两个文件选择其一,删除后缀`.default`或`.production`,Meta服务才能将其识别为配置文件并从中获取配置信息。 +如需使用初始配置文件,从上述两个文件选择其一,删除后缀`.default`或`.production`,Meta 服务才能将其识别为配置文件并从中获取配置信息。 ## 配置文件参数值说明 @@ -17,30 +17,30 @@ Storage服务提供了两份初始配置文件`nebula-storaged.conf.default`和` !!! Note - Raft Listener的配置和Storage服务配置不同,详情请参见[部署Raft listener](../../4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md)。 + Raft Listener 的配置和 Storage 服务配置不同,详情请参见 [部署 Raft listener](../../4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md)。 -如需查看所有的参数及其当前值,参见[配置管理](1.configurations.md)。 +如需查看所有的参数及其当前值,参见 [配置管理](1.configurations.md)。 -## basics配置 +## basics 配置 | 名称 | 预设值 | 说明 | | :----------- | :----------------------- | :------------------| | `daemonize` | `true` | 是否启动守护进程。 | -| `pid_file` | `pids/nebula-storaged.pid` | 记录进程ID的文件。 | -| `timezone_name` | - | 指定Nebula Graph的时区。初始配置文件中未设置该参数,如需使用请手动添加。系统默认值为`UTC+00:00:00`。格式请参见[Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual")。例如,东八区的设置方式为`--timezone_name=UTC+08:00`。 | +| `pid_file` | `pids/nebula-storaged.pid` | 记录进程 ID 的文件。 | +| `timezone_name` | - | 指定 Nebula Graph 的时区。初始配置文件中未设置该参数,如需使用请手动添加。系统默认值为`UTC+00:00:00`。格式请参见 [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual")。例如,东八区的设置方式为`--timezone_name=UTC+08:00`。 | | `local_config` | `true` | 是否从配置文件获取配置信息。 | !!! Note - * 在插入[时间类型](../../3.ngql-guide/3.data-types/4.date-and-time.md)的属性值时,Nebula Graph会根据`timezone_name`设置的时区将该时间值(TIMESTAMP类型例外)转换成相应的UTC时间,因此在查询中返回的时间类型属性值为UTC时间。 - * `timezone_name`参数只用于转换Nebula Graph中存储的数据,Nebula Graph进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。 + * 在插入 [时间类型](../../3.ngql-guide/3.data-types/4.date-and-time.md) 的属性值时,Nebula Graph 会根据`timezone_name`设置的时区将该时间值(TIMESTAMP 类型例外)转换成相应的 UTC 时间,因此在查询中返回的时间类型属性值为 UTC 时间。 + * `timezone_name`参数只用于转换 Nebula Graph 中存储的数据,Nebula Graph 进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。 -## logging配置 +## logging 配置 | 名称 | 预设值 | 说明 | | :------------- | :------------------------ | :------------------------------------------------ | -| `log_dir` | `logs` | 存放Storage服务日志的目录,建议和数据保存在不同硬盘。 | -| `minloglevel` | `0` | 最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph不会记录任何日志。 | +| `log_dir` | `logs` | 存放 Storage 服务日志的目录,建议和数据保存在不同硬盘。 | +| `minloglevel` | `0` | 最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph 不会记录任何日志。 | | `v` | `0` | 日志详细级别,值越大,日志记录越详细。可选值为`0`、`1`、`2`、`3`。 | | `logbufsecs` | `0` | 缓冲日志的最大时间,超时后输出到日志文件。`0`表示实时输出。单位:秒。 | |`redirect_stdout`|`true` |是否将标准输出和标准错误重定向到单独的输出文件。 | @@ -48,70 +48,70 @@ Storage服务提供了两份初始配置文件`nebula-storaged.conf.default`和` |`stderr_log_file` |`storaged-stderr.log` | 标准错误日志文件名称。 | |`stderrthreshold` | `2` | 要复制到标准错误中的最小日志级别(`minloglevel`)。 | -## networking配置 +## networking 配置 | 名称 | 预设值 | 说明 | | :----------------------- | :---------------- | :---------------------------------------------------- | -| `meta_server_addrs` | `127.0.0.1:9559` | 全部Meta服务的IP地址和端口。多个Meta服务用英文逗号(,)分隔。 | -|`local_ip` | `127.0.0.1` | Storage服务的本地IP地址。本地IP地址用于识别nebula-storaged进程,如果是分布式集群或需要远程访问,请修改为对应地址。| -| `port` | `9779` | Storage服务的RPC守护进程监听端口。Storage服务对外端口为`9779`,对内端口为`9777`、`9778`和`9780`,Nebula Graph使用内部端口进行多副本间的交互。 | -| `ws_ip` | `0.0.0.0` | HTTP服务的IP地址。 | -| `ws_http_port` | `19779` | HTTP服务的端口。 | -| `ws_h2_port` | `19780` | HTTP2服务的端口。 | +| `meta_server_addrs` | `127.0.0.1:9559` | 全部 Meta 服务的 IP 地址和端口。多个 Meta 服务用英文逗号(,)分隔。 | +|`local_ip` | `127.0.0.1` | Storage 服务的本地 IP 地址。本地 IP 地址用于识别 nebula-storaged 进程,如果是分布式集群或需要远程访问,请修改为对应地址。| +| `port` | `9779` | Storage 服务的 RPC 守护进程监听端口。Storage 服务对外端口为`9779`,对内端口为`9777`、`9778`和`9780`,Nebula Graph 使用内部端口进行多副本间的交互。 | +| `ws_ip` | `0.0.0.0` | HTTP 服务的 IP 地址。 | +| `ws_http_port` | `19779` | HTTP 服务的端口。 | +| `ws_h2_port` | `19780` | HTTP2 服务的端口。 | |`heartbeat_interval_secs` | `10` | 默认心跳间隔。请确保所有服务的`heartbeat_interval_secs`取值相同,否则会导致系统无法正常工作。单位:秒。 | !!! caution - 必须在配置文件中使用真实的IP地址。否则某些情况下`127.0.0.1/0.0.0.0`无法正确解析。 + 必须在配置文件中使用真实的 IP 地址。否则某些情况下`127.0.0.1/0.0.0.0`无法正确解析。 -## raft配置 +## raft 配置 | 名称 | 预设值 | 说明 | | :--------------------------- | :-------- | :------------------------ | -|`raft_heartbeat_interval_secs`| `30` | Raft选举超时时间。单位:秒。 | -|`raft_rpc_timeout_ms` | `500` | Raft客户端的远程过程调用(RPC)超时时间。单位:毫秒。 | -|`wal_ttl` | `14400` | Raft WAL的生存时间。单位:秒。 | +|`raft_heartbeat_interval_secs`| `30` | Raft 选举超时时间。单位:秒。 | +|`raft_rpc_timeout_ms` | `500` | Raft 客户端的远程过程调用(RPC)超时时间。单位:毫秒。 | +|`wal_ttl` | `14400` | Raft WAL 的生存时间。单位:秒。 | -## disk配置 +## disk 配置 | 名称 | 预设值 | 说明 | | :--------------------------| :-------------- | :------------------------ | -|`data_path` | `data/storage` | 数据存储路径,多个路径用英文逗号(,)分隔。一个RocksDB实例对应一个路径。 | -|`minimum_reserved_bytes`|`268435456`|每个数据存储路径的剩余空间最小值,低于该值时,可能会导致集群数据写入失败。单位:字节。默认为`1073741824`,即1GB。| +|`data_path` | `data/storage` | 数据存储路径,多个路径用英文逗号(,)分隔。一个 RocksDB 实例对应一个路径。 | +|`minimum_reserved_bytes`|`268435456`|每个数据存储路径的剩余空间最小值,低于该值时,可能会导致集群数据写入失败。单位:字节。默认为`1073741824`,即 1GB。| |`rocksdb_batch_size` | `4096` | 批量操作的缓存大小。单位:字节。 | -|`rocksdb_block_cache` | `4` | BlockBasedTable的默认块缓存大小。单位:兆(MB)。 | +|`rocksdb_block_cache` | `4` | BlockBasedTable 的默认块缓存大小。单位:兆(MB)。 | |`engine_type` | `rocksdb` | 存储引擎类型。 | |`rocksdb_compression` | `lz4` | 压缩算法,可选值为`no`、`snappy`、`lz4`、`lz4hc`、`zlib`、`bzip2`和`zstd`。 | |`rocksdb_compression_per_level` | - | 为不同级别设置不同的压缩算法。 | -|`enable_rocksdb_statistics` | `false` | 是否启用RocksDB的数据统计。 | -|`rocksdb_stats_level` | `kExceptHistogramOrTimers` | RocksDB的数据统计级别。可选值为`kExceptHistogramOrTimers`(禁用计时器统计,跳过柱状图统计)、`kExceptTimers`(跳过计时器统计)、`kExceptDetailedTimers`(收集除互斥锁和压缩花费时间之外的所有统计数据)、`kExceptTimeForMutex`收集除互斥锁花费时间之外的所有统计数据)和`kAll`(收集所有统计数据)。 | -|`enable_rocksdb_prefix_filtering` | `true` | 是否启用prefix bloom filter,启用时可以提升图遍历速度,但是会增加内存消耗。 | -|`enable_rocksdb_whole_key_filtering` | `false` | 是否启用whole key bloom filter。 | -|`rocksdb_filtering_prefix_length` | `12` | 每个key的prefix长度。可选值为`12`(分片ID+点ID)和`16`(分片ID+点ID+TagID/Edge typeID)。单位:字节。 | -|`enable_partitioned_index_filter`|- |设置为`true`可以降低bloom过滤器占用的内存大小,但是在某些随机寻道(random-seek)的情况下,可能会降低读取性能。| +|`enable_rocksdb_statistics` | `false` | 是否启用 RocksDB 的数据统计。 | +|`rocksdb_stats_level` | `kExceptHistogramOrTimers` | RocksDB 的数据统计级别。可选值为`kExceptHistogramOrTimers`(禁用计时器统计,跳过柱状图统计)、`kExceptTimers`(跳过计时器统计)、`kExceptDetailedTimers`(收集除互斥锁和压缩花费时间之外的所有统计数据)、`kExceptTimeForMutex`收集除互斥锁花费时间之外的所有统计数据)和`kAll`(收集所有统计数据)。 | +|`enable_rocksdb_prefix_filtering` | `true` | 是否启用 prefix bloom filter,启用时可以提升图遍历速度,但是会增加内存消耗。 | +|`enable_rocksdb_whole_key_filtering` | `false` | 是否启用 whole key bloom filter。 | +|`rocksdb_filtering_prefix_length` | `12` | 每个 key 的 prefix 长度。可选值为`12`(分片 ID+点 ID)和`16`(分片 ID+点 ID+TagID/Edge typeID)。单位:字节。 | +|`enable_partitioned_index_filter`|- |设置为`true`可以降低 bloom 过滤器占用的内存大小,但是在某些随机寻道(random-seek)的情况下,可能会降低读取性能。| -## misc配置 +## misc 配置 !!! caution - 下表中的`snapshot`与Nebula Graph快照是不同的概念,这里的`snapshot`指Raft同步过程中leader上的存量数据。 + 下表中的`snapshot`与 Nebula Graph 快照是不同的概念,这里的`snapshot`指 Raft 同步过程中 leader 上的存量数据。 | 名称 | 预设值 | 说明 | | :-- | :----- | :--- | -| `snapshot_part_rate_limit` | `8388608` | Raft leader向Raft group中其它成员同步存量数据时的限速。单位:字节/秒。 | -| `snapshot_batch_size` | `1048576` | Raft leader向Raft group中其它成员同步存量数据时每批发送的数据量。单位:字节。 | -| `rebuild_index_part_rate_limit` | `4194304` | 重建索引过程中,Raft leader向Raft group中其它成员同步索引数据时的限速。单位:字节/秒。 | -| `rebuild_index_batch_size` | `1048576` | 重建索引过程中,Raft leader向Raft group中其它成员同步索引数据时每批发送的数据量。单位:字节。 | +| `snapshot_part_rate_limit` | `8388608` | Raft leader 向 Raft group 中其它成员同步存量数据时的限速。单位:字节/秒。 | +| `snapshot_batch_size` | `1048576` | Raft leader 向 Raft group 中其它成员同步存量数据时每批发送的数据量。单位:字节。 | +| `rebuild_index_part_rate_limit` | `4194304` | 重建索引过程中,Raft leader 向 Raft group 中其它成员同步索引数据时的限速。单位:字节/秒。 | +| `rebuild_index_batch_size` | `1048576` | 重建索引过程中,Raft leader 向 Raft group 中其它成员同步索引数据时每批发送的数据量。单位:字节。 | -## rocksdb options配置 +## rocksdb options 配置 | 名称 | 预设值 | 说明 | | :------------------- | :------------------------ | :------------------------------------------ | -|`rocksdb_db_options` |`{}` |RocksDB database选项。| -|`rocksdb_column_family_options` |`{"write_buffer_size":"67108864",`
`"max_write_buffer_number":"4",`
`"max_bytes_for_level_base":"268435456"}` |RocksDB column family选项。| -|`rocksdb_block_based_table_options` |`{"block_size":"8192"}` |RocksDB block based table选项。| +|`rocksdb_db_options` |`{}` |RocksDB database 选项。| +|`rocksdb_column_family_options` |`{"write_buffer_size":"67108864",`
`"max_write_buffer_number":"4",`
`"max_bytes_for_level_base":"268435456"}` |RocksDB column family 选项。| +|`rocksdb_block_based_table_options` |`{"block_size":"8192"}` |RocksDB block based table 选项。| -rocksdb options配置的格式为`{"":""}`,多个选项用英文逗号(,)隔开。 +rocksdb options 配置的格式为`{"":""}`,多个选项用英文逗号(,)隔开。 `rocksdb_db_options`和`rocksdb_column_family_options`支持的选项如下: @@ -153,11 +153,11 @@ rocksdb options配置的格式为`{"":""}`,多个 max_bytes_for_level_multiplier disable_auto_compactions ``` -参数的详细说明请参见[RocksDB官方文档](https://rocksdb.org/)。 +参数的详细说明请参见 [RocksDB 官方文档](https://rocksdb.org/)。 ## 超级节点处理(出入边数量极多的点) -在每个点出发的查询获取到边时,直接截断。目的是避免超级节点的邻边过多,单个查询占用过多的硬盘和内存。截取前 `max_edge_returned_per_vertex` 个边,多余的边不返回。该参数作用于全局,不用于单个space。 +在每个点出发的查询获取到边时,直接截断。目的是避免超级节点的邻边过多,单个查询占用过多的硬盘和内存。截取前 `max_edge_returned_per_vertex` 个边,多余的边不返回。该参数作用于全局,不用于单个 space。 |属性名 | 默认值 | 说明 | | :------------------- | :------------------------ | :------------------------------------------ | diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/6.kernel-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/6.kernel-config.md index 5cb0de056be..908401d47df 100644 --- a/docs-2.0/5.configurations-and-logs/1.configurations/6.kernel-config.md +++ b/docs-2.0/5.configurations-and-logs/1.configurations/6.kernel-config.md @@ -1,12 +1,12 @@ # Linux 内核配置 -本文介绍与Nebula Graph相关的Linux内核配置,并介绍如何修改配置。 +本文介绍与 Nebula Graph 相关的 Linux 内核配置,并介绍如何修改配置。 ## 资源控制 -### ulimit注意事项 +### ulimit 注意事项 -命令`ulimit`用于为当前shell会话设置资源阈值,注意事项如下: +命令`ulimit`用于为当前 shell 会话设置资源阈值,注意事项如下: - `ulimit`所做的更改仅对当前会话或子进程生效。 @@ -17,7 +17,7 @@ - 修改系统级别或调整硬性阈值,请编辑文件`/etc/security/limits.conf`。这种方式需要重新登录才生效。 ### ulimit -c -`ulimit -c`用于限制core文件的大小,建议设置为`unlimited`,命令如下: +`ulimit -c`用于限制 core 文件的大小,建议设置为`unlimited`,命令如下: ```bash ulimit -c unlimited @@ -25,7 +25,7 @@ ulimit -c unlimited ### ulimit -n -`ulimit -n`用于限制打开文件的数量,建议设置为超过10万,例如: +`ulimit -n`用于限制打开文件的数量,建议设置为超过 10 万,例如: ```bash ulimit -n 130000 @@ -35,15 +35,15 @@ ulimit -n 130000 ### vm.swappiness -`vm.swappiness`是触发虚拟内存(swap)的空闲内存百分比。值越大,使用swap的可能性就越大,建议设置为0,表示首先删除页缓存。需要注意的是,0表示**尽量**不使用swap。 +`vm.swappiness`是触发虚拟内存(swap)的空闲内存百分比。值越大,使用 swap 的可能性就越大,建议设置为 0,表示首先删除页缓存。需要注意的是,0 表示**尽量**不使用 swap。 ### vm.min_free_kbytes -`vm.min_free_kbytes`用于设置Linux虚拟机保留的最小空闲千字节数。如果系统内存足够,建议设置较大值。例如物理内存为128 GB,可以将`vm.min_free_kbytes`设置为5 GB。如果值太小,会导致系统无法申请足够的连续物理内存。 +`vm.min_free_kbytes`用于设置 Linux 虚拟机保留的最小空闲千字节数。如果系统内存足够,建议设置较大值。例如物理内存为 128 GB,可以将`vm.min_free_kbytes`设置为 5 GB。如果值太小,会导致系统无法申请足够的连续物理内存。 ### vm.max_map_count -`vm.max_map_count`用于限制单个进程的VMA(虚拟内存区域)数量。默认值为`65530`,对于绝大多数应用程序来说已经足够。如果应用程序因为内存消耗过大而报错,请增大本参数的值。 +`vm.max_map_count`用于限制单个进程的 VMA(虚拟内存区域)数量。默认值为`65530`,对于绝大多数应用程序来说已经足够。如果应用程序因为内存消耗过大而报错,请增大本参数的值。 ### vm.dirty_* @@ -51,7 +51,7 @@ ulimit -n 130000 ### Transparent huge page -为了降低延迟,用户必须关闭THP(transparent huge page)。命令如下: +为了降低延迟,用户必须关闭 THP(transparent huge page)。命令如下: ```bash root# echo never > /sys/kernel/mm/transparent_hugepage/enabled @@ -63,15 +63,15 @@ root# swapoff -a && swapon -a ### net.ipv4.tcp_slow_start_after_idle -`net.ipv4.tcp_slow_start_after_idle`默认值为1,会导致闲置一段时间后拥塞窗口超时,建议设置为`0`,尤其适合大带宽高延迟场景。 +`net.ipv4.tcp_slow_start_after_idle`默认值为 1,会导致闲置一段时间后拥塞窗口超时,建议设置为`0`,尤其适合大带宽高延迟场景。 ### net.core.somaxconn -`net.core.somaxconn`用于限制socket监听的连接队列数量。默认值为`128`。对于有大量突发连接的场景,建议设置为不低于`1024`。 +`net.core.somaxconn`用于限制 socket 监听的连接队列数量。默认值为`128`。对于有大量突发连接的场景,建议设置为不低于`1024`。 ### net.ipv4.tcp_max_syn_backlog -`net.ipv4.tcp_max_syn_backlog`用于限制处于SYN_RECV(半连接)状态的TCP连接数量。默认值为`128`。对于有大量突发连接的场景,建议设置为不低于`1024`。 +`net.ipv4.tcp_max_syn_backlog`用于限制处于 SYN_RECV(半连接)状态的 TCP 连接数量。默认值为`128`。对于有大量突发连接的场景,建议设置为不低于`1024`。 ### net.core.netdev_max_backlog @@ -79,15 +79,15 @@ root# swapoff -a && swapon -a ### net.ipv4.tcp_keepalive_* -`net.ipv4.tcp_keepalive_*`是一系列保持TCP连接存活的参数。对于使用四层透明负载均衡的应用程序,如果空闲连接异常断开,请增大`tcp_keepalive_time`和`tcp_keepalive_intvl`的值。 +`net.ipv4.tcp_keepalive_*`是一系列保持 TCP 连接存活的参数。对于使用四层透明负载均衡的应用程序,如果空闲连接异常断开,请增大`tcp_keepalive_time`和`tcp_keepalive_intvl`的值。 ### net.ipv4.tcp_wmem/rmem -TCP套接字发送/接收缓冲池的最小、最大、默认空间。对于大连接,建议设置为`带宽(GB)*往返时延(ms)`。 +TCP 套接字发送/接收缓冲池的最小、最大、默认空间。对于大连接,建议设置为`带宽 (GB) *往返时延 (ms)`。 ### scheduler -对于SSD设备,建议将`scheduler`设置为`noop`或者`none`,路径为`/sys/block/DEV_NAME/queue/scheduler`。 +对于 SSD 设备,建议将`scheduler`设置为`noop`或者`none`,路径为`/sys/block/DEV_NAME/queue/scheduler`。 ## 其他参数 @@ -97,7 +97,7 @@ TCP套接字发送/接收缓冲池的最小、最大、默认空间。对于大 ## 修改参数 -### sysctl命令 +### sysctl 命令 - `sysctl ` @@ -109,13 +109,8 @@ TCP套接字发送/接收缓冲池的最小、最大、默认空间。对于大 - `sysctl -p []`  - 从指定配置文件里加载Linux系统参数,默认从`/etc/sysctl.conf`加载。 + 从指定配置文件里加载 Linux 系统参数,默认从`/etc/sysctl.conf`加载。 ### prlimit -命令`prlimit`可以获取和设置进程资源的限制,结合`sudo`可以修改硬阈值,例如,`prlimit --nofile=140000 --pid=$$`调整当前进程允许的打开文件的最大数量为`140000`,立即生效,此命令仅支持RedHat 7u或更高版本。 - - - - - +命令`prlimit`可以获取和设置进程资源的限制,结合`sudo`可以修改硬阈值,例如,`prlimit --nofile=140000 --pid=$$`调整当前进程允许的打开文件的最大数量为`140000`,立即生效,此命令仅支持 RedHat 7u 或更高版本。 diff --git a/docs-2.0/5.configurations-and-logs/2.log-management/logs.md b/docs-2.0/5.configurations-and-logs/2.log-management/logs.md index ee650b66036..7f81e576845 100644 --- a/docs-2.0/5.configurations-and-logs/2.log-management/logs.md +++ b/docs-2.0/5.configurations-and-logs/2.log-management/logs.md @@ -1,24 +1,24 @@ # 日志配置 -Nebula Graph使用[glog](https://github.com/google/glog)打印日志,使用[gflags](https://gflags.github.io/gflags/)控制日志级别,并在运行时通过HTTP接口动态修改日志级别,方便跟踪问题。 +Nebula Graph 使用 [glog](https://github.com/google/glog) 打印日志,使用 [gflags](https://gflags.github.io/gflags/) 控制日志级别,并在运行时通过 HTTP 接口动态修改日志级别,方便跟踪问题。 ## 日志目录 日志的默认目录为`/usr/local/nebula/logs/`。 -如果在Nebula Graph运行过程中删除日志目录,日志不会继续打印,但是不会影响业务。重启服务可以恢复正常。 +如果在 Nebula Graph 运行过程中删除日志目录,日志不会继续打印,但是不会影响业务。重启服务可以恢复正常。 ## 配置说明 -- `minloglevel`:最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph不会记录任何日志。 +- `minloglevel`:最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,Nebula Graph 不会记录任何日志。 - `v`:日志详细级别,值越大,日志记录越详细。可选值为`0`、`1`、`2`、`3`。 -Meta服务、Graph服务和Storage服务的日志级别可以在各自的配置文件中查看,默认路径为`/usr/local/nebula/etc/`。 +Meta 服务、Graph 服务和 Storage 服务的日志级别可以在各自的配置文件中查看,默认路径为`/usr/local/nebula/etc/`。 ## 查看日志级别 -使用如下命令查看当前所有的gflags参数(包括日志参数): +使用如下命令查看当前所有的 gflags 参数(包括日志参数): ```bash $ curl :/flags @@ -26,18 +26,18 @@ $ curl :/flags |参数|说明| |:---|:---| -|`ws_ip`|HTTP服务的IP地址,可以在配置文件中查看。默认值为`127.0.0.1`。| -|`ws_port`|HTTP服务的端口,可以在配置文件中查看。默认值分别为`19559`(Meta)、`19669`(Graph)`19779`(Storage)。| +|`ws_ip`|HTTP 服务的 IP 地址,可以在配置文件中查看。默认值为`127.0.0.1`。| +|`ws_port`|HTTP 服务的端口,可以在配置文件中查看。默认值分别为`19559`(Meta)、`19669`(Graph)`19779`(Storage)。| 示例如下: -- 查看Meta服务当前的最小日志级别: +- 查看 Meta 服务当前的最小日志级别: ```bash $ curl 127.0.0.1:19559/flags | grep 'minloglevel' ``` -- 查看Storage服务当前的日志详细级别: +- 查看 Storage 服务当前的日志详细级别: ```bash $ curl 127.0.0.1:19779/flags | grep -w 'v' @@ -53,10 +53,10 @@ $ curl -X PUT -H "Content-Type: application/json" -d '{"":[,"": |参数|说明| |:---|:---| -|`key`|待修改的日志类型,可选值请参见[配置说明](#_3)。| -|`value`|日志级别,可选值请参见[配置说明](#_3)。| -|`ws_ip`|HTTP服务的IP地址,可以在配置文件中查看。默认值为`127.0.0.1`。| -|`ws_port`|HTTP服务的端口,可以在配置文件中查看。默认值分别为`19559`(Meta)、`19669`(Graph)`19779`(Storage)。| +|`key`|待修改的日志类型,可选值请参见 [配置说明](#_3)。| +|`value`|日志级别,可选值请参见 [配置说明](#_3)。| +|`ws_ip`|HTTP 服务的 IP 地址,可以在配置文件中查看。默认值为`127.0.0.1`。| +|`ws_port`|HTTP 服务的端口,可以在配置文件中查看。默认值分别为`19559`(Meta)、`19669`(Graph)`19779`(Storage)。| 示例如下: @@ -67,7 +67,7 @@ $ curl -X PUT -H "Content-Type: application/json" -d '{"minloglevel":0,"v":3}' " ``` -如果在Nebula Graph运行时修改了日志级别,重启服务后会恢复为配置文件中设置的级别,如果需要永久修改,请修改[配置文件](../1.configurations/1.configurations.md)。 +如果在 Nebula Graph 运行时修改了日志级别,重启服务后会恢复为配置文件中设置的级别,如果需要永久修改,请修改 [配置文件](../1.configurations/1.configurations.md)。 ## RocksDB 日志 diff --git a/docs-2.0/6.monitor-and-metrics/1.query-performance-metrics.md b/docs-2.0/6.monitor-and-metrics/1.query-performance-metrics.md index 253d1616761..cd55460bddc 100644 --- a/docs-2.0/6.monitor-and-metrics/1.query-performance-metrics.md +++ b/docs-2.0/6.monitor-and-metrics/1.query-performance-metrics.md @@ -1,18 +1,18 @@ -# 查询Nebula Graph监控指标 +# 查询 Nebula Graph 监控指标 -Nebula Graph支持多种方式查询服务的监控指标,本文将介绍最基础的方式,即通过HTTP端口查询。 +Nebula Graph 支持多种方式查询服务的监控指标,本文将介绍最基础的方式,即通过 HTTP 端口查询。 ## 监控指标说明 -Nebula Graph的每个监控指标都由三个部分组成,中间用英文句号(.)隔开,例如`num_queries.sum.600`。不同的Nebula Graph服务支持查询的监控指标也不同。指标结构的说明如下。 +Nebula Graph 的每个监控指标都由三个部分组成,中间用英文句号(.)隔开,例如`num_queries.sum.600`。不同的 Nebula Graph 服务支持查询的监控指标也不同。指标结构的说明如下。 |类别|示例|说明| |:---|:---|:---| |指标名称|`num_queries`|简单描述指标的含义。| -|统计类型|`sum`|指标统计的方法。当前支持SUM、COUNT、AVG、RATE和P分位数(P75、P95、P99、P99.9)。| -|统计时间|`600`|指标统计的时间范围,当前支持5秒、60秒、600秒和3600秒,分别表示最近5秒、最近1分钟、最近10分钟和最近1小时。| +|统计类型|`sum`|指标统计的方法。当前支持 SUM、COUNT、AVG、RATE 和 P 分位数(P75、P95、P99、P99.9)。| +|统计时间|`600`|指标统计的时间范围,当前支持 5 秒、60 秒、600 秒和 3600 秒,分别表示最近 5 秒、最近 1 分钟、最近 10 分钟和最近 1 小时。| -## 通过HTTP端口查询监控指标 +## 通过 HTTP 端口查询监控指标 ### 语法 @@ -22,20 +22,20 @@ curl -G "http://:/stats?stats= [&format=json]" |选项|说明| |:---|:---| -|`ip`|服务器的IP地址,可以在安装目录内查看配置文件获取。| -|`port`|服务器的HTTP端口,可以在安装目录内查看配置文件获取。默认情况下,Meta服务端口为19559,Graph服务端口为19669,Storage服务端口为19779。| +|`ip`|服务器的 IP 地址,可以在安装目录内查看配置文件获取。| +|`port`|服务器的 HTTP 端口,可以在安装目录内查看配置文件获取。默认情况下,Meta 服务端口为 19559,Graph 服务端口为 19669,Storage 服务端口为 19779。| |`metric_name_list`|监控指标名称,多个监控指标用英文逗号(,)隔开。| -|`&format=json`|将结果以JSON格式返回。| +|`&format=json`|将结果以 JSON 格式返回。| !!! Note - 如果Nebula Graph服务部署在容器中,需要执行`docker-compose ps`命令查看映射到容器外部的端口,然后通过该端口查询。 + 如果 Nebula Graph 服务部署在容器中,需要执行`docker-compose ps`命令查看映射到容器外部的端口,然后通过该端口查询。 ### 示例 - 查询单个监控指标 - 查询Graph服务中,最近10分钟的请求总数。 + 查询 Graph 服务中,最近 10 分钟的请求总数。 ```bash $ curl -G "http://192.168.8.40:19669/stats?stats=num_queries.sum.600" @@ -44,7 +44,7 @@ curl -G "http://:/stats?stats= [&format=json]" - 查询多个监控指标 - 查询Meta服务中,最近1分钟的心跳平均延迟和最近10分钟P99心跳(1%最慢的心跳)的平均延迟。 + 查询 Meta 服务中,最近 1 分钟的心跳平均延迟和最近 10 分钟 P99 心跳(1%最慢的心跳)的平均延迟。 ```bash $ curl -G "http://192.168.8.40:19559/stats?stats=heartbeat_latency_us.avg.60,heartbeat_latency_us.p99.600" @@ -52,9 +52,9 @@ curl -G "http://:/stats?stats= [&format=json]" heartbeat_latency_us.p99.600=985 ``` -- 查询监控指标并以JSON格式返回 +- 查询监控指标并以 JSON 格式返回 - 查询Storage服务中,最近10分钟新增的点数量,并以JSON格式返回结果。 + 查询 Storage 服务中,最近 10 分钟新增的点数量,并以 JSON 格式返回结果。 ```bash $ curl -G "http://192.168.8.40:19779/stats?stats=num_add_vertices.sum.600&format=json" @@ -92,4 +92,3 @@ curl -G "http://:/stats?stats= [&format=json]" num_heartbeats.sum.600=394 num_heartbeats.sum.3600=2364 ``` - diff --git a/docs-2.0/7.data-security/1.authentication/1.authentication.md b/docs-2.0/7.data-security/1.authentication/1.authentication.md index 674ea371e8f..e97eeaed451 100644 --- a/docs-2.0/7.data-security/1.authentication/1.authentication.md +++ b/docs-2.0/7.data-security/1.authentication/1.authentication.md @@ -2,34 +2,34 @@ 身份验证用于将会话映射到特定用户,从而实现访问控制。 -当客户端连接到Nebula Graph时,Nebula Graph会创建一个会话,会话中存储连接的各种信息,如果开启了身份验证,就会将会话映射到对应的用户。 +当客户端连接到 Nebula Graph 时,Nebula Graph 会创建一个会话,会话中存储连接的各种信息,如果开启了身份验证,就会将会话映射到对应的用户。 !!! Note - 默认情况下,身份验证功能是关闭的,用户可以使用root用户名和任意密码连接到Nebula Graph。 + 默认情况下,身份验证功能是关闭的,用户可以使用 root 用户名和任意密码连接到 Nebula Graph。 -Nebula Graph支持两种身份验证方式:本地身份验证和LDAP验证。 +Nebula Graph 支持两种身份验证方式:本地身份验证和 LDAP 验证。 ## 本地身份验证 -本地身份验证是指在服务器本地存储用户名、加密密码,当用户尝试访问Nebula Graph时,将进行身份验证。 +本地身份验证是指在服务器本地存储用户名、加密密码,当用户尝试访问 Nebula Graph 时,将进行身份验证。 ### 启用本地身份验证 1. 编辑配置文件`nebula-graphd.conf`(默认目录为`/usr/local/nebula/etc/`),设置`--enable_authorize=true`并保存退出。 -2. 重启Nebula Graph服务。 +2. 重启 Nebula Graph 服务。 !!! Note - 开启身份验证后,默认的God角色账号为`root`,密码为`nebula`。角色详情请参见[内置角色权限](3.role-list.md)。 + 开启身份验证后,默认的 God 角色账号为`root`,密码为`nebula`。角色详情请参见 [内置角色权限](3.role-list.md)。 -## OpenLDAP验证 +## OpenLDAP 验证 -OpenLDAP是轻型目录访问协议(LDAP)的开源实现,可以实现账号集中管理。 +OpenLDAP 是轻型目录访问协议(LDAP)的开源实现,可以实现账号集中管理。 -### 启用OpenLDAP验证 +### 启用 OpenLDAP 验证 !!! Enterpriseonly - 当前仅企业版支持集成OpenLDAP进行身份验证,详情请参见[使用OpenLDAP进行身份验证](4.ldap.md)。 + 当前仅企业版支持集成 OpenLDAP 进行身份验证,详情请参见 [使用 OpenLDAP 进行身份验证](4.ldap.md)。 diff --git a/docs-2.0/7.data-security/1.authentication/2.management-user.md b/docs-2.0/7.data-security/1.authentication/2.management-user.md index 04b62ec2d79..83a95bc43bd 100644 --- a/docs-2.0/7.data-security/1.authentication/2.management-user.md +++ b/docs-2.0/7.data-security/1.authentication/2.management-user.md @@ -1,18 +1,17 @@ # 用户管理 -用户管理是Nebula Graph访问控制中不可或缺的组成部分,本文将介绍用户管理的相关语法。 +用户管理是 Nebula Graph 访问控制中不可或缺的组成部分,本文将介绍用户管理的相关语法。 -开启[身份验证](1.authentication.md)后,用户需要使用已创建的用户才能连接Nebula Graph,而且连接后可以进行的操作也取决于该用户拥有的[角色权限](3.role-list.md)。 +开启 [身份验证](1.authentication.md) 后,用户需要使用已创建的用户才能连接 Nebula Graph,而且连接后可以进行的操作也取决于该用户拥有的 [角色权限](3.role-list.md)。 !!! Note - * 默认情况下,身份验证功能是关闭的,用户可以使用root用户名和任意密码连接到Nebula Graph。 + * 默认情况下,身份验证功能是关闭的,用户可以使用 root 用户名和任意密码连接到 Nebula Graph。 * 修改权限后,对应的用户需要重新登录才能生效。 - ## 创建用户(`CREATE USER`) -执行`CREATE USER`语句可以创建新的Nebula Graph用户。当前仅**God**角色用户(即`root`用户)能够执行`CREATE USER`语句。 +执行`CREATE USER`语句可以创建新的 Nebula Graph 用户。当前仅** God **角色用户(即`root`用户)能够执行`CREATE USER`语句。 - 语法 @@ -28,7 +27,7 @@ ## 授权用户(`GRANT ROLE`) -执行`GRANT ROLE`语句可以将指定图空间的内置角色权限授予用户。当前仅**God**角色用户和**Admin**角色用户能够执行`GRANT ROLE`语句。角色权限的说明,请参见[内置角色权限](3.role-list.md)。 +执行`GRANT ROLE`语句可以将指定图空间的内置角色权限授予用户。当前仅** God **角色用户和** Admin **角色用户能够执行`GRANT ROLE`语句。角色权限的说明,请参见 [内置角色权限](3.role-list.md)。 - 语法 @@ -44,7 +43,7 @@ ## 撤销用户权限(`REVOKE ROLE`) -执行`REVOKE ROLE`语句可以撤销用户的指定图空间的内置角色权限。当前仅**God**角色用户和**Admin**角色用户能够执行`REVOKE ROLE`语句。角色权限的说明,请参见[内置角色权限](3.role-list.md)。 +执行`REVOKE ROLE`语句可以撤销用户的指定图空间的内置角色权限。当前仅** God **角色用户和** Admin **角色用户能够执行`REVOKE ROLE`语句。角色权限的说明,请参见 [内置角色权限](3.role-list.md)。 - 语法 @@ -97,7 +96,7 @@ ## 修改用户密码(`ALTER USER`) -执行`ALTER USER`语句可以修改用户密码,修改时不需要提供旧密码。当前仅**God**角色用户(即`root`用户)能够执行`ALTER USER`语句。 +执行`ALTER USER`语句可以修改用户密码,修改时不需要提供旧密码。当前仅** God **角色用户(即`root`用户)能够执行`ALTER USER`语句。 - 语法 @@ -113,7 +112,7 @@ ## 删除用户(`DROP USER`) -执行`DROP USER`语句可以删除用户。当前仅**God**角色用户能够执行`DROP USER`语句。 +执行`DROP USER`语句可以删除用户。当前仅** God **角色用户能够执行`DROP USER`语句。 !!! Note @@ -133,7 +132,7 @@ ## 查看用户列表(`SHOW USERS`) -执行`SHOW USERS`语句可以查看用户列表。当前仅**God**角色用户能够执行`SHOW USERS`语句。 +执行`SHOW USERS`语句可以查看用户列表。当前仅** God **角色用户能够执行`SHOW USERS`语句。 - 语法 diff --git a/docs-2.0/7.data-security/1.authentication/3.role-list.md b/docs-2.0/7.data-security/1.authentication/3.role-list.md index 2ba21e0f265..d07beb46ecc 100644 --- a/docs-2.0/7.data-security/1.authentication/3.role-list.md +++ b/docs-2.0/7.data-security/1.authentication/3.role-list.md @@ -1,55 +1,55 @@ # 内置角色权限 -所谓角色,就是一组相关权限的集合。用户可以把角色分配给[创建的用户](2.management-user.md),从而实现访问控制。 +所谓角色,就是一组相关权限的集合。用户可以把角色分配给 [创建的用户](2.management-user.md),从而实现访问控制。 ## 内置角色 -Nebula Graph内置了多种角色,说明如下: +Nebula Graph 内置了多种角色,说明如下: - God - - 初始最高权限角色,拥有**所有操作**的权限。类似于Linux中的`root`和Windows中的`administrator`。 + - 初始最高权限角色,拥有**所有操作**的权限。类似于 Linux 中的`root`和 Windows 中的`administrator`。 - - Meta服务初始化时,会自动创建God角色用户`root`,密码为`nebula`。 + - Meta 服务初始化时,会自动创建 God 角色用户`root`,密码为`nebula`。 !!! caution "注意" 请及时修改`root`用户的密码,保证数据安全。 - - 一个集群只能有一个God角色用户,该用户可以管理集群内所有图空间。 + - 一个集群只能有一个 God 角色用户,该用户可以管理集群内所有图空间。 - - 不支持手动授权God角色,只能使用默认God角色用户`root`。 + - 不支持手动授权 God 角色,只能使用默认 God 角色用户`root`。 - Admin - - 对权限内的图空间拥有Schema和data的**读写**权限。 + - 对权限内的图空间拥有 Schema 和 data 的**读写**权限。 - 可以将权限内的图空间授权给其他用户。 !!! caution "注意" - 只能授权低于ADMIN级别的角色给其他用户。 + 只能授权低于 ADMIN 级别的角色给其他用户。 - DBA - - 对权限内的图空间拥有Schema和data的**读写**权限。 + - 对权限内的图空间拥有 Schema 和 data 的**读写**权限。 - 无法将权限内的图空间授权给其他用户。 - User - - 对权限内的图空间拥有Schema的**只读**权限。 + - 对权限内的图空间拥有 Schema 的**只读**权限。 - - 对权限内的图空间拥有data的**读写**权限。 + - 对权限内的图空间拥有 data 的**读写**权限。 - Guest - - 对权限内的图空间拥有Schema和data的**只读**权限。 + - 对权限内的图空间拥有 Schema 和 data 的**只读**权限。 !!! Note * 不支持自行创建角色,只能使用默认的内置角色。 - * 一个用户在一个图空间内只能拥有一个角色权限。授权用户请参见[用户管理](2.management-user.md)。 + * 一个用户在一个图空间内只能拥有一个角色权限。授权用户请参见 [用户管理](2.management-user.md)。 ## 角色权限 各角色的执行权限如下。 @@ -69,5 +69,5 @@ Nebula Graph内置了多种角色,说明如下: !!! caution - Show operations为特殊操作,只会在自身权限内执行。例如`SHOW SPACES`,每个角色都可以执行,但是只会返回自身权限内的图空间。 - 只有God角色可以执行`SHOW USERS`和`SHOW SNAPSHOTS`语句。 + Show operations 为特殊操作,只会在自身权限内执行。例如`SHOW SPACES`,每个角色都可以执行,但是只会返回自身权限内的图空间。 + 只有 God 角色可以执行`SHOW USERS`和`SHOW SNAPSHOTS`语句。 diff --git a/docs-2.0/7.data-security/1.authentication/4.ldap.md b/docs-2.0/7.data-security/1.authentication/4.ldap.md index 8b77bb8b81f..8ea8b581d32 100644 --- a/docs-2.0/7.data-security/1.authentication/4.ldap.md +++ b/docs-2.0/7.data-security/1.authentication/4.ldap.md @@ -1,6 +1,6 @@ -# 使用OpenLDAP进行身份验证 +# 使用 OpenLDAP 进行身份验证 -本文介绍如何将Nebula Graph连接到OpenLDAP服务器,使用OpenLDAP中定义的DN(Distinguished Name)和密码进行身份验证。 +本文介绍如何将 Nebula Graph 连接到 OpenLDAP 服务器,使用 OpenLDAP 中定义的 DN(Distinguished Name)和密码进行身份验证。 !!! enterpriseonly @@ -8,31 +8,31 @@ ## 认证方式 -启用OpenLDAP身份验证后,输入用户的账号和密码登录Nebula Graph时,Nebula Graph会在Meta服务中查找登录账号是否存在,如果账号存在,再根据认证方式去OpenLDAP中找到对应的DN,验证密码。 +启用 OpenLDAP 身份验证后,输入用户的账号和密码登录 Nebula Graph 时,Nebula Graph 会在 Meta 服务中查找登录账号是否存在,如果账号存在,再根据认证方式去 OpenLDAP 中找到对应的 DN,验证密码。 -OpenLDAP支持的认证方式有两种:简单绑定认证和搜索绑定认证。 +OpenLDAP 支持的认证方式有两种:简单绑定认证和搜索绑定认证。 ### 简单绑定认证(SimpleBindAuth) -简单绑定认证会根据登录账号和Graph服务配置信息,拼接成OpenLDAP可以识别的DN,然后根据DN和密码,在OpenLDAP上进行验证。 +简单绑定认证会根据登录账号和 Graph 服务配置信息,拼接成 OpenLDAP 可以识别的 DN,然后根据 DN 和密码,在 OpenLDAP 上进行验证。 ### 搜索绑定认证(SearchBindAuth) -搜索绑定认证会读取Graph服务配置信息,查询配置信息中的`uid`和登录账号是否匹配,如果匹配,就读取这个DN,然后用DN和密码,在OpenLDAP上进行验证。 +搜索绑定认证会读取 Graph 服务配置信息,查询配置信息中的`uid`和登录账号是否匹配,如果匹配,就读取这个 DN,然后用 DN 和密码,在 OpenLDAP 上进行验证。 ## 前提条件 -- 已安装[OpenLDAP](https://www.openldap.org/)。 +- 已安装 [OpenLDAP](https://www.openldap.org/)。 -- 已在OpenLDAP上导入用户的账号和密码信息。 +- 已在 OpenLDAP 上导入用户的账号和密码信息。 -- OpenLDAP所在服务器已开放相应认证端口。 +- OpenLDAP 所在服务器已开放相应认证端口。 ## 操作步骤 -以OpenLDAP上已存在的账号`test2`、密码`passwdtest2`为例进行演示。 +以 OpenLDAP 上已存在的账号`test2`、密码`passwdtest2`为例进行演示。 -1. [连接Nebula Graph](../../4.deployment-and-installation/connect-to-nebula-graph.md),创建与OpenLDAP中对应的影子账号`test2`并授权。 +1. [连接 Nebula Graph](../../4.deployment-and-installation/connect-to-nebula-graph.md),创建与 OpenLDAP 中对应的影子账号`test2`并授权。 ```ngql nebula> CREATE USER test2 WITH PASSWORD ''; @@ -41,7 +41,7 @@ OpenLDAP支持的认证方式有两种:简单绑定认证和搜索绑定认证 !!! note - Nebula Graph内创建用户时,密码可以任意设置。 + Nebula Graph 内创建用户时,密码可以任意设置。 2. 编辑配置文件`nebula-graphd.conf`(默认目录为`/usr/local/nebula/etc/`): @@ -54,15 +54,15 @@ OpenLDAP支持的认证方式有两种:简单绑定认证和搜索绑定认证 --enable_authorize=true # 身份验证方式:password、ldap、cloud --auth_type=ldap - # OpenLDAP服务器地址 + # OpenLDAP 服务器地址 --ldap_server=192.168.8.211 - # OpenLDAP服务器端口 + # OpenLDAP 服务器端口 --ldap_port=389 - # OpenLDAP中的Schema名称 + # OpenLDAP 中的 Schema 名称 --ldap_scheme=ldap - # DN前缀 + # DN 前缀 --ldap_prefix=uid= - # DN后缀 + # DN 后缀 --ldap_suffix=,ou=it,dc=sys,dc=com ``` @@ -75,17 +75,17 @@ OpenLDAP支持的认证方式有两种:简单绑定认证和搜索绑定认证 --enable_authorize=true # 身份验证方式:password、ldap、cloud --auth_type=ldap - # OpenLDAP服务器地址 + # OpenLDAP 服务器地址 --ldap_server=192.168.8.211 - # OpenLDAP服务器端口 + # OpenLDAP 服务器端口 --ldap_port=389 - # OpenLDAP中的Schema名称 + # OpenLDAP 中的 Schema 名称 --ldap_scheme=ldap - # 绑定目标对象的DN + # 绑定目标对象的 DN --ldap_basedn=ou=it,dc=sys,dc=com ``` -3. [重启Nebula Graph服务](../../4.deployment-and-installation/manage-service.md),让新配置生效。 +3. [重启 Nebula Graph 服务](../../4.deployment-and-installation/manage-service.md),让新配置生效。 4. 进行登录测试。 @@ -98,4 +98,4 @@ OpenLDAP支持的认证方式有两种:简单绑定认证和搜索绑定认证 !!! note - 使用OpenLDAP进行身份验证后,本地用户(包括`root`)无法正常登录。 + 使用 OpenLDAP 进行身份验证后,本地用户(包括`root`)无法正常登录。 diff --git a/docs-2.0/7.data-security/2.backup-restore/1.what-is-br.md b/docs-2.0/7.data-security/2.backup-restore/1.what-is-br.md index cc2edd63108..c76bbe5ac7c 100644 --- a/docs-2.0/7.data-security/2.backup-restore/1.what-is-br.md +++ b/docs-2.0/7.data-security/2.backup-restore/1.what-is-br.md @@ -1,82 +1,82 @@ -# 什么是Backup&Restore +# 什么是 Backup&Restore -Backup&Restore(简称BR)是一款命令行界面(CLI)工具,可以帮助备份Nebula Graph的图空间数据,或者通过备份文件恢复数据。 +Backup&Restore(简称 BR)是一款命令行界面(CLI)工具,可以帮助备份 Nebula Graph 的图空间数据,或者通过备份文件恢复数据。 ## 功能 - 一键操作备份和恢复数据。 - 支持基于以下备份文件恢复数据: - - 本地磁盘(SSD或HDD) - - Hadoop分布式文件系统(HDFS) + - 本地磁盘(SSD 或 HDD) + - Hadoop 分布式文件系统(HDFS) - 阿里云对象存储(Alibaba Cloud OSS) - 亚马逊对象存储(Amazon S3)(TODO:coding) - 支持备份整个 Nebula Graph 集群,暂不支持指定图空间数据。 ## 限制 -- Nebula Graph版本需要为v{{ nebula.release }}。 +- Nebula Graph 版本需要为 v{{ nebula.release }}。 - 数据备份仅支持全量备份,不支持增量备份。 - Nebula Listener 暂时不支持备份,且全文索引也不支持备份。 - 如果备份数据到本地磁盘,备份的文件将会放置在每个服务器的本地路径中。也可以在本地挂载 NFS 文件系统,以便将备份数据还原到不同的主机上。 - 备份图空间只能恢复到原集群,不能跨集群恢复。 -- 数据备份过程中,指定图空间中的DDL和DML语句将会阻塞,我们建议在业务低峰期进行操作,例如凌晨2点至5点。 +- 数据备份过程中,指定图空间中的 DDL 和 DML 语句将会阻塞,我们建议在业务低峰期进行操作,例如凌晨 2 点至 5 点。 - 数据恢复仅支持在相同拓扑的集群上进行,即原集群和目标集群的主机数量必须相同。 - 数据恢复需要删除数据并重启,建议离线进行。 - + ## 工作原理 ### 备份 -为了备份数据,BR会发送备份请求给leader的metad进程,触发备份。详细说明如下: +为了备份数据,BR 会发送备份请求给 leader 的 metad 进程,触发备份。详细说明如下: -1. 验证BR访问Meta服务器和Storage服务器的SSH登录信息。 +1. 验证 BR 访问 Meta 服务器和 Storage 服务器的 SSH 登录信息。 !!! Note - 如果必须使用云存储,例如Alibaba Cloud OSS或Amazon S3,还需要验证它们的客户端安装和配置。 + 如果必须使用云存储,例如 Alibaba Cloud OSS 或 Amazon S3,还需要验证它们的客户端安装和配置。 -2. BR发起请求创建备份文件。 -3. leader的metad进程被锁定。 +2. BR 发起请求创建备份文件。 +3. leader 的 metad 进程被锁定。 !!! Note - 从此时起至第9步结束,无法在指定图空间内执行任何nGQL的DDL语句。 + 从此时起至第 9 步结束,无法在指定图空间内执行任何 nGQL 的 DDL 语句。 -4. leader的metad进程阻塞指定图空间的写请求。 +4. leader 的 metad 进程阻塞指定图空间的写请求。 !!! Note - 从此时起至第7步结束,无法在指定图空间内执行任何nGQL的DML语句,但是可以执行DQL语句。 + 从此时起至第 7 步结束,无法在指定图空间内执行任何 nGQL 的 DML 语句,但是可以执行 DQL 语句。 -5. leader的metad进程发送请求至storaged进程,请求快照文件名称。 -6. leader的metad进程扫描本地RocksDB文件,输出为SST(Static Sorted Table)格式文件。 -7. leader的metad进程解除阻塞指定图空间的写请求。 +5. leader 的 metad 进程发送请求至 storaged 进程,请求快照文件名称。 +6. leader 的 metad 进程扫描本地 RocksDB 文件,输出为 SST(Static Sorted Table)格式文件。 +7. leader 的 metad 进程解除阻塞指定图空间的写请求。 !!! Note - 从此时起,可以在指定图空间内执行nGQL的DML语句。 + 从此时起,可以在指定图空间内执行 nGQL 的 DML 语句。 -8. leader的metad进程回应BR,包含的Meta数据和快照信息如下: - - thrift格式信息 +8. leader 的 metad 进程回应 BR,包含的 Meta 数据和快照信息如下: + - thrift 格式信息 - 图空间分区信息 - - 每个分区的Raft日志提交ID + - 每个分区的 Raft 日志提交 ID - 快照信息(每个快照存储进程的目录) - - Meta服务器SST格式文件名称 + - Meta 服务器 SST 格式文件名称 - 备份文件名称 -9. leader的metad进程解除锁定。 +9. leader 的 metad 进程解除锁定。 !!! Note - 从此时起,可以在指定图空间内执行任何nGQL的DDL语句。 + 从此时起,可以在指定图空间内执行任何 nGQL 的 DDL 语句。 -10. BR通过SSH登录至leader所在的Meta服务器和所有Storage服务器,然后备份文件。 -11. 如果使用的是Alibaba Cloud OSS或Amazon S3,BR会调用命令将备份文件上传至云存储中。 +10. BR 通过 SSH 登录至 leader 所在的 Meta 服务器和所有 Storage 服务器,然后备份文件。 +11. 如果使用的是 Alibaba Cloud OSS 或 Amazon S3,BR 会调用命令将备份文件上传至云存储中。 !!! Note 本步骤会大量读取磁盘,建议使用万兆网络保证速率。如果上传过程中出现网络错误,备份会失败,必须重新执行备份操作。目前备份过程不支持断点续传。 -12. BR发起请求清理Storage服务器的快照,备份完成。 +12. BR 发起请求清理 Storage 服务器的快照,备份完成。 下图展示了备份的具体流程。 @@ -95,29 +95,29 @@ Backup&Restore(简称BR)是一款命令行界面(CLI)工具,可以帮 恢复过程的详细说明如下: -1. 验证BR访问Meta服务器和Storage服务器的SSH登录信息。 +1. 验证 BR 访问 Meta 服务器和 Storage 服务器的 SSH 登录信息。 !!! Note - 如果必须使用云存储,例如Alibaba Cloud OSS或Amazon S3,还需要验证它们的客户端安装和配置。 + 如果必须使用云存储,例如 Alibaba Cloud OSS 或 Amazon S3,还需要验证它们的客户端安装和配置。 -2. BR从外部存储或云存储中下载Meta信息(非完整数据)。 -3. BR验证集群的拓扑结构,确保原集群和目标集群的主机数量一致。 -4. BR远程停止Meta服务和Storage服务。 -5. BR通过SSH登录至leader所在的Meta服务器和所有Storage服务器,然后删除现有的数据文件。 -6. 现有数据文件删除后,Meta服务器和所有Storage服务器从外部存储或云存储中下载备份文件。 -7. 备份文件下载完成后,BR启动Meta服务。 -8. BR调用`br restore`命令更改指定metad进程的分区信息。 -9. BR启动Storage服务,恢复过程完成。 +2. BR 从外部存储或云存储中下载 Meta 信息(非完整数据)。 +3. BR 验证集群的拓扑结构,确保原集群和目标集群的主机数量一致。 +4. BR 远程停止 Meta 服务和 Storage 服务。 +5. BR 通过 SSH 登录至 leader 所在的 Meta 服务器和所有 Storage 服务器,然后删除现有的数据文件。 +6. 现有数据文件删除后,Meta 服务器和所有 Storage 服务器从外部存储或云存储中下载备份文件。 +7. 备份文件下载完成后,BR 启动 Meta 服务。 +8. BR 调用`br restore`命令更改指定 metad 进程的分区信息。 +9. BR 启动 Storage 服务,恢复过程完成。 下图展示了恢复的具体流程。 ![The figure shows the restoration process](https://docs.nebula-graph.io/2.0/figs/ng-ug-002.png "Implementation of restoration") -## 如何使用BR +## 如何使用 BR -可以按照如下步骤使用BR: +可以按照如下步骤使用 BR: -1. [编译BR](2.compile-br.md) -2. [使用BR备份数据](3.br-backup-data.md) -3. [使用BR恢复数据](4.br-restore-data.md) +1. [编译 BR](2.compile-br.md) +2. [使用 BR 备份数据](3.br-backup-data.md) +3. [使用 BR 恢复数据](4.br-restore-data.md) diff --git a/docs-2.0/7.data-security/2.backup-restore/2.compile-br.md b/docs-2.0/7.data-security/2.backup-restore/2.compile-br.md index 9e0452da309..d6b4116510f 100644 --- a/docs-2.0/7.data-security/2.backup-restore/2.compile-br.md +++ b/docs-2.0/7.data-security/2.backup-restore/2.compile-br.md @@ -1,11 +1,11 @@ -# 编译BR +# 编译 BR -目前,BR还没有作为一个包提供。需要先编译BR。 +目前,BR 还没有作为一个包提供。需要先编译 BR。 ## 准备工作 -- 安装 [Go](https://github.com/golang/go "Click to go to GitHub") 1.14.x或更新版本。 -- 安装make。 +- 安装 [Go](https://github.com/golang/go "Click to go to GitHub") 1.14.x 或更新版本。 +- 安装 make。 ## 操作步骤 @@ -21,7 +21,7 @@ cd nebula-br ``` -3. 编译BR。 +3. 编译 BR。 ```bash make diff --git a/docs-2.0/7.data-security/2.backup-restore/3.br-backup-data.md b/docs-2.0/7.data-security/2.backup-restore/3.br-backup-data.md index 442c2f1eef6..d02bcf91690 100644 --- a/docs-2.0/7.data-security/2.backup-restore/3.br-backup-data.md +++ b/docs-2.0/7.data-security/2.backup-restore/3.br-backup-data.md @@ -1,30 +1,30 @@ -# 使用BR备份数据 +# 使用 BR 备份数据 -BR编译成功后,可以备份整个图空间的数据,本文介绍如何使用BR备份数据。 +BR 编译成功后,可以备份整个图空间的数据,本文介绍如何使用 BR 备份数据。 ## 准备工作 -- BR编译完成。如何编译BR,请参见[编译BR](2.compile-br.md)。 +- BR 编译完成。如何编译 BR,请参见 [编译 BR](2.compile-br.md)。 -- 确认Nebula Graph服务正在运行中。 +- 确认 Nebula Graph 服务正在运行中。 -- BR可以免密登录服务器,即在BR机器上的账号可以通过SSH免密登录到Meta服务器和Storage服务器。详情请参见[SSH tunnels with keys](http://alexander.holbreich.org/ssh-tunnel-without-password/)。 +- BR 可以免密登录服务器,即在 BR 机器上的账号可以通过 SSH 免密登录到 Meta 服务器和 Storage 服务器。详情请参见 [SSH tunnels with keys](http://alexander.holbreich.org/ssh-tunnel-without-password/)。 -- 如果使用Alibaba Cloud OSS或Amazon S3保存备份文件,请确保Meta服务器、Storage服务器和BR机器都已安装相应的客户端。详情请参见[Alibaba Cloud ossutil文档](https://www.alibabacloud.com/help/zh/doc-detail/120075.htm#concept-303829)和[Amazon S3 CLI文档](https://docs.amazonaws.cn/cli/latest/userguide/cli-services-s3.html)。 +- 如果使用 Alibaba Cloud OSS 或 Amazon S3 保存备份文件,请确保 Meta 服务器、Storage 服务器和 BR 机器都已安装相应的客户端。详情请参见 [Alibaba Cloud ossutil 文档](https://www.alibabacloud.com/help/zh/doc-detail/120075.htm#concept-303829) 和 [Amazon S3 CLI 文档](https://docs.amazonaws.cn/cli/latest/userguide/cli-services-s3.html)。 !!! Note - 请创建软链接方便使用ossutil命令。命令为`ln -s // /usr/local/bin/ossutil`,根据实际路径和系统替换内容。 + 请创建软链接方便使用 ossutil 命令。命令为`ln -s // /usr/local/bin/ossutil`,根据实际路径和系统替换内容。 -- 如果在本地保存备份文件,需要在Meta服务器、Storage服务器和BR机器上创建绝对路径相同的目录,并记录绝对路径,同时需要保证账号对该目录有写权限。 +- 如果在本地保存备份文件,需要在 Meta 服务器、Storage 服务器和 BR 机器上创建绝对路径相同的目录,并记录绝对路径,同时需要保证账号对该目录有写权限。 !!! Note - 在生产环境中,我们建议用户将NFS (Network File System)存储设备挂载到Meta服务器、Storage服务器和BR机器上进行本地备份,或者使用Alibaba Cloud OSS、Amazon S3进行远程备份。否则当需要通过本地文件恢复数据时,必须手动将这些备份文件移动到指定目录,会导致数据冗余和某些问题。更多信息,请参见[使用BR恢复数据](4.br-restore-data.md)。 + 在生产环境中,我们建议用户将 NFS (Network File System)存储设备挂载到 Meta 服务器、Storage 服务器和 BR 机器上进行本地备份,或者使用 Alibaba Cloud OSS、Amazon S3 进行远程备份。否则当需要通过本地文件恢复数据时,必须手动将这些备份文件移动到指定目录,会导致数据冗余和某些问题。更多信息,请参见 [使用 BR 恢复数据](4.br-restore-data.md)。 ## 操作步骤 -运行以下命令对整个集群进行全量备份操作. +运行以下命令对整个集群进行全量备份操作。 !!! Note @@ -55,4 +55,4 @@ $ ./bin/br backup full --meta --storage --user / /usr/local/bin/ossutil`,根据实际路径和系统替换内容。 + 请创建软链接方便使用 ossutil 命令。命令为`ln -s // /usr/local/bin/ossutil`,根据实际路径和系统替换内容。 ## 操作步骤 @@ -50,7 +50,6 @@ +----------------------------+---------------------+------------------+-------------+---------------+ ``` - 2. 用户可以使用以下命令恢复数据: ``` [root]# ./bin/br restore full --meta --storage --name --user diff --git a/docs-2.0/7.data-security/3.manage-snapshot.md b/docs-2.0/7.data-security/3.manage-snapshot.md index 68291c8c674..5487307b1ce 100644 --- a/docs-2.0/7.data-security/3.manage-snapshot.md +++ b/docs-2.0/7.data-security/3.manage-snapshot.md @@ -1,12 +1,12 @@ # 管理快照 -Nebula Graph提供快照(snapshot)功能,用于保存集群当前时间点的数据状态,当出现数据丢失或误操作时,可以通过快照恢复数据。 +Nebula Graph 提供快照(snapshot)功能,用于保存集群当前时间点的数据状态,当出现数据丢失或误操作时,可以通过快照恢复数据。 ## 前提条件 -Nebula Graph的[身份认证](1.authentication/1.authentication.md)功能默认是关闭的,此时任何用户都能使用快照功能。 +Nebula Graph 的 [身份认证](1.authentication/1.authentication.md) 功能默认是关闭的,此时任何用户都能使用快照功能。 -如果身份认证开启,仅God角色用户可以使用快照功能。关于角色说明,请参见[内置角色权限](1.authentication/3.role-list.md)。 +如果身份认证开启,仅 God 角色用户可以使用快照功能。关于角色说明,请参见 [内置角色权限](1.authentication/3.role-list.md)。 ## 注意事项 @@ -18,11 +18,11 @@ Nebula Graph的[身份认证](1.authentication/1.authentication.md)功能默认 ## 快照路径 -Nebula Graph创建的快照以目录的形式存储,例如`SNAPSHOT_2021_03_09_08_43_12`,后缀`2021_03_09_08_43_12`根据创建时间(UTC)自动生成。 +Nebula Graph 创建的快照以目录的形式存储,例如`SNAPSHOT_2021_03_09_08_43_12`,后缀`2021_03_09_08_43_12`根据创建时间(UTC)自动生成。 -创建快照时,快照目录会自动在leader Meta服务器和所有Storage服务器的目录`checkpoints`内创建。 +创建快照时,快照目录会自动在 leader Meta 服务器和所有 Storage 服务器的目录`checkpoints`内创建。 -为了快速定位快照所在路径,可以使用Linux命令`find`。例如: +为了快速定位快照所在路径,可以使用 Linux 命令`find`。例如: ```bash $ find |grep 'SNAPSHOT_2021_03_09_08_43_12' @@ -38,7 +38,7 @@ $ find |grep 'SNAPSHOT_2021_03_09_08_43_12' !!! Note - 如果快照创建失败,请[删除快照](#_7)重新创建。 + 如果快照创建失败,请 [删除快照](#_7) 重新创建。 ```ngql nebula> CREATE SNAPSHOT; @@ -62,9 +62,9 @@ nebula> SHOW SNAPSHOTS; |参数|说明| |:---|:---| -|`Name`|快照名称,前缀为`SNAPSHOT`,表示该文件为快照文件,后缀为快照创建的时间点(UTC时间)。| +|`Name`|快照名称,前缀为`SNAPSHOT`,表示该文件为快照文件,后缀为快照创建的时间点(UTC 时间)。| |`Status`|快照状态。`VALID`表示快照有效,`INVALID`表示快照无效。| -|`Hosts`|创建快照时所有Storage服务器的IP地址和端口。| +|`Hosts`|创建快照时所有 Storage 服务器的 IP 地址和端口。| ## 删除快照 @@ -88,9 +88,9 @@ nebula> SHOW SNAPSHOTS; ## 恢复快照 -当前未提供恢复快照命令,需要手动拷贝快照文件到对应的文件夹内,也可以通过shell脚本进行操作。实现逻辑如下: +当前未提供恢复快照命令,需要手动拷贝快照文件到对应的文件夹内,也可以通过 shell 脚本进行操作。实现逻辑如下: -1. 创建快照后,会在leader Meta服务器和所有Storage服务器的安装目录内生成`checkpoints`目录,保存创建的快照。以本文为例,当存在2个图空间时,创建的快照分别保存在`/usr/local/nebula/data/meta/nebula/0/checkpoints`、`/usr/local/nebula/data/storage/nebula/3/checkpoints`和`/usr/local/nebula/data/storage/nebula/4/checkpoints`中。 +1. 创建快照后,会在 leader Meta 服务器和所有 Storage 服务器的安装目录内生成`checkpoints`目录,保存创建的快照。以本文为例,当存在 2 个图空间时,创建的快照分别保存在`/usr/local/nebula/data/meta/nebula/0/checkpoints`、`/usr/local/nebula/data/storage/nebula/3/checkpoints`和`/usr/local/nebula/data/storage/nebula/4/checkpoints`中。 ```bash $ ls /usr/local/nebula/data/meta/nebula/0/checkpoints/ @@ -105,12 +105,11 @@ nebula> SHOW SNAPSHOTS; !!! caution - 需要同时覆盖所有Meta节点的data和wal目录,因为存在重启集群后发生Meta重新选举leader的情况,如果不覆盖所有Meta节点,新的leader使用的还是最新的Meta数据,导致恢复失败。 - + 需要同时覆盖所有 Meta 节点的 data 和 wal 目录,因为存在重启集群后发生 Meta 重新选举 leader 的情况,如果不覆盖所有 Meta 节点,新的 leader 使用的还是最新的 Meta 数据,导致恢复失败。 diff --git a/docs-2.0/7.data-security/4.ssl.md b/docs-2.0/7.data-security/4.ssl.md index c18d29b02ee..7f14a9f5542 100644 --- a/docs-2.0/7.data-security/4.ssl.md +++ b/docs-2.0/7.data-security/4.ssl.md @@ -1,50 +1,50 @@ -# SSL加密 +# SSL 加密 -Nebula Graph支持在客户端、Graph服务、Meta服务和Storage服务之间进行SSL加密传输,本文介绍如何设置SSL加密。 +Nebula Graph 支持在客户端、Graph 服务、Meta 服务和 Storage 服务之间进行 SSL 加密传输,本文介绍如何设置 SSL 加密。 ## 注意事项 -开启SSL加密会轻微影响性能。 +开启 SSL 加密会轻微影响性能。 ## 参数介绍 | 参数 | 默认值 | 说明 | | ---------------- | ------- | ------------------------------| -| `cert_path` | - | PEM证书的路径。 | +| `cert_path` | - | PEM 证书的路径。 | | `key_path` | - | 密钥证书的路径。 | | `password_path` | - | 密码文件证书的路径。 | -| `ca_path` | - | 受信任CA证书文件的路径。 | -| `enable_ssl` | `false` | 是否开启SSL加密。 | -| `enable_graph_ssl` | `false` | 是否仅在Graph服务上开启SSL加密。 | -| `enable_meta_ssl` | `false` | 是否仅在Meta服务上开启SSL加密。 | +| `ca_path` | - | 受信任 CA 证书文件的路径。 | +| `enable_ssl` | `false` | 是否开启 SSL 加密。 | +| `enable_graph_ssl` | `false` | 是否仅在 Graph 服务上开启 SSL 加密。 | +| `enable_meta_ssl` | `false` | 是否仅在 Meta 服务上开启 SSL 加密。 | ## 证书模式 -为了使用SSL加密,必须有SSL证书。Nebula Graph支持两种证书模式: +为了使用 SSL 加密,必须有 SSL 证书。Nebula Graph 支持两种证书模式: - 自签名证书模式 需要自行制作签名证书。需要根据加密策略,在对应的配置文件内设置`cert_path`、`key_path`和`password_path`。 -- CA签名证书模式 +- CA 签名证书模式 需要在认证机构(Certificate Authority)申请签名证书。需要根据加密策略,在对应的配置文件内设置`cert_path`、`key_path`和`ca_path`。 ## 加密策略 -Nebula Graph支持三种加密策略。加密涉及的具体进程请参见[详细说明](https://github.com/vesoft-inc/nebula/blob/a67d166b284cae1b534bf8d19c936ee38bf12e29/docs/rfcs/0001-ssl-transportation.md#usage-explanation)。 +Nebula Graph 支持三种加密策略。加密涉及的具体进程请参见 [详细说明](https://github.com/vesoft-inc/nebula/blob/a67d166b284cae1b534bf8d19c936ee38bf12e29/docs/rfcs/0001-ssl-transportation.md#usage-explanation)。 -- 对客户端、Graph服务、Meta服务和Storage服务之间的传输数据加密。 +- 对客户端、Graph 服务、Meta 服务和 Storage 服务之间的传输数据加密。 需要修改`nebula-graphd.conf`、`nebula-metad.conf`和`nebula-storaged.conf`配置文件,设置`enable_ssl = true`。 -- 对客户端和Graph服务之间的传输数据加密。 +- 对客户端和 Graph 服务之间的传输数据加密。 - 适用于集群设置在同一个机房内,仅对外开放Graph服务的端口。因为其他服务可以通过内部网络通信,无需加密。需要修改`nebula-graphd.conf`配置文件,设置`enable_graph_ssl = true`。 + 适用于集群设置在同一个机房内,仅对外开放 Graph 服务的端口。因为其他服务可以通过内部网络通信,无需加密。需要修改`nebula-graphd.conf`配置文件,设置`enable_graph_ssl = true`。 -- 对集群中Meta服务相关的传输数据加密。 +- 对集群中 Meta 服务相关的传输数据加密。 - 适用于向meta服务传输需保密的信息。需要修改`nebula-graphd.conf`、`nebula-metad.conf`和`nebula-storaged.conf`配置文件,设置`enable_meta_ssl = true`。 + 适用于向 meta 服务传输需保密的信息。需要修改`nebula-graphd.conf`、`nebula-metad.conf`和`nebula-storaged.conf`配置文件,设置`enable_meta_ssl = true`。 ## 使用方式 @@ -52,7 +52,7 @@ Nebula Graph支持三种加密策略。加密涉及的具体进程请参见[详 2. 在对应的配置文件内增加证书配置和策略配置。 - 例如使用自签名证书,并对客户端、Graph服务、Meta服务和Storage服务之间的数据传输进行加密。需要对三个配置文件都进行如下设置: + 例如使用自签名证书,并对客户端、Graph 服务、Meta 服务和 Storage 服务之间的数据传输进行加密。需要对三个配置文件都进行如下设置: ```bash --cert_path=xxxxxx @@ -61,4 +61,4 @@ Nebula Graph支持三种加密策略。加密涉及的具体进程请参见[详 --enable_ssl=true ``` -3. 客户端设置安全套接字并添加受信任的CA。示例代码请参见[nebula-test-run.py](https://github.com/vesoft-inc/nebula/blob/{{nebula.branch}}/tests/nebula-test-run.py)。 +3. 客户端设置安全套接字并添加受信任的 CA。示例代码请参见 [nebula-test-run.py](https://github.com/vesoft-inc/nebula/blob/{{nebula.branch}}/tests/nebula-test-run.py)。 diff --git a/docs-2.0/7.data-security/5.zone.md b/docs-2.0/7.data-security/5.zone.md index 2a40391d06b..8d4771eebc7 100644 --- a/docs-2.0/7.data-security/5.zone.md +++ b/docs-2.0/7.data-security/5.zone.md @@ -1,46 +1,46 @@ # Group&Zone -Nebula Graph提供Group&Zone功能,可以将Storage节点进行分组管理,实现资源隔离。 +Nebula Graph 提供 Group&Zone 功能,可以将 Storage 节点进行分组管理,实现资源隔离。 ## 背景信息 -用户可以将Storage节点加入某个Zone中,多个Zone构成一个Group。创建图空间时指定Group,就会在Group内的Storage节点上创建及存储图空间。分片及其副本会均匀存储在各个Zone中。如下图所示。 +用户可以将 Storage 节点加入某个 Zone 中,多个 Zone 构成一个 Group。创建图空间时指定 Group,就会在 Group 内的 Storage 节点上创建及存储图空间。分片及其副本会均匀存储在各个 Zone 中。如下图所示。 -![Group&Zone示意图](zone1.png) +![Group&Zone 示意图](zone1.png) -8台启动Storage服务的机器两两组合,加入4个Zone。然后将Zone1、Zone2、Zone3加入Group1,Zone3、Zone4加入Group2。 +8 台启动 Storage 服务的机器两两组合,加入 4 个 Zone。然后将 Zone1、Zone2、Zone3 加入 Group1,Zone3、Zone4 加入 Group2。 -指定Group1创建图空间S1,分片及其副本会均匀存储在Zone1~Zone3,不会存储到Zone4的机器上。 +指定 Group1 创建图空间 S1,分片及其副本会均匀存储在 Zone1~Zone3,不会存储到 Zone4 的机器上。 -指定Group2创建图空间S2,分片及其副本会均匀存储在Zone3~Zone4。不会存储到Zone1和Zone2的机器上。 +指定 Group2 创建图空间 S2,分片及其副本会均匀存储在 Zone3~Zone4。不会存储到 Zone1 和 Zone2 的机器上。 -上述例子简单介绍了Zone功能,用户可以通过合理规划Zone和Group,实现资源隔离。 +上述例子简单介绍了 Zone 功能,用户可以通过合理规划 Zone 和 Group,实现资源隔离。 ## 适用场景 -- 期望将图空间创建在某些指定的Storage节点上,从而达到资源隔离的目的。 +- 期望将图空间创建在某些指定的 Storage 节点上,从而达到资源隔离的目的。 - 集群滚动升级。需要停止一个或多个服务器并更新,然后重新投入使用,直到集群中所有的节点都更新为新版本。 ## 注意事项 -- Zone是Storage节点的集合,每个Storage节点只能加入一个Zone。 +- Zone 是 Storage 节点的集合,每个 Storage 节点只能加入一个 Zone。 -- Zone中可以存储分片的副本,但同一个分片在一个Zone中只能有一个副本。 +- Zone 中可以存储分片的副本,但同一个分片在一个 Zone 中只能有一个副本。 -- 多个Zone可以组成一个Group,方便管理,并且可以进行资源隔离。 +- 多个 Zone 可以组成一个 Group,方便管理,并且可以进行资源隔离。 -- 一个Zone可以加入多个Group。 +- 一个 Zone 可以加入多个 Group。 -- 创建Space时如果指定Group,该图空间的副本将均匀分布在该Group的各个Zone中。 +- 创建 Space 时如果指定 Group,该图空间的副本将均匀分布在该 Group 的各个 Zone 中。 -- 一个Group可以创建多个图空间,但是Group中Zone的数量需要大于等于创建图空间时指定的副本数(`replica_factor`)。 +- 一个 Group 可以创建多个图空间,但是 Group 中 Zone 的数量需要大于等于创建图空间时指定的副本数(`replica_factor`)。 ## 基本语法 ### ADD ZONE -创建Zone,并将Storage节点加入Zone。 +创建 Zone,并将 Storage 节点加入 Zone。 ```ngql ADD ZONE : [,:...]; @@ -54,11 +54,11 @@ nebula> ADD ZONE zone1 192.168.8.111:9779, 192.168.8.129:9779; ### ADD HOST...INTO ZONE -将单个Storage节点加入已创建的Zone。 +将单个 Storage 节点加入已创建的 Zone。 !!! note - 加入之后请使用[BALANCE](../3.ngql-guide/18.operation-and-maintenance-statements/2.balance-syntax.md)命令实现负载均衡。 + 加入之后请使用 [BALANCE](../3.ngql-guide/18.operation-and-maintenance-statements/2.balance-syntax.md) 命令实现负载均衡。 ```ngql ADD HOST : INTO ZONE ; @@ -66,11 +66,11 @@ ADD HOST : INTO ZONE ; ### DROP HOST...FROM ZONE -从Zone中删除单个Storage节点。 +从 Zone 中删除单个 Storage 节点。 !!! note - Group中正在使用的Storage节点无法直接删除,需要先删除关联的图空间,才能删除Storage节点。 + Group 中正在使用的 Storage 节点无法直接删除,需要先删除关联的图空间,才能删除 Storage 节点。 ```ngql DROP HOST : FROM ZONE ; @@ -78,7 +78,7 @@ DROP HOST : FROM ZONE ; ### SHOW ZONES -查看所有Zone。 +查看所有 Zone。 ```ngql SHOW ZONES; @@ -86,7 +86,7 @@ SHOW ZONES; ### DESCRIBE ZONE -查看指定Zone。 +查看指定 Zone。 ```ngql DESCRIBE ZONE ; @@ -95,11 +95,11 @@ DESC ZONE ; ### DROP ZONE -删除Zone。 +删除 Zone。 !!! note - 已加入Group的Zone无法直接删除,需要先从Group中剔除该Zone,或删除所属的Group后,才能删除Zone。 + 已加入 Group 的 Zone 无法直接删除,需要先从 Group 中剔除该 Zone,或删除所属的 Group 后,才能删除 Zone。 ```ngql DROP ZONE ; @@ -107,7 +107,7 @@ DROP ZONE ; ### ADD GROUP -创建Group,并将Zone加入Group。 +创建 Group,并将 Zone 加入 Group。 ```ngql ADD GROUP [,...]; @@ -121,11 +121,11 @@ nebula> ADD GROUP group1 zone1,zone2; ### ADD ZONE...INTO GROUP -将单个Zone加入已创建的Group。 +将单个 Zone 加入已创建的 Group。 !!! note - 加入之后请使用[BALANCE](../3.ngql-guide/18.operation-and-maintenance-statements/2.balance-syntax.md)命令实现负载均衡。 + 加入之后请使用 [BALANCE](../3.ngql-guide/18.operation-and-maintenance-statements/2.balance-syntax.md) 命令实现负载均衡。 ```ngql ADD ZONE INTO GROUP ; @@ -133,11 +133,11 @@ ADD ZONE INTO GROUP ; ### DROP ZONE...FROM GROUP -从GROUP中删除单个Zone。 +从 GROUP 中删除单个 Zone。 !!! note - Group中正在使用的Zone无法直接删除,需要先删除关联的图空间,才能删除Zone。 + Group 中正在使用的 Zone 无法直接删除,需要先删除关联的图空间,才能删除 Zone。 ```ngql DROP ZONE FROM GROUP ; @@ -145,7 +145,7 @@ DROP ZONE FROM GROUP ; ### SHOW GROUPS -查看所有Group。 +查看所有 Group。 ```ngql SHOW GROUPS; @@ -153,7 +153,7 @@ SHOW GROUPS; ### DESCRIBE GROUP -查看指定Group。 +查看指定 Group。 ```ngql DESCRIBE GROUP ; @@ -162,11 +162,11 @@ DESC GROUP ; ### DROP GROUP -删除Group。 +删除 Group。 !!! note - 正在使用的Group无法直接删除,需要先删除关联的图空间,才能删除Group。 + 正在使用的 Group 无法直接删除,需要先删除关联的图空间,才能删除 Group。 ```ngql DROP GROUP ; diff --git a/docs-2.0/8.service-tuning/2.graph-modeling.md b/docs-2.0/8.service-tuning/2.graph-modeling.md index 9e55d63d778..11443369d1e 100644 --- a/docs-2.0/8.service-tuning/2.graph-modeling.md +++ b/docs-2.0/8.service-tuning/2.graph-modeling.md @@ -1,6 +1,6 @@ # 图建模设计 -本文介绍在Nebula Graph项目中成功应用的一些图建模和系统设计的通用建议。 +本文介绍在 Nebula Graph 项目中成功应用的一些图建模和系统设计的通用建议。 !!! Note @@ -12,7 +12,7 @@ ### 设计和评估最重要的查询语句 -在测试环节中,通常会验证各种各样的查询语句,以全面评估系统能力。但在大多数生产场景下,每个集群被频繁调用的查询语句的类型并不会太多;根据20-80原则,针对重要的查询语句进行建模优化。 +在测试环节中,通常会验证各种各样的查询语句,以全面评估系统能力。但在大多数生产场景下,每个集群被频繁调用的查询语句的类型并不会太多;根据 20-80 原则,针对重要的查询语句进行建模优化。 ### Tag 与 Edge type 之间没有绑定关系 @@ -20,13 +20,13 @@ ### Tag/Edge type 预先定义了一组属性 -建立Tag(或者Edge type)时,需要指定对应的属性。通常称为 Schema。 +建立 Tag(或者 Edge type)时,需要指定对应的属性。通常称为 Schema。 ### 区分“经常改变的部分”和“不经常改变的部分” 改变指的是业务模型和数据模型上的改变(元信息),不是数据自身的改变。 -一些图数据库产品是schema-free的设计,所以在数据模型上,不论是图拓扑结构还是属性,都可以非常自由。属性可以建模转变为图拓扑,反之亦然。这类系统通常对于图拓扑的访问有特别的优化。 +一些图数据库产品是 schema-free 的设计,所以在数据模型上,不论是图拓扑结构还是属性,都可以非常自由。属性可以建模转变为图拓扑,反之亦然。这类系统通常对于图拓扑的访问有特别的优化。 而 Nebula Graph {{ nebula.release }} 是强 Schema 的(行存型)系统,这意味着业务数据模型中的部分是“不应该经常改变的”,例如属性 Schema 应该避免改变。类似于 MySQL 中 ALTER TABLE 是应该尽量避免的操作。 @@ -36,7 +36,7 @@ ### 广度优先大于深度优先 -- Nebula Graph 基于图拓扑结构进行深度图遍历的性能较低,广度优先遍历以及获取属性的性能较好。例如,模型a包括姓名、年龄、眼睛颜色三种属性,建议创建一个Tag`person`,然后为它添加姓名、年龄、眼睛颜色的属性。如果创建一个包含眼睛颜色的Tag和一个Edge type`has`,然后创建一个边用来表示人拥有的眼睛颜色,这种建模方法会降低遍历性能。 +- Nebula Graph 基于图拓扑结构进行深度图遍历的性能较低,广度优先遍历以及获取属性的性能较好。例如,模型 a 包括姓名、年龄、眼睛颜色三种属性,建议创建一个 Tag`person`,然后为它添加姓名、年龄、眼睛颜色的属性。如果创建一个包含眼睛颜色的 Tag 和一个 Edge type`has`,然后创建一个边用来表示人拥有的眼睛颜色,这种建模方法会降低遍历性能。 - “通过边属性获取边”的性能与“通过点属性获取点”的性能是接近的。在一些数据库中,会建议将边上的属性重新建模为中间节点的属性:例如 `(src)-[edge {P1, P2}]->(dst)`,`edge` 上有属性 `P1, P2`,会建议建模为 `(src)-[edge1]->(i_node {P1, P2})-[edge2]->(dst)`。在 Nebula Graph {{ nebula.release }} 中可以直接使用 `(src)-[edge {P1, P2}]->(dst)`,减少遍历深度有助于性能。 @@ -52,27 +52,27 @@ 因此,通常同一条边没有必要反向再冗余插入一次。 -### 合理设置Tag属性 +### 合理设置 Tag 属性 -在图建模中,请将一组类似的平级属性放入同一个Tag,即按不同概念进行分组。 +在图建模中,请将一组类似的平级属性放入同一个 Tag,即按不同概念进行分组。 ### 正确使用索引 -使用属性索引可以通过属性查找到 VID。但是索引会导致写性能下降90%甚至更多,只有在根据点或边的属性定位点或边时才使用索引。 +使用属性索引可以通过属性查找到 VID。但是索引会导致写性能下降 90%甚至更多,只有在根据点或边的属性定位点或边时才使用索引。 -### 合理设计VID +### 合理设计 VID -参考[点VID一节](../1.introduction/3.vid.md)。 +参考 [点 VID 一节](../1.introduction/3.vid.md)。 ### 长文本 -为边创建属性时请勿使用长文本:这些属性会被[存储2份](../1.introduction/3.nebula-graph-architecture/4.storage-service.md),导致写入放大问题(write amplification)。此时建议将长文本放在 HBase/ES 中,将其地址存放在 Nebula Graph 中。 +为边创建属性时请勿使用长文本:这些属性会被 [存储 2 份](../1.introduction/3.nebula-graph-architecture/4.storage-service.md),导致写入放大问题(write amplification)。此时建议将长文本放在 HBase/ES 中,将其地址存放在 Nebula Graph 中。 -## 不能支持动态图(时序图) +## 不能支持动态图(时序图) -在某些场景下,图需要同时带有时序信息,以描述整个图的结构随着时间变化的情况[^twitter]。 +在某些场景下,图需要同时带有时序信息,以描述整个图的结构随着时间变化的情况 [^twitter]。 -Nebula Graph {{ nebula.release }} 的边可以使用 Rank 字段存放时间信息(int64),但是点上没有字段可以存放时间信息(存放在属性会被新写入覆盖)。因此不能支持动态时序图。 +Nebula Graph {{ nebula.release }} 的边可以使用 Rank 字段存放时间信息 (int64),但是点上没有字段可以存放时间信息(存放在属性会被新写入覆盖)。因此不能支持动态时序图。 ![image](sequence.png) diff --git a/docs-2.0/8.service-tuning/3.system-design.md b/docs-2.0/8.service-tuning/3.system-design.md index aecacb69ae1..ac643131158 100644 --- a/docs-2.0/8.service-tuning/3.system-design.md +++ b/docs-2.0/8.service-tuning/3.system-design.md @@ -1,10 +1,10 @@ # 系统设计建议 -## 选择QPS优先或时延优先 +## 选择 QPS 优先或时延优先 -- Nebula Graph {{ nebula.release }} 更擅长处理(互联网式的)有大量并发的小请求。也即:虽然全图很大(万亿点边),但是每个请求要访问到的子图本身并不大(几百万个点边)——单个请求时延不大;但这类请求的并发数量特别多——QPS大。 +- Nebula Graph {{ nebula.release }} 更擅长处理(互联网式的)有大量并发的小请求。也即:虽然全图很大(万亿点边),但是每个请求要访问到的子图本身并不大(几百万个点边)——单个请求时延不大;但这类请求的并发数量特别多——QPS 大。 -- 但对于一些交互分析型的场景,并发请求的数量不多,而每个请求要访问的子图本身特别大(亿以上)。为降低时延,可以在应用程序中将一个大的请求,拆分为多个小请求,并发发送给多个graphd。这样可以降低单个大请求的时延,降低单个graphd的内存占用。另外,也可以使用[图计算功能 Nebula Algorithm](../nebula-algorithm.md)。 +- 但对于一些交互分析型的场景,并发请求的数量不多,而每个请求要访问的子图本身特别大(亿以上)。为降低时延,可以在应用程序中将一个大的请求,拆分为多个小请求,并发发送给多个 graphd。这样可以降低单个大请求的时延,降低单个 graphd 的内存占用。另外,也可以使用 [图计算功能 Nebula Algorithm](../nebula-algorithm.md)。 ## 水平扩展或垂直扩展 @@ -12,15 +12,15 @@ Nebula Graph {{ nebula.release }} 支持水平扩展: + Storaged 的水平扩展: - - 增加storaged的机器数量,可以大体线性增加集群的整体能力,包括增加整体QPS和降低时延。 + - 增加 storaged 的机器数量,可以大体线性增加集群的整体能力,包括增加整体 QPS 和降低时延。 - - 但由于 partition 数量在 CREATE SPACE 时已固定,因此单个 partition 的服务能力只由单服务器决定——例如:获取单个点的属性(`FETCH`)、单个点开始的广度优先遍历(`GO`) + - 但由于 partition 数量在 CREATE SPACE 时已固定,因此单个 partition 的服务能力只由单服务器决定——例如:获取单个点的属性 (`FETCH`)、单个点开始的广度优先遍历 (`GO`) + Graphd 的水平扩展: - 来自客户端的每个请求,都由且仅由一个 graphd 处理,其他 graphd 不会参与处理该请求。 - - 因此增加 graphd 机器数量,可以增加集群整体QPS,但不能降低单个请求时延。 + - 因此增加 graphd 机器数量,可以增加集群整体 QPS,但不能降低单个请求时延。 + Metad 不支持水平扩展。 @@ -29,7 +29,7 @@ Nebula Graph {{ nebula.release }} 支持水平扩展: ## 数据传输与优化 - 读写平衡。Nebula Graph 适合读写平衡性的在线场景,也即 OLTP 型的的“并发的发生写入与读取”;而非数仓 OLAP 型的“一次写入多次读取”。 -- 选择不同的写入方式。大批量的数据写入可以使用sst加载的方式;小批量的写入使用`INSERT`语句。 +- 选择不同的写入方式。大批量的数据写入可以使用 sst 加载的方式;小批量的写入使用`INSERT`语句。 - 选择合适的时间运行 COMPACTION 和 BALANCE,来分别优化数据格式和存储分布。 - Nebula Graph {{ nebula.release }} 不支持关系型数据库意义上的事务和隔离性,更接近 NoSQL。 diff --git a/docs-2.0/8.service-tuning/4.plan.md b/docs-2.0/8.service-tuning/4.plan.md index de14c47ba87..fbcc994449f 100644 --- a/docs-2.0/8.service-tuning/4.plan.md +++ b/docs-2.0/8.service-tuning/4.plan.md @@ -1,6 +1,5 @@ # 执行计划 -Nebula Graph {{ nebula.release }} 实现了基于规则的执行计划。用户无法改变执行计划,无法进行查询的预编译(及相应的计划缓存),无法通过指定索引来加速查询。 - -要查看执行计划及执行概要,请参考[EXPLAIN和PROFILE](../3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md)。 +Nebula Graph {{ nebula.release }} 实现了基于规则的执行计划。用户无法改变执行计划,无法进行查询的预编译(及相应的计划缓存),无法通过指定索引来加速查询。 +要查看执行计划及执行概要,请参考 [EXPLAIN 和 PROFILE](../3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md)。 diff --git a/docs-2.0/8.service-tuning/compaction.md b/docs-2.0/8.service-tuning/compaction.md index abc383c8d0c..c9980c11962 100644 --- a/docs-2.0/8.service-tuning/compaction.md +++ b/docs-2.0/8.service-tuning/compaction.md @@ -1,20 +1,20 @@ # Compaction -本文介绍Compaction的相关信息。 +本文介绍 Compaction 的相关信息。 -Nebula Graph中,`Compaction`是最重要的后台操作,对性能有极其重要的影响。 +Nebula Graph 中,`Compaction`是最重要的后台操作,对性能有极其重要的影响。 -`Compaction`操作会读取硬盘上的数据,然后重组数据结构和索引,然后再写回硬盘,可以成倍提升读取性能。将大量数据写入Nebula Graph后,为了提高读取性能,需要手动触发`Compaction`操作(全量`Compaction`)。 +`Compaction`操作会读取硬盘上的数据,然后重组数据结构和索引,然后再写回硬盘,可以成倍提升读取性能。将大量数据写入 Nebula Graph 后,为了提高读取性能,需要手动触发`Compaction`操作(全量`Compaction`)。 !!! Note - `Compaction`操作会长时间占用硬盘的IO,建议在业务低峰期(例如凌晨)执行该操作。 + `Compaction`操作会长时间占用硬盘的 IO,建议在业务低峰期(例如凌晨)执行该操作。 -Nebula Graph有两种类型的`Compaction`操作:自动`Compaction`和全量`Compaction`。 +Nebula Graph 有两种类型的`Compaction`操作:自动`Compaction`和全量`Compaction`。 ## 自动`Compaction` -自动`Compaction`是在系统读取数据、写入数据或系统重启时自动触发`Compaction`操作,提升短时间内的读取性能。默认情况下,自动`Compaction`是开启状态,可能在业务高峰期触发,导致意外抢占IO影响业务。 +自动`Compaction`是在系统读取数据、写入数据或系统重启时自动触发`Compaction`操作,提升短时间内的读取性能。默认情况下,自动`Compaction`是开启状态,可能在业务高峰期触发,导致意外抢占 IO 影响业务。 - 数据导入完成后,请执行`SUBMIT JOB COMPACT`。 @@ -91,7 +91,7 @@ nebula> SHOW JOB ; - 为控制`Compaction`的读写速率,请在配置文件`nebula-storaged.conf`中设置如下参数: ```bash - # 读写速率限制为20MB/S。 + # 读写速率限制为 20MB/S。 --rate_limit=20 (in MB/s) ``` @@ -114,7 +114,7 @@ Level Files Size Score Read(GB) Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Mov ### 可以同时在多个图空间执行全量`Compaction`操作吗? -可以,但是此时的硬盘IO会很高,可能会影响效率。 +可以,但是此时的硬盘 IO 会很高,可能会影响效率。 ### 全量`Compaction`操作会耗费多长时间? @@ -126,4 +126,4 @@ Level Files Size Score Read(GB) Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Mov ### 全量`Compaction`操作开始后可以停止吗? -不可以停止,必须等待操作完成。这是RocksDB的限制。 +不可以停止,必须等待操作完成。这是 RocksDB 的限制。 diff --git a/docs-2.0/8.service-tuning/load-balance.md b/docs-2.0/8.service-tuning/load-balance.md index 0d8786d322d..fe217bc8e83 100644 --- a/docs-2.0/8.service-tuning/load-balance.md +++ b/docs-2.0/8.service-tuning/load-balance.md @@ -1,20 +1,20 @@ -# Storage负载均衡 +# Storage 负载均衡 -用户可以使用`BALANCE`语句平衡分片和Raft leader的分布,或者删除冗余的Storage服务器。 +用户可以使用`BALANCE`语句平衡分片和 Raft leader 的分布,或者删除冗余的 Storage 服务器。 ## 均衡分片分布 -`BALANCE DATA`语句会开始一个任务,将Nebula Graph集群中的分片平均分配到所有Storage服务器。通过创建和执行一组子任务来迁移数据和均衡分片分布。 +`BALANCE DATA`语句会开始一个任务,将 Nebula Graph 集群中的分片平均分配到所有 Storage 服务器。通过创建和执行一组子任务来迁移数据和均衡分片分布。 !!! danger - 不要停止集群中的任何机器或改变机器的IP地址,直到所有子任务完成,否则后续子任务会失败。 + 不要停止集群中的任何机器或改变机器的 IP 地址,直到所有子任务完成,否则后续子任务会失败。 ### 示例 -以横向扩容Nebula Graph为例,集群中增加新的Storage服务器后,新服务器上没有分片。 +以横向扩容 Nebula Graph 为例,集群中增加新的 Storage 服务器后,新服务器上没有分片。 -1. 执行命令[`SHOW HOSTS`](../3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md)检查分片的分布。 +1. 执行命令 [`SHOW HOSTS`](../3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md) 检查分片的分布。 ```ngql nebual> SHOW HOSTS; @@ -41,7 +41,7 @@ +------------+ ``` -3. 根据返回的任务ID,执行命令`BALANCE DATA `检查任务状态。 +3. 根据返回的任务 ID,执行命令`BALANCE DATA `检查任务状态。 ```ngql nebula> BALANCE DATA 1614237867; @@ -60,7 +60,7 @@ !!! Note - `BALANCE DATA`不会均衡leader的分布。均衡leader请参见[均衡leader分布](#leader)。 + `BALANCE DATA`不会均衡 leader 的分布。均衡 leader 请参见 [均衡 leader 分布](#leader)。 ```ngql nebula> SHOW HOSTS; @@ -76,7 +76,7 @@ +-------------+------+----------+--------------+-----------------------------------+------------------------+ ``` -如果有子任务失败,请重新执行`BALANCE DATA`。如果重做负载均衡仍然不能解决问题,请到[Nebula Graph社区](https://discuss.nebula-graph.com.cn/)寻求帮助。 +如果有子任务失败,请重新执行`BALANCE DATA`。如果重做负载均衡仍然不能解决问题,请到 [Nebula Graph 社区](https://discuss.nebula-graph.com.cn/) 寻求帮助。 ## 停止负载均衡任务 @@ -84,29 +84,29 @@ - 如果没有正在执行的负载均衡任务,会返回错误。 -- 如果有正在执行的负载均衡任务,会返回停止的任务ID(`balance_id`)。 +- 如果有正在执行的负载均衡任务,会返回停止的任务 ID(`balance_id`)。 `BALANCE DATA STOP`不会停止正在执行的子任务,而是取消所有后续子任务。用户可以执行命令`BALANCE DATA `检查停止的任务状态。 一旦所有子任务都完成或停止,用户可以再次执行命令`BALANCE DATA`。 -- 如果前一个负载均衡任务的任何一个子任务失败,Nebula Graph会重新启动之前的负载均衡任务。 +- 如果前一个负载均衡任务的任何一个子任务失败,Nebula Graph 会重新启动之前的负载均衡任务。 -- 如果前一个负载均衡任务的任何一个子任务都没有失败,Nebula Graph会启动一个新的的负载均衡任务。 +- 如果前一个负载均衡任务的任何一个子任务都没有失败,Nebula Graph 会启动一个新的的负载均衡任务。 ## 重置负载均衡任务 如果停止负载均衡任务后重新执行仍然失败,可以尝试用命令`BALANCE DATA RESET PLAN`重置负载均衡任务,该操作会清空旧的任务。之后再使用`BALANCE DATA`命令,会新建负载均衡任务,而不是执行旧的任务。 -## 移除Storage服务器 +## 移除 Storage 服务器 -移除指定的Storage服务器来缩小集群规模,可以使用命令`BALANCE DATA REMOVE `。 +移除指定的 Storage 服务器来缩小集群规模,可以使用命令`BALANCE DATA REMOVE `。 ### 示例 -如果需要移除以下两台Storage服务器。 +如果需要移除以下两台 Storage 服务器。 -|服务器名称|IP地址|端口| +|服务器名称|IP 地址|端口| |:---|:---|:---| |storage3|192.168.0.8|9779| |storage4|192.168.0.9|9779| @@ -117,15 +117,15 @@ BALANCE DATA REMOVE 192.168.0.8:9779,192.168.0.9:9779; ``` -Nebula Graph将启动一个负载均衡任务,迁移storage3和storage4中的分片,然后将服务器从集群中移除。 +Nebula Graph 将启动一个负载均衡任务,迁移 storage3 和 storage4 中的分片,然后将服务器从集群中移除。 !!! note 已下线节点状态会显示为 OFFLINE。该记录一天后删除,或更改 meta 配置项 `removed_threshold_sec`。 -## 均衡leader分布 +## 均衡 leader 分布 -`BALANCE DATA`只能均衡分片分布,不能均衡Raft leader分布。用户可以使用命令`BALANCE LEADER`均衡leader分布。 +`BALANCE DATA`只能均衡分片分布,不能均衡 Raft leader 分布。用户可以使用命令`BALANCE LEADER`均衡 leader 分布。 ### 示例 @@ -151,4 +151,4 @@ nebula> SHOW HOSTS; !!! caution - 在 Nebula Graph {{ nebula.release }} 中,Leader 切换会导致短时的大量请求错误(Storage Error `E_RPC_FAILURE`),处理方法见[FAQ](../20.appendix/0.FAQ.md)。 + 在 Nebula Graph {{ nebula.release }} 中,Leader 切换会导致短时的大量请求错误(Storage Error `E_RPC_FAILURE`),处理方法见 [FAQ](../20.appendix/0.FAQ.md)。 diff --git a/docs-2.0/8.service-tuning/practice.md b/docs-2.0/8.service-tuning/practice.md index 9d0d5e9e399..35c88e9cbe6 100644 --- a/docs-2.0/8.service-tuning/practice.md +++ b/docs-2.0/8.service-tuning/practice.md @@ -1,6 +1,6 @@ # 实践案例 -Nebula Graph在各行各业都有应用,本文介绍部分实践案例。更多实践分享内容请参见[博客](https://nebula-graph.com.cn/posts/)。 +Nebula Graph 在各行各业都有应用,本文介绍部分实践案例。更多实践分享内容请参见 [博客](https://nebula-graph.com.cn/posts/)。 ## 业务场景 @@ -12,15 +12,15 @@ Nebula Graph在各行各业都有应用,本文介绍部分实践案例。更 ## 内核 -- [MATCH中变长Pattern的实现](https://nebula-graph.com.cn/posts/nebula-graph-source-code-reading-06/) +- [MATCH 中变长 Pattern 的实现](https://nebula-graph.com.cn/posts/nebula-graph-source-code-reading-06/) -- [如何向Nebula Graph增加一个测试用例](https://nebula-graph.com.cn/posts/bdd-testing-practice-add-test-case/) +- [如何向 Nebula Graph 增加一个测试用例](https://nebula-graph.com.cn/posts/bdd-testing-practice-add-test-case/) -- [基于BDD理论的Nebula集成测试框架重构(上)](https://nebula-graph.com.cn/posts/bdd-testing-practice/) +- [基于 BDD 理论的 Nebula 集成测试框架重构(上)](https://nebula-graph.com.cn/posts/bdd-testing-practice/) -- [基于BDD理论的Nebula集成测试框架重构(下)](https://nebula-graph.com.cn/posts/bdd-testing-practice-volume-2/) +- [基于 BDD 理论的 Nebula 集成测试框架重构(下)](https://nebula-graph.com.cn/posts/bdd-testing-practice-volume-2/) -- [解析Nebula Graph子图设计及实践](https://nebula-graph.com.cn/posts/nebula-graph-subgraph-introduction/) +- [解析 Nebula Graph 子图设计及实践](https://nebula-graph.com.cn/posts/nebula-graph-subgraph-introduction/) - [基于全文搜索引擎的文本搜索](https://nebula-graph.com.cn/posts/how-fulltext-index-works/) @@ -28,11 +28,11 @@ Nebula Graph在各行各业都有应用,本文介绍部分实践案例。更 ## 周边工具 -- [基于Nebula Importer批量导入工具性能验证方案总结](https://nebula-graph.com.cn/posts/nebula-importer-practice/) +- [基于 Nebula Importer 批量导入工具性能验证方案总结](https://nebula-graph.com.cn/posts/nebula-importer-practice/) -- [详解Nebula 2.0性能测试和Nebula Importer数据导入调优](https://nebula-graph.com.cn/posts/v2.0-benchmark-and-nebula-importer-optimize/) +- [详解 Nebula 2.0 性能测试和 Nebula Importer 数据导入调优](https://nebula-graph.com.cn/posts/v2.0-benchmark-and-nebula-importer-optimize/) -- [Nebula Graph支持JDBC协议](https://nebula-graph.com.cn/posts/what-is-nebula-jdbc/) +- [Nebula Graph 支持 JDBC 协议](https://nebula-graph.com.cn/posts/what-is-nebula-jdbc/) - [Nebula·利器 | Norm 知乎开源的 ORM 工具](https://nebula-graph.com.cn/posts/zhihu-open-source-orm-tool/) diff --git a/docs-2.0/8.service-tuning/super-node.md b/docs-2.0/8.service-tuning/super-node.md index efdaf208bc1..85a4907c391 100644 --- a/docs-2.0/8.service-tuning/super-node.md +++ b/docs-2.0/8.service-tuning/super-node.md @@ -5,11 +5,11 @@ 在图论中,超级顶点(稠密点)是指一个点有着极多的相邻边。相邻边可以是出边(我指向谁)或者是入边(谁指向我)。 由于幂律分布的特点,超级顶点现象非常普遍。 -例如社交网络中的影响力领袖(网红大V)、证券市场中的热门股票、银行系统中的四大行、交通网络中的枢纽站、互联网中的高流量网站等、电商网络中的爆款产品。 +例如社交网络中的影响力领袖(网红大 V)、证券市场中的热门股票、银行系统中的四大行、交通网络中的枢纽站、互联网中的高流量网站等、电商网络中的爆款产品。 -在 Nebula Graph {{ nebula.release }} 中,一个`点` 和其`属性`是一个 `Key-Value`(以该点的 `VID` 以及其他元信息作为 `Key`),其 `Out-Edge Key-Value` 和 `In-Edge Key-Value` 都存储在同一个 partition 中(具体原理详见[存储架构](../1.introduction/3.nebula-graph-architecture/4.storage-service.md),并且以 LSM-tree 的形式组织存放在硬盘(和缓存)中。 +在 Nebula Graph {{ nebula.release }} 中,一个`点` 和其`属性`是一个 `Key-Value`(以该点的 `VID` 以及其他元信息作为 `Key`),其 `Out-Edge Key-Value` 和 `In-Edge Key-Value` 都存储在同一个 partition 中(具体原理详见 [存储架构](../1.introduction/3.nebula-graph-architecture/4.storage-service.md),并且以 LSM-tree 的形式组织存放在硬盘(和缓存)中。 -因此不论是`从该点出发的有向遍历`,或者`以该点为终点的有向遍历`,都会涉及到大量的`顺序 IO 扫描`(最理想情况,当完成[Compact](../8.service-tuning/compaction.md)操作之后),或者大量的`随机 IO`(有关于`该点`和其`出入边`频繁的写入)。 +因此不论是`从该点出发的有向遍历`,或者`以该点为终点的有向遍历`,都会涉及到大量的`顺序 IO 扫描`(最理想情况,当完成 [Compact](../8.service-tuning/compaction.md) 操作之后),或者大量的`随机 IO`(有关于`该点`和其`出入边`频繁的写入)。 经验上说,当一个点的出入度超过 1 万时,就可以视为是稠密点。需要考虑一些特殊的设计和处理。 @@ -23,7 +23,7 @@ Nebula Graph {{ nebula.release }} 属性索引的设计复用了存储模块 RocksDB 的功能,这种情况下的索引会被建模为`前缀相同的 Key`。对于该属性的查找,(如果未能命中缓存,)会对应为硬盘上的“一次随机查找 + 一次前缀顺序扫描”,以找到对应的`点 VID`(此后,通常会从该顶点开始图遍历,这样又会发生该点对应 Key-Value 的一次随机读+顺序扫描)。当重复率越高,扫描范围就越大。 -关于属性索引的原理详细介绍在[博客《分布式图数据库 Nebula Graph 的 Index 实践》](https://nebula-graph.com.cn/posts/how-indexing-works-in-nebula-graph/)。 +关于属性索引的原理详细介绍在 [博客《分布式图数据库 Nebula Graph 的 Index 实践》](https://nebula-graph.com.cn/posts/how-indexing-works-in-nebula-graph/)。 经验上说,当重复属性值超过 1 万时,也需要特殊的设计和处理。 @@ -40,24 +40,24 @@ Nebula Graph {{ nebula.release }} 属性索引的设计复用了存储模块 Roc - 删除多条边,合并为一条 - 例如,一个转账场景: `(账户A)-[转账]->(账户B)`。每次`转账`建模为`一条AB之间的边`,那么`(账户A)`和`(账户B)`之间会有着数万十次转账的场景。 + 例如,一个转账场景: `(账户 A)-[转账]->(账户 B)`。每次`转账`建模为`一条 AB 之间的边`,那么`(账户 A)`和`(账户 B)`之间会有着数万十次转账的场景。 按日、周、或者月为粒度,合并陈旧的转账明细。也就是批量删除陈旧的边,改为少量的边“月总额”和“次数。而保留最近月的转账明细。 - 拆分相同类型的边,变为多种不同类型的边 - 例如,`(机场)<-[depart]-(航班)`场景,每个架次航班的离港,都建模为一条航班和机场之间的边。那么大型机场的离港航班会极多。 + 例如,`(机场)<-[depart]-(航班)`场景,每个架次航班的离港,都建模为一条航班和机场之间的边。那么大型机场的离港航班会极多。 - 根据不同的`航空公司`将 `depart` 这个Edge type拆分更细的Edge type,如 `depart_ceair`, `depart_csair` 等。在查询(图遍历)时,指定离港的航空公司。 + 根据不同的`航空公司`将 `depart` 这个 Edge type 拆分更细的 Edge type,如 `depart_ceair`, `depart_csair` 等。在查询(图遍历)时,指定离港的航空公司。 - 切分顶点本身 - 例如,对于`(人)-[借款]->(银行)`的借款网络,某大型银行A的借款次数和借款人会非常的多。 + 例如,对于`(人)-[借款]->(银行)`的借款网络,某大型银行 A 的借款次数和借款人会非常的多。 可以将该大行节点 A 拆分为多个相关联的子节点 A1、A2、A3, ```text - (人1)-[借款]->(银行A1), (人2)-[借款]->(银行A2), (人2)-[借款]->(银行A3); - (银行A1)-[属于]->(银行A), (银行A2)-[属于]->(银行A), (银行A3)-[属于]->(银行A). + (人 1)-[借款]->(银行 A1), (人 2)-[借款]->(银行 A2), (人 2)-[借款]->(银行 A3); + (银行 A1)-[属于]->(银行 A), (银行 A2)-[属于]->(银行 A), (银行 A3)-[属于]->(银行 A). ``` 这里的 A1、A2、A3 既可以是 A 真实的三个分行(例如北京、上海、浙江),也可以是三个按某种规则设立的虚拟分行,例如按借款金额划分 `A1: 1-1000, A2: 1001-10000, A3: 10000+`。这样,查询时对于 A 的任何操作,都转变为为对于 A1、A2、A3 的三次单独操作。