This is an automated email from the ASF dual-hosted git repository.

rong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iotdb-docs.git


The following commit(s) were added to refs/heads/main by this push:
     new 1ad07d1  Update Deployment-Guide related docs  (#79)
1ad07d1 is described below

commit 1ad07d128bd346f148d19701622f68860520799f
Author: Caideyipi <[email protected]>
AuthorDate: Wed Sep 6 17:49:38 2023 +0800

    Update Deployment-Guide related docs  (#79)
    
    Co-authored-by: Steve Yurong Su <[email protected]>
---
 .../Deployment-and-Maintenance/Deployment-Guide.md | 459 +++++----------
 .../Deployment-Guide_timecho.md                    | 618 +++++++++++----------
 2 files changed, 446 insertions(+), 631 deletions(-)

diff --git 
a/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide.md 
b/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide.md
index f7bc34d..6812294 100644
--- a/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide.md
+++ b/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide.md
@@ -7,9 +7,9 @@
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at
-    
+  
         http://www.apache.org/licenses/LICENSE-2.0
-    
+  
     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,362 +21,155 @@
 
 # 部署指导
 
-## 单机版部署
-
-本文将介绍关于 IoTDB 使用的基本流程,如果需要更多信息,请浏览我们官网的 
[指引](../IoTDB-Introduction/What-is-IoTDB.md).
-
-### 安装环境
-
-安装前需要保证设备上配有 JDK>=1.8 的运行环境,并配置好 JAVA_HOME 环境变量。
-
-设置最大文件打开数为 65535。
-
-### 安装步骤
-
-IoTDB 支持多种安装途径。用户可以使用三种方式对 IoTDB 进行安装——下载二进制可运行程序、使用源码、使用 docker 镜像。
-
-* 使用源码:您可以从代码仓库下载源码并编译,具体编译方法见下方。
-
-* 二进制可运行程序:请从 [下载](https://iotdb.apache.org/Download/) 页面下载最新的安装包,解压后即完成安装。
-
-* 使用 Docker 镜像:dockerfile 
文件位于[github](https://github.com/apache/iotdb/blob/master/docker/src/main)
-
-### 软件目录结构
-
-* sbin 启动和停止脚本目录
-* conf 配置文件目录
-* tools 系统工具目录
-* lib 依赖包目录
-
-### IoTDB 试用
-
-用户可以根据以下操作对 IoTDB 进行简单的试用,若以下操作均无误,则说明 IoTDB 安装成功。
-
-#### 启动 IoTDB
-
-IoTDB 是一个基于分布式系统的数据库。要启动 IoTDB ,你可以先启动单机版(一个 ConfigNode 和一个 DataNode)来检查安装。
+IoTDB 提供单机版、集群版共 2 种部署形态。本章节将详细介绍每一种部署形态的具体部署步骤。
 
-用户可以使用 sbin 文件夹下的 start-standalone 脚本启动 IoTDB。
+## 预备知识
 
-Linux 系统与 MacOS 系统启动命令如下:
-
-```
-> bash sbin/start-standalone.sh
-```
+在开始部署前,您需要充分了解下面的预备知识。
 
-Windows 系统启动命令如下:
+### 安装包结构
 
-```
-> sbin\start-standalone.bat
-```
+首先,需要获取安装包,名字为 `apache-iotdb-{version}-all-bin` 的安装包包含 ConfigNode 和 DataNode 
的可执行程序,请将安装包部署于目标集群的所有机器上,推荐将安装包部署于所有服务器的相同目录下。
 
-注意:目前,要使用单机模式,你需要保证所有的地址设置为 127.0.0.1,如果需要从非 IoTDB 所在的机器访问此IoTDB,请将配置项 
`dn_rpc_address` 修改为 IoTDB 所在的机器 IP。副本数设置为1。并且,推荐使用 
SimpleConsensus,因为这会带来额外的效率。这些现在都是默认配置。
+**之后,需要对 IoTDB 安装包的结构有了解。IoTDB 安装包目录结构如下:**
 
-## 集群版部署
-以本地环境为例,演示 IoTDB 集群的启动、扩容与缩容。
+| **目录** | **说明**                                                              
      |
+| -------- | 
--------------------------------------------------------------------------- |
+| conf     | 配置文件目录,包含 ConfigNode、DataNode、JMX 和 logback 等配置文件          |
+| data     | 数据文件目录,包含 ConfigNode 和 DataNode 的数据文件                        |
+| lib      | 库文件目录                                                             
     |
+| logs     | 日志文件目录,包含 ConfigNode 和 DataNode 的日志文件                        |
+| sbin     | 脚本目录,包含 ConfigNode 和 DataNode 的启停移除脚本,以及 Cli 的启动脚本等 |
+| tools    | 系统工具目录                                                            
    |
 
-**注意:本文档为使用本地不同端口,进行伪分布式环境部署的教程,仅用于练习。在真实环境部署时,一般不需要修改节点端口,仅需配置节点 IPV4 
地址或域名即可。**
+### 配置文件
 
-### 1. 准备启动环境
+**必要情况下,您需要根据业务需求,修改每个服务器上的配置文件。登录服务器,并将工作路径切换至 
`apache-iotdb-{version}-all-bin`,配置文件在 `./conf` 目录内。**
 
-解压 apache-iotdb-1.0.0-all-bin.zip 至 cluster0 目录。
+* 对于所有部署 ConfigNode 的服务器,需要修改 **通用配置** 和 **ConfigNode 配置** 。
+* 对于所有部署 DataNode 的服务器,需要修改 **通用配置** 和 **DataNode 配置** 。
 
-### 2. 启动最小集群
+#### 通用配置
 
-在 Linux 环境中,部署 1 个 ConfigNode 和 1 个 DataNode(1C1D)集群版,默认 1 副本:
+打开通用配置文件 ./conf/iotdb-common.properties,可根据 
[部署推荐](https://iotdb.apache.org/zh/UserGuide/Master/Cluster/Deployment-Recommendation.html)设置以下参数:
 
-```
-./cluster0/sbin/start-confignode.sh
-./cluster0/sbin/start-datanode.sh
-```
+| **配置项**                                 | **说明**                             
                         | **默认**                                        |
+| ------------------------------------------ | 
------------------------------------------------------------- | 
----------------------------------------------- |
+| cluster\_name                              | 节点希望加入的集群的名称                    
                  | defaultCluster                                  |
+| config\_node\_consensus\_protocol\_class   | ConfigNode 使用的共识协议              
                       | org.apache.iotdb.consensus.ratis.RatisConsensus |
+| schema\_replication\_factor                | 元数据副本数,DataNode 数量不应少于此数目       
              | 1                                               |
+| schema\_region\_consensus\_protocol\_class | 元数据副本组的共识协议                     
                   | org.apache.iotdb.consensus.ratis.RatisConsensus |
+| data\_replication\_factor                  | 数据副本数,DataNode 数量不应少于此数目        
               | 1                                               |
+| data\_region\_consensus\_protocol\_class   | 数据副本组的共识协议。注:RatisConsensus 
目前不支持多数据目录 | org.apache.iotdb.consensus.iot.IoTConsensus     |
 
-### 3. 验证最小集群
+**注意:上述配置项在集群启动后即不可更改,且务必保证所有节点的通用配置完全一致,否则节点无法启动。**
 
-+ 最小集群启动成功,启动 Cli 进行验证:
+#### ConfigNode 配置
 
-```
-./cluster0/sbin/start-cli.sh
-```
-
-+ 在 Cli 执行 [show cluster 
details](https://iotdb.apache.org/zh/UserGuide/Master/Maintenance-Tools/Maintenance-Command.html#%E6%9F%A5%E7%9C%8B%E5%85%A8%E9%83%A8%E8%8A%82%E7%82%B9%E4%BF%A1%E6%81%AF)
-    指令,结果如下所示:
+打开 ConfigNode 配置文件 ./conf/iotdb-confignode.properties,根据服务器/虚拟机的 IP 
地址和可用端口,设置以下参数:
 
-```
-IoTDB> show cluster details
-+------+----------+-------+---------------+------------+-------------------+----------+-------+--------+-------------------+-----------------+
-|NodeID|  NodeType| 
Status|InternalAddress|InternalPort|ConfigConsensusPort|RpcAddress|RpcPort|MppPort
 |SchemaConsensusPort|DataConsensusPort|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+--------+-------------------+-----------------+
-|     0|ConfigNode|Running|      127.0.0.1|       10710|              10720|   
       |       |        |                   |                 |
-|     1|  DataNode|Running|      127.0.0.1|       10730|                   | 
127.0.0.1|   6667|   10740|              10750|            10760|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+--------+-------------------+-----------------+
-Total line number = 2
-It costs 0.242s
-```
+| **配置项**                     | **说明**                                         
            | **默认**        | **用法**                                            
                                                                                
                                            |
+| ------------------------------ | 
------------------------------------------------------------ | --------------- 
| 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| cn\_internal\_address          | ConfigNode 在集群内部通讯使用的地址                     
     | 127.0.0.1       | 设置为服务器的 IPV4 地址或域名                                     
                                                                                
                             |
+| cn\_internal\_port             | ConfigNode 在集群内部通讯使用的端口                     
     | 10710           | 设置为任意未占用端口                                             
                                                                                
                               |
+| cn\_consensus\_port            | ConfigNode 副本组共识协议通信使用的端口                   
   | 10720           | 设置为任意未占用端口                                               
                                                                                
                             |
+| cn\_target\_config\_node\_list | 节点注册加入集群时连接的 ConfigNode 的地址。注:只能配置一个 | 
127.0.0.1:10710 | 对于 Seed-ConfigNode,设置为自己的 
cn\_internal\_address:cn\_internal\_port;对于其它 ConfigNode,设置为另一个正在运行的 ConfigNode 
的 cn\_internal\_address:cn\_internal\_port |
 
-### 4. 准备扩容环境
+**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
 
-解压 apache-iotdb-1.0.0-all-bin.zip 至 cluster1 目录和 cluster2 目录
+#### DataNode 配置
 
-### 5. 修改节点配置文件
+打开 DataNode 配置文件 ./conf/iotdb-datanode.properties,根据服务器/虚拟机的 IP 地址和可用端口,设置以下参数:
 
-对于 cluster1 目录:
+| **配置项**                          | **说明**                                  | 
**默认**        | **用法**                                                          
                                         |
+| ----------------------------------- | 
----------------------------------------- | --------------- | 
----------------------------------------------------------------------------------------------------------
 |
+| dn\_rpc\_address                    | 客户端 RPC 服务的地址                     | 
127.0.0.1       | 设置为服务器的 IPV4 地址或域名                                            
                                 |
+| dn\_rpc\_port                       | 客户端 RPC 服务的端口                     | 
6667            | 设置为任意未占用端口                                                    
                                   |
+| dn\_internal\_address               | DataNode 在集群内部接收控制流使用的地址   | 127.0.0.1 
      | 设置为服务器的 IPV4 地址或域名                                                      
                       |
+| dn\_internal\_port                  | DataNode 在集群内部接收控制流使用的端口   | 10730     
      | 设置为任意未占用端口                                                              
                         |
+| dn\_mpp\_data\_exchange\_port       | DataNode 在集群内部接收数据流使用的端口   | 10740     
      | 设置为任意未占用端口                                                              
                         |
+| dn\_data\_region\_consensus\_port   | DataNode 的数据副本间共识协议通信的端口   | 10750     
      | 设置为任意未占用端口                                                              
                         |
+| dn\_schema\_region\_consensus\_port | DataNode 的元数据副本间共识协议通信的端口 | 10760      
     | 设置为任意未占用端口                                                               
                        |
+| dn\_target\_config\_node\_list      | 集群中正在运行的 ConfigNode 地址          | 
127.0.0.1:10710 | 设置为任意正在运行的 ConfigNode 的 
cn\_internal\_address:cn\_internal\_port,可设置多个,用逗号(",")隔开 |
 
-+ 修改 ConfigNode 配置:
+**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
 
-| **配置项**                     | **值**          |
-| ------------------------------ | --------------- |
-| cn\_internal\_address          | 127.0.0.1       |
-| cn\_internal\_port             | 10711           |
-| cn\_consensus\_port            | 10721           |
-| cn\_target\_config\_node\_list | 127.0.0.1:10710 |
+### 环境检查
 
-+ 修改 DataNode 配置:
+**最后,在正式部署前,还需要对下列项目进行检查:**
 
-| **配置项**                          | **值**          |
-| ----------------------------------- | --------------- |
-| dn\_rpc\_address                    | 127.0.0.1       |
-| dn\_rpc\_port                       | 6668            |
-| dn\_internal\_address               | 127.0.0.1       |
-| dn\_internal\_port                  | 10731           |
-| dn\_mpp\_data\_exchange\_port       | 10741           |
-| dn\_schema\_region\_consensus\_port | 10751           |
-| dn\_data\_region\_consensus\_port   | 10761           |
-| dn\_target\_config\_node\_list      | 127.0.0.1:10710 |
+1. JDK>=1.8 的运行环境,并配置好 JAVA_HOME 环境变量。
+2. 设置最大文件打开数为 65535。
+3. 关闭交换内存。
+4. 首次启动 ConfigNode 节点时,确保已清空 ConfigNode 节点的 data/confignode 目录;首次启动 DataNode 
节点时,确保已清空 DataNode 节点的 data/datanode 目录。
+5. 如果整个集群处在可信环境下,可以关闭机器上的防火墙选项。
+6. 在集群默认配置中,ConfigNode 会占用端口 10710 和 10720,DataNode 会占用端口 
6667、10730、10740、10750 和 10760,请确保这些端口未被占用,或者手动修改配置文件中的端口配置。
 
-对于 cluster2 目录:
+### FAQ
 
-+ 修改 ConfigNode 配置:
+在部署集群过程中有任何问题,请参考 
[分布式部署FAQ](https://iotdb.apache.org/zh/UserGuide/Master/FAQ/FAQ-for-cluster-setup.html)。
 
-| **配置项**                     | **值**          |
-| ------------------------------ | --------------- |
-| cn\_internal\_address          | 127.0.0.1       |
-| cn\_internal\_port             | 10712           |
-| cn\_consensus\_port            | 10722           |
-| cn\_target\_config\_node\_list | 127.0.0.1:10710 |
+## 单机版部署
 
-+ 修改 DataNode 配置:
+本小节描述如何启动包括 1 个 ConfigNode 和 1 个 DataNode 的实例。
 
-| **配置项**                          | **值**          |
-| ----------------------------------- | --------------- |
-| dn\_rpc\_address                    | 127.0.0.1       |
-| dn\_rpc\_port                       | 6669            |
-| dn\_internal\_address               | 127.0.0.1       |
-| dn\_internal\_port                  | 10732           |
-| dn\_mpp\_data\_exchange\_port       | 10742           |
-| dn\_schema\_region\_consensus\_port | 10752           |
-| dn\_data\_region\_consensus\_port   | 10762           |
-| dn\_target\_config\_node\_list      | 127.0.0.1:10710 |
+### 启动流程
 
-### 6. 集群扩容
+在完成配置文件的修改后(一般仅需要修改 IP 等信息) ,用户可以使用 sbin 文件夹下的 start-standalone 脚本启动 IoTDB。
 
-将集群扩容至 3 个 ConfigNode 和 3 个 DataNode(3C3D)集群版,
-指令执行顺序为先启动 ConfigNode,再启动 DataNode:
+Linux 系统与 MacOS 系统启动命令如下:
 
 ```
-./cluster1/sbin/start-confignode.sh
-./cluster2/sbin/start-confignode.sh
-./cluster1/sbin/start-datanode.sh
-./cluster2/sbin/start-datanode.sh
+> bash sbin/start-standalone.sh
 ```
 
-### 7. 验证扩容结果
-
-在 Cli 执行 `show cluster details`,结果如下:
+Windows 系统启动命令如下:
 
 ```
-IoTDB> show cluster details
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
-|NodeID|  NodeType| 
Status|InternalAddress|InternalPort|ConfigConsensusPort|RpcAddress|RpcPort|MppPort|SchemaConsensusPort|DataConsensusPort|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
-|     0|ConfigNode|Running|      127.0.0.1|       10710|              10720|   
       |       |       |                   |                 |
-|     2|ConfigNode|Running|      127.0.0.1|       10711|              10721|   
       |       |       |                   |                 |
-|     3|ConfigNode|Running|      127.0.0.1|       10712|              10722|   
       |       |       |                   |                 |
-|     1|  DataNode|Running|      127.0.0.1|       10730|                   | 
127.0.0.1|   6667|  10740|              10750|            10760|
-|     4|  DataNode|Running|      127.0.0.1|       10731|                   | 
127.0.0.1|   6668|  10741|              10751|            10761|
-|     5|  DataNode|Running|      127.0.0.1|       10732|                   | 
127.0.0.1|   6669|  10742|              10752|            10762|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
-Total line number = 6
-It costs 0.012s
-```
-
-### 8. 集群缩容
-
-+ 缩容一个 ConfigNode:
-
+> sbin\start-standalone.bat
 ```
-# 使用 ip:port 移除
-./cluster0/sbin/remove-confignode.sh 127.0.0.1:10711
 
-# 使用节点编号移除
-./cluster0/sbin/remove-confignode.sh 2
-```
+注意:目前,要使用单机模式,你需要保证所有的地址设置为 127.0.0.1,如果需要从非 IoTDB 所在的机器访问此IoTDB,请将配置项 
`dn_rpc_address` 修改为 IoTDB 所在的机器 IP。
 
-+ 缩容一个 DataNode:
+### 验证部署
 
-```
-# 使用 ip:port 移除
-./cluster0/sbin/remove-datanode.sh 127.0.0.1:6668
+若搭建的集群仅用于本地调试,可直接执行 ./sbin 目录下的 Cli 启动脚本:
 
-# 使用节点编号移除
-./cluster0/sbin/remove-confignode.sh 4
 ```
+# Linux
+./sbin/start-cli.sh
 
-### 9. 验证缩容结果
-
-在 Cli 执行 `show cluster details`,结果如下:
-
-```
-IoTDB> show cluster details
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
-|NodeID|  NodeType| 
Status|InternalAddress|InternalPort|ConfigConsensusPort|RpcAddress|RpcPort|MppPort|SchemaConsensusPort|DataConsensusPort|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
-|     0|ConfigNode|Running|      127.0.0.1|       10710|              10720|   
       |       |       |                   |                 |
-|     3|ConfigNode|Running|      127.0.0.1|       10712|              10722|   
       |       |       |                   |                 |
-|     1|  DataNode|Running|      127.0.0.1|       10730|                   | 
127.0.0.1|   6667|  10740|              10750|            10760|
-|     5|  DataNode|Running|      127.0.0.1|       10732|                   | 
127.0.0.1|   6669|  10742|              10752|            10762|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
-Total line number = 4
-It costs 0.005s
+# Windows
+.\sbin\start-cli.bat
 ```
 
-## 手动部署
-
-### 前置检查
-
-1. JDK>=1.8 的运行环境,并配置好 JAVA_HOME 环境变量。
-2. 设置最大文件打开数为 65535。
-3. 关闭交换内存。
-4. 
首次启动ConfigNode节点时,确保已清空ConfigNode节点的data/confignode目录;首次启动DataNode节点时,确保已清空DataNode节点的data/datanode目录。
-5. 如果整个集群处在可信环境下,可以关闭机器上的防火墙选项。
-6. 在集群默认配置中,ConfigNode 会占用端口 10710 和 10720,DataNode 会占用端口 
6667、10730、10740、10750 和 10760,
-    请确保这些端口未被占用,或者手动修改配置文件中的端口配置。
-
-### 安装包获取
-
-你可以选择下载二进制文件(见 3.1)或从源代码编译(见 3.2)。
-
-#### 下载二进制文件
-
-1. 打开官网[Download Page](https://iotdb.apache.org/Download/)。
-2. 下载 IoTDB 1.0.0 版本的二进制文件。
-3. 解压得到 apache-iotdb-1.0.0-all-bin 目录。
+若希望通过 Cli 连接生产环境的集群,
+请阅读 [Cli 
使用手册](https://iotdb.apache.org/zh/UserGuide/Master/QuickStart/Command-Line-Interface.html)。
 
-#### 使用源码编译
+成功启动集群后,在 Cli 执行 `show cluster details`:
+* 若所有节点的状态均为 **Running**,则说明集群部署成功;
+* 否则,请阅读启动失败节点的运行日志,并检查对应的配置参数。
 
-##### 下载源码
+### 停止流程
 
-**Git**
+Linux 系统与 MacOS 系统停止命令如下:
 
 ```
-git clone https://github.com/apache/iotdb.git
-git checkout v1.0.0
+> bash sbin/stop-standalone.sh
 ```
 
-**官网下载**
-
-1. 打开官网[Download Page](https://iotdb.apache.org/Download/)。
-2. 下载 IoTDB 1.0.0 版本的源码。
-3. 解压得到 apache-iotdb-1.0.0 目录。
-
-##### 编译源码
-
-在 IoTDB 源码根目录下:
+Windows 系统停止命令如下:
 
 ```
-mvn clean package -pl distribution -am -DskipTests
+> sbin\stop-standalone.bat
 ```
 
-编译成功后,可在目录 
-**distribution/target/apache-iotdb-1.0.0-SNAPSHOT-all-bin/apache-iotdb-1.0.0-SNAPSHOT-all-bin**
 
-找到集群版本的二进制文件。
-
-### 安装包说明
-
-打开 apache-iotdb-1.0.0-SNAPSHOT-all-bin,可见以下目录:
-
-| **目录** | **说明**                                                     |
-| -------- | ------------------------------------------------------------ |
-| conf     | 配置文件目录,包含 ConfigNode、DataNode、JMX 和 logback 等配置文件 |
-| data     | 数据文件目录,包含 ConfigNode 和 DataNode 的数据文件         |
-| lib      | 库文件目录                                                   |
-| licenses | 证书文件目录                                                 |
-| logs     | 日志文件目录,包含 ConfigNode 和 DataNode 的日志文件         |
-| sbin     | 脚本目录,包含 ConfigNode 和 DataNode 的启停移除脚本,以及 Cli 的启动脚本等 |
-| tools    | 系统工具目录                                                 |
-
-### 集群安装配置
-
-#### 集群安装
-
-`apache-iotdb-1.0.0-SNAPSHOT-all-bin` 包含 ConfigNode 和 DataNode,
-请将安装包部署于你目标集群的所有机器上,推荐将安装包部署于所有服务器的相同目录下。
-
-如果你希望先在一台服务器上尝试部署 IoTDB 集群,请参考
-[Cluster Quick 
Start](https://iotdb.apache.org/zh/UserGuide/Master/QuickStart/ClusterQuickStart.html)。
-
-#### 集群配置
-
-接下来需要修改每个服务器上的配置文件,登录服务器,
-并将工作路径切换至 `apache-iotdb-1.0.0-SNAPSHOT-all-bin`,
-配置文件在 `./conf` 目录内。
-
-对于所有部署 ConfigNode 的服务器,需要修改通用配置(见 5.2.1)和 ConfigNode 配置(见 5.2.2)。
-
-对于所有部署 DataNode 的服务器,需要修改通用配置(见 5.2.1)和 DataNode 配置(见 5.2.3)。
-
-##### 通用配置
-
-打开通用配置文件 ./conf/iotdb-common.properties,
-可根据 
[部署推荐](https://iotdb.apache.org/zh/UserGuide/Master/Cluster/Deployment-Recommendation.html)
-设置以下参数:
-
-| **配置项**                                 | **说明**                             
                        | **默认**                                        |
-| ------------------------------------------ | 
------------------------------------------------------------ | 
----------------------------------------------- |
-| cluster\_name                              | 节点希望加入的集群的名称                    
                 | defaultCluster                                  |
-| config\_node\_consensus\_protocol\_class   | ConfigNode 使用的共识协议              
                      | org.apache.iotdb.consensus.ratis.RatisConsensus |
-| schema\_replication\_factor                | 元数据副本数,DataNode 数量不应少于此数目       
             | 1                                               |
-| schema\_region\_consensus\_protocol\_class | 元数据副本组的共识协议                     
                  | org.apache.iotdb.consensus.ratis.RatisConsensus |
-| data\_replication\_factor                  | 数据副本数,DataNode 数量不应少于此数目        
              | 1                                               |
-| data\_region\_consensus\_protocol\_class   | 数据副本组的共识协议。注:RatisConsensus 
目前不支持多数据目录 | org.apache.iotdb.consensus.iot.IoTConsensus     |
-
-**注意:上述配置项在集群启动后即不可更改,且务必保证所有节点的通用配置完全一致,否则节点无法启动。**
-
-##### ConfigNode 配置
-
-打开 ConfigNode 配置文件 ./conf/iotdb-confignode.properties,根据服务器/虚拟机的 IP 
地址和可用端口,设置以下参数:
-
-| **配置项**                     | **说明**                                         
            | **默认**        | **用法**                                            
         |
-| ------------------------------ | 
------------------------------------------------------------ | --------------- 
| ------------------------------------------------------------ |
-| cn\_internal\_address          | ConfigNode 在集群内部通讯使用的地址                     
     | 127.0.0.1       | 设置为服务器的 IPV4 地址或域名                               |
-| cn\_internal\_port             | ConfigNode 在集群内部通讯使用的端口                     
     | 10710           | 设置为任意未占用端口                                         |
-| cn\_consensus\_port            | ConfigNode 副本组共识协议通信使用的端口                   
   | 10720           | 设置为任意未占用端口                                         |
-| cn\_target\_config\_node\_list | 节点注册加入集群时连接的 ConfigNode 的地址。注:只能配置一个 | 
127.0.0.1:10710 | 对于 Seed-ConfigNode,设置为自己的 
cn\_internal\_address:cn\_internal\_port;对于其它 ConfigNode,设置为另一个正在运行的 ConfigNode 
的 cn\_internal\_address:cn\_internal\_port |
-
-**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
-
-##### DataNode 配置
-
-打开 DataNode 配置文件 ./conf/iotdb-datanode.properties,根据服务器/虚拟机的 IP 地址和可用端口,设置以下参数:
-
-| **配置项**                          | **说明**                                  | 
**默认**        | **用法**                                                     |
-| ----------------------------------- | 
----------------------------------------- | --------------- | 
------------------------------------------------------------ |
-| dn\_rpc\_address                    | 客户端 RPC 服务的地址                     | 
127.0.0.1       | 设置为服务器的 IPV4 地址或域名                               |
-| dn\_rpc\_port                       | 客户端 RPC 服务的端口                     | 
6667            | 设置为任意未占用端口                                         |
-| dn\_internal\_address               | DataNode 在集群内部接收控制流使用的地址   | 127.0.0.1 
      | 设置为服务器的 IPV4 地址或域名                               |
-| dn\_internal\_port                  | DataNode 在集群内部接收控制流使用的端口   | 10730     
      | 设置为任意未占用端口                                         |
-| dn\_mpp\_data\_exchange\_port       | DataNode 在集群内部接收数据流使用的端口   | 10740     
      | 设置为任意未占用端口                                         |
-| dn\_data\_region\_consensus\_port   | DataNode 的数据副本间共识协议通信的端口   | 10750     
      | 设置为任意未占用端口                                         |
-| dn\_schema\_region\_consensus\_port | DataNode 的元数据副本间共识协议通信的端口 | 10760      
     | 设置为任意未占用端口                                         |
-| dn\_target\_config\_node\_list      | 集群中正在运行的 ConfigNode 地址          | 
127.0.0.1:10710 | 设置为任意正在运行的 ConfigNode 的 
cn\_internal\_address:cn\_internal\_port,可设置多个,用逗号(",")隔开 |
-
-**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
-
-### 集群操作
+## 集群版部署
 
-#### 启动集群
+### 启动流程
 
 本小节描述如何启动包括若干 ConfigNode 和 DataNode 的集群。
-集群可以提供服务的标准是至少启动一个 ConfigNode 且启动 不小于(数据/元数据)副本个数 的 DataNode。
+集群可以提供服务的标准是至少启动一个 ConfigNode 且启动不小于(数据/元数据)副本个数的 DataNode。
 
 总体启动流程分为三步:
 
@@ -384,7 +177,7 @@ mvn clean package -pl distribution -am -DskipTests
 2. 增加 ConfigNode(可选)
 3. 增加 DataNode
 
-##### 启动 Seed-ConfigNode
+#### 启动 Seed-ConfigNode
 
 **集群第一个启动的节点必须是 ConfigNode,第一个启动的 ConfigNode 必须遵循本小节教程。**
 
@@ -404,11 +197,12 @@ mvn clean package -pl distribution -am -DskipTests
 
 接着请打开它的配置文件 ./conf/iotdb-confignode.properties,并检查如下参数:
 
-| **配置项**                     | **检查**                                         
            |
-| ------------------------------ | 
------------------------------------------------------------ |
-| cn\_internal\_address          | 已设置为服务器的 IPV4 地址或域名                         
    |
-| cn\_internal\_port             | 该端口未被占用                                     
          |
-| cn\_consensus\_port            | 该端口未被占用                                     
          |
+
+| **配置项**                     | **检查**                                         
                       |
+| ------------------------------ | 
----------------------------------------------------------------------- |
+| cn\_internal\_address          | 已设置为服务器的 IPV4 地址或域名                         
               |
+| cn\_internal\_port             | 该端口未被占用                                     
                     |
+| cn\_consensus\_port            | 该端口未被占用                                     
                     |
 | cn\_target\_config\_node\_list | 已设置为自己的内部通讯地址,即 
cn\_internal\_address:cn\_internal\_port |
 
 检查完毕后,即可在服务器上运行启动脚本:
@@ -427,7 +221,7 @@ nohup bash ./sbin/start-confignode.sh >/dev/null 2>&1 &
 ConfigNode 的其它配置参数可参考
 [ConfigNode 
配置参数](https://iotdb.apache.org/zh/UserGuide/Master/Reference/ConfigNode-Config-Manual.html)。
 
-##### 增加更多 ConfigNode(可选)
+#### 增加更多 ConfigNode(可选)
 
 **只要不是第一个启动的 ConfigNode 就必须遵循本小节教程。**
 
@@ -447,11 +241,11 @@ ConfigNode 的其它配置参数可参考
 
 接着请打开它的配置文件 ./conf/iotdb-confignode.properties,并检查以下参数:
 
-| **配置项**                     | **检查**                                         
            |
-| ------------------------------ | 
------------------------------------------------------------ |
-| cn\_internal\_address          | 已设置为服务器的 IPV4 地址或域名                         
    |
-| cn\_internal\_port             | 该端口未被占用                                     
          |
-| cn\_consensus\_port            | 该端口未被占用                                     
          |
+| **配置项**                     | **检查**                                         
                                           |
+| ------------------------------ | 
-------------------------------------------------------------------------------------------
 |
+| cn\_internal\_address          | 已设置为服务器的 IPV4 地址或域名                         
                                   |
+| cn\_internal\_port             | 该端口未被占用                                     
                                         |
+| cn\_consensus\_port            | 该端口未被占用                                     
                                         |
 | cn\_target\_config\_node\_list | 已设置为另一个正在运行的 ConfigNode 的内部通讯地址,推荐使用 
Seed-ConfigNode 的内部通讯地址 |
 
 检查完毕后,即可在服务器上运行启动脚本:
@@ -470,28 +264,30 @@ nohup bash ./sbin/start-confignode.sh >/dev/null 2>&1 &
 ConfigNode 的其它配置参数可参考
 
[ConfigNode配置参数](https://iotdb.apache.org/zh/UserGuide/Master/Reference/ConfigNode-Config-Manual.html)。
 
-##### 增加 DataNode
+#### 增加 DataNode
 
 **确保集群已有正在运行的 ConfigNode 后,才能开始增加 DataNode。**
 
 可以向集群中添加任意个 DataNode。
 在添加新的 DataNode 前,请先打开通用配置文件 ./conf/iotdb-common.properties 并检查以下参数:
 
+
 | **配置项**    | **检查**                    |
 | ------------- | --------------------------- |
 | cluster\_name | 与 Seed-ConfigNode 保持一致 |
 
 接着打开它的配置文件 ./conf/iotdb-datanode.properties 并检查以下参数:
 
-| **配置项**                          | **检查**                                    
                 |
-| ----------------------------------- | 
------------------------------------------------------------ |
-| dn\_rpc\_address                    | 已设置为服务器的 IPV4 地址或域名                    
         |
-| dn\_rpc\_port                       | 该端口未被占用                                
               |
-| dn\_internal\_address               | 已设置为服务器的 IPV4 地址或域名                    
         |
-| dn\_internal\_port                  | 该端口未被占用                                
               |
-| dn\_mpp\_data\_exchange\_port       | 该端口未被占用                                
               |
-| dn\_data\_region\_consensus\_port   | 该端口未被占用                                
               |
-| dn\_schema\_region\_consensus\_port | 该端口未被占用                                
               |
+
+| **配置项**                          | **检查**                                    
                                          |
+| ----------------------------------- | 
-------------------------------------------------------------------------------------
 |
+| dn\_rpc\_address                    | 已设置为服务器的 IPV4 地址或域名                    
                                  |
+| dn\_rpc\_port                       | 该端口未被占用                                
                                        |
+| dn\_internal\_address               | 已设置为服务器的 IPV4 地址或域名                    
                                  |
+| dn\_internal\_port                  | 该端口未被占用                                
                                        |
+| dn\_mpp\_data\_exchange\_port       | 该端口未被占用                                
                                        |
+| dn\_data\_region\_consensus\_port   | 该端口未被占用                                
                                        |
+| dn\_schema\_region\_consensus\_port | 该端口未被占用                                
                                        |
 | dn\_target\_config\_node\_list      | 已设置为正在运行的 ConfigNode 的内部通讯地址,推荐使用 
Seed-ConfigNode 的内部通讯地址 |
 
 检查完毕后,即可在服务器上运行启动脚本:
@@ -512,7 +308,7 @@ DataNode 的其它配置参数可参考
 
 **注意:当且仅当集群拥有不少于副本个数(max{schema\_replication\_factor, 
data\_replication\_factor})的 DataNode 后,集群才可以提供服务**
 
-#### 启动 Cli
+### 验证部署
 
 若搭建的集群仅用于本地调试,可直接执行 ./sbin 目录下的 Cli 启动脚本:
 
@@ -527,13 +323,12 @@ DataNode 的其它配置参数可参考
 若希望通过 Cli 连接生产环境的集群,
 请阅读 [Cli 
使用手册](https://iotdb.apache.org/zh/UserGuide/Master/QuickStart/Command-Line-Interface.html)。
 
-#### 验证集群
 
 以在6台服务器上启动的3C3D(3个ConfigNode 和 3个DataNode)集群为例,
 
这里假设3个ConfigNode的IP地址依次为192.168.1.10、192.168.1.11、192.168.1.12,且3个ConfigNode启动时均使用了默认的端口10710与10720;
 
3个DataNode的IP地址依次为192.168.1.20、192.168.1.21、192.168.1.22,且3个DataNode启动时均使用了默认的端口6667、10730、10740、10750与10760。
 
-当按照6.1步骤成功启动集群后,在 Cli 执行 `show cluster details`,看到的结果应当如下:
+成功启动集群后,在 Cli 执行 `show cluster details`,看到的结果应当如下:
 
 ```
 IoTDB> show cluster details
@@ -554,11 +349,11 @@ It costs 0.012s
 若所有节点的状态均为 **Running**,则说明集群部署成功;
 否则,请阅读启动失败节点的运行日志,并检查对应的配置参数。
 
-#### 停止 IoTDB 进程
+### 停止流程
 
 本小节描述如何手动关闭 IoTDB 的 ConfigNode 或 DataNode 进程。
 
-##### 使用脚本停止 ConfigNode
+#### 使用脚本停止 ConfigNode
 
 执行停止 ConfigNode 脚本:
 
@@ -570,7 +365,7 @@ It costs 0.012s
 .\sbin\stop-confignode.bat
 ```
 
-##### 使用脚本停止 DataNode
+#### 使用脚本停止 DataNode
 
 执行停止 DataNode 脚本:
 
@@ -582,7 +377,7 @@ It costs 0.012s
 .\sbin\stop-datanode.bat
 ```
 
-##### 停止节点进程
+#### 停止节点进程
 
 首先获取节点的进程号:
 
@@ -602,11 +397,11 @@ kill -9 <pid>
 
 **注意:有些端口的信息需要 root 权限才能获取,在此情况下请使用 sudo**
 
-#### 集群缩容
+### 集群缩容
 
 本小节描述如何将 ConfigNode 或 DataNode 移出集群。
 
-##### 移除 ConfigNode
+#### 移除 ConfigNode
 
 在移除 ConfigNode 前,请确保移除后集群至少还有一个活跃的 ConfigNode。
 在活跃的 ConfigNode 上执行 remove-confignode 脚本:
@@ -628,7 +423,7 @@ kill -9 <pid>
 .\sbin\remove-confignode.bat <cn_internal_address>:<cn_internal_port>
 ```
 
-##### 移除 DataNode
+#### 移除 DataNode
 
 在移除 DataNode 前,请确保移除后集群至少还有不少于(数据/元数据)副本个数的 DataNode。
 在活跃的 DataNode 上执行 remove-datanode 脚本:
@@ -649,7 +444,3 @@ kill -9 <pid>
 ## 根据 DataNode RPC 服务地址和端口移除节点
 .\sbin\remove-datanode.bat <dn_rpc_address>:<dn_rpc_port>
 ```
-
-### 常见问题
-
-请参考 
[分布式部署FAQ](https://iotdb.apache.org/zh/UserGuide/Master/FAQ/FAQ-for-cluster-setup.html)
\ No newline at end of file
diff --git 
a/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide_timecho.md
 
b/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide_timecho.md
index 0cfc532..d4c08fc 100644
--- 
a/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide_timecho.md
+++ 
b/src/zh/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide_timecho.md
@@ -7,9 +7,9 @@
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at
-    
+  
         http://www.apache.org/licenses/LICENSE-2.0
-    
+  
     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,39 +21,102 @@
 
 # 部署指导
 
-## 部署准备
+IoTDB 提供单机版、集群版和双活版共 3 种部署形态。本章节将详细介绍每一种部署形态的具体部署步骤。
 
-### 安装包获取
+## 预备知识
 
-您可以联系商务获取最新安装包。
+在开始部署前,您需要充分了解下面的预备知识。
 
-### 安装环境
+### 安装包结构
 
-安装前需要保证设备上配有 JDK>=1.8 的运行环境,并配置好 JAVA_HOME 环境变量。
+首先,需要获取安装包,名字为 `apache-iotdb-{version}-all-bin` 的安装包包含 ConfigNode 和 DataNode 
的可执行程序,请将安装包部署于目标集群的所有机器上,推荐将安装包部署于所有服务器的相同目录下。
 
-设置最大文件打开数为 65535。
-## 单机版部署
+**之后,需要对 IoTDB 安装包的结构有了解。IoTDB 安装包目录结构如下:**
 
-本文将介绍关于 IoTDB 使用的基本流程,如果需要更多信息,请浏览我们官网的 
[指引](../IoTDB-Introduction/What-is-IoTDB.md).
+| **目录** | **说明**                                                              
      |
+| -------- | 
--------------------------------------------------------------------------- |
+| conf     | 配置文件目录,包含 ConfigNode、DataNode、JMX 和 logback 等配置文件          |
+| data     | 数据文件目录,包含 ConfigNode 和 DataNode 的数据文件                        |
+| lib      | 库文件目录                                                             
     |
+| licenses | 证书文件目录                                                            
    |
+| logs     | 日志文件目录,包含 ConfigNode 和 DataNode 的日志文件                        |
+| sbin     | 脚本目录,包含 ConfigNode 和 DataNode 的启停移除脚本,以及 Cli 的启动脚本等 |
+| tools    | 系统工具目录                                                            
    |
 
+### 配置文件
 
+**必要情况下,您需要根据业务需求,修改每个服务器上的配置文件。登录服务器,并将工作路径切换至 
`apache-iotdb-{version}-all-bin`,配置文件在 `./conf` 目录内。**
 
-### 软件目录结构
+* 对于所有部署 ConfigNode 的服务器,需要修改 **通用配置** 和 **ConfigNode 配置** 。
+* 对于所有部署 DataNode 的服务器,需要修改 **通用配置** 和 **DataNode 配置** 。
 
-* sbin 启动和停止脚本目录
-* conf 配置文件目录
-* tools 系统工具目录
-* lib 依赖包目录
+#### 通用配置
 
-### IoTDB 单机版试用
+打开通用配置文件 ./conf/iotdb-common.properties,可根据 
[部署推荐](https://iotdb.apache.org/zh/UserGuide/Master/Cluster/Deployment-Recommendation.html)设置以下参数:
 
-用户可以根据以下操作对 IoTDB 进行简单的试用,若以下操作均无误,则说明 IoTDB 安装成功。
+| **配置项**                                 | **说明**                             
                         | **默认**                                        |
+| ------------------------------------------ | 
------------------------------------------------------------- | 
----------------------------------------------- |
+| cluster\_name                              | 节点希望加入的集群的名称                    
                  | defaultCluster                                  |
+| config\_node\_consensus\_protocol\_class   | ConfigNode 使用的共识协议              
                       | org.apache.iotdb.consensus.ratis.RatisConsensus |
+| schema\_replication\_factor                | 元数据副本数,DataNode 数量不应少于此数目       
              | 1                                               |
+| schema\_region\_consensus\_protocol\_class | 元数据副本组的共识协议                     
                   | org.apache.iotdb.consensus.ratis.RatisConsensus |
+| data\_replication\_factor                  | 数据副本数,DataNode 数量不应少于此数目        
               | 1                                               |
+| data\_region\_consensus\_protocol\_class   | 数据副本组的共识协议。注:RatisConsensus 
目前不支持多数据目录 | org.apache.iotdb.consensus.iot.IoTConsensus     |
 
-#### 启动 IoTDB
+**注意:上述配置项在集群启动后即不可更改,且务必保证所有节点的通用配置完全一致,否则节点无法启动。**
 
-IoTDB 是一个基于分布式系统的数据库。要启动 IoTDB ,你可以先启动单机版(一个 ConfigNode 和一个 DataNode)来检查安装。
+#### ConfigNode 配置
 
-用户可以使用 sbin 文件夹下的 start-standalone 脚本启动 IoTDB。
+打开 ConfigNode 配置文件 ./conf/iotdb-confignode.properties,根据服务器/虚拟机的 IP 
地址和可用端口,设置以下参数:
+
+| **配置项**                     | **说明**                                         
            | **默认**        | **用法**                                            
                                                                                
                                            |
+| ------------------------------ | 
------------------------------------------------------------ | --------------- 
| 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| cn\_internal\_address          | ConfigNode 在集群内部通讯使用的地址                     
     | 127.0.0.1       | 设置为服务器的 IPV4 地址或域名                                     
                                                                                
                             |
+| cn\_internal\_port             | ConfigNode 在集群内部通讯使用的端口                     
     | 10710           | 设置为任意未占用端口                                             
                                                                                
                               |
+| cn\_consensus\_port            | ConfigNode 副本组共识协议通信使用的端口                   
   | 10720           | 设置为任意未占用端口                                               
                                                                                
                             |
+| cn\_target\_config\_node\_list | 节点注册加入集群时连接的 ConfigNode 的地址。注:只能配置一个 | 
127.0.0.1:10710 | 对于 Seed-ConfigNode,设置为自己的 
cn\_internal\_address:cn\_internal\_port;对于其它 ConfigNode,设置为另一个正在运行的 ConfigNode 
的 cn\_internal\_address:cn\_internal\_port |
+
+**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
+
+#### DataNode 配置
+
+打开 DataNode 配置文件 ./conf/iotdb-datanode.properties,根据服务器/虚拟机的 IP 地址和可用端口,设置以下参数:
+
+| **配置项**                          | **说明**                                  | 
**默认**        | **用法**                                                          
                                         |
+| ----------------------------------- | 
----------------------------------------- | --------------- | 
----------------------------------------------------------------------------------------------------------
 |
+| dn\_rpc\_address                    | 客户端 RPC 服务的地址                     | 
127.0.0.1       | 设置为服务器的 IPV4 地址或域名                                            
                                 |
+| dn\_rpc\_port                       | 客户端 RPC 服务的端口                     | 
6667            | 设置为任意未占用端口                                                    
                                   |
+| dn\_internal\_address               | DataNode 在集群内部接收控制流使用的地址   | 127.0.0.1 
      | 设置为服务器的 IPV4 地址或域名                                                      
                       |
+| dn\_internal\_port                  | DataNode 在集群内部接收控制流使用的端口   | 10730     
      | 设置为任意未占用端口                                                              
                         |
+| dn\_mpp\_data\_exchange\_port       | DataNode 在集群内部接收数据流使用的端口   | 10740     
      | 设置为任意未占用端口                                                              
                         |
+| dn\_data\_region\_consensus\_port   | DataNode 的数据副本间共识协议通信的端口   | 10750     
      | 设置为任意未占用端口                                                              
                         |
+| dn\_schema\_region\_consensus\_port | DataNode 的元数据副本间共识协议通信的端口 | 10760      
     | 设置为任意未占用端口                                                               
                        |
+| dn\_target\_config\_node\_list      | 集群中正在运行的 ConfigNode 地址          | 
127.0.0.1:10710 | 设置为任意正在运行的 ConfigNode 的 
cn\_internal\_address:cn\_internal\_port,可设置多个,用逗号(",")隔开 |
+
+**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
+
+### 环境检查
+
+**最后,在正式部署前,还需要对下列项目进行检查:**
+
+1. JDK>=1.8 的运行环境,并配置好 JAVA_HOME 环境变量。
+2. 设置最大文件打开数为 65535。
+3. 关闭交换内存。
+4. 首次启动 ConfigNode 节点时,确保已清空 ConfigNode 节点的 data/confignode 目录;首次启动 DataNode 
节点时,确保已清空 DataNode 节点的 data/datanode 目录。
+5. 如果整个集群处在可信环境下,可以关闭机器上的防火墙选项。
+6. 在集群默认配置中,ConfigNode 会占用端口 10710 和 10720,DataNode 会占用端口 
6667、10730、10740、10750 和 10760,请确保这些端口未被占用,或者手动修改配置文件中的端口配置。
+
+### FAQ
+
+在部署集群过程中有任何问题,请参考 
[分布式部署FAQ](https://iotdb.apache.org/zh/UserGuide/Master/FAQ/FAQ-for-cluster-setup.html)。
+
+## 单机版部署
+
+本小节描述如何启动包括 1 个 ConfigNode 和 1 个 DataNode 的实例。
+
+### 启动流程
+
+在完成配置文件的修改后(一般仅需要修改 IP 等信息) ,用户可以使用 sbin 文件夹下的 start-standalone 脚本启动 IoTDB。
 
 Linux 系统与 MacOS 系统启动命令如下:
 
@@ -67,31 +130,59 @@ Windows 系统启动命令如下:
 > sbin\start-standalone.bat
 ```
 
-注意:目前,要使用单机模式,你需要保证所有的地址设置为 127.0.0.1,如果需要从非 IoTDB 所在的机器访问此IoTDB,请将配置项 
`dn_rpc_address` 修改为 IoTDB 所在的机器 IP。副本数设置为1。并且,推荐使用 
SimpleConsensus,因为这会带来额外的效率。这些现在都是默认配置。
+注意:目前,要使用单机模式,你需要保证所有的地址设置为 127.0.0.1,如果需要从非 IoTDB 所在的机器访问此IoTDB,请将配置项 
`dn_rpc_address` 修改为 IoTDB 所在的机器 IP。
+
+### 验证部署
+
+若搭建的集群仅用于本地调试,可直接执行 ./sbin 目录下的 Cli 启动脚本:
+
+```
+# Linux
+./sbin/start-cli.sh
+
+# Windows
+.\sbin\start-cli.bat
+```
+
+若希望通过 Cli 连接生产环境的集群,
+请阅读 [Cli 
使用手册](https://iotdb.apache.org/zh/UserGuide/Master/QuickStart/Command-Line-Interface.html)。
 
-## 集群版部署
+成功启动集群后,在 Cli 执行 `show cluster details`:
+* 若所有节点的状态均为 **Running**,则说明集群部署成功;
+* 否则,请阅读启动失败节点的运行日志,并检查对应的配置参数。
 
-### 集群管理工具部署
+### 停止流程
 
-IoTDB 集群管理工具是一款易用的运维工具(企业版工具)。旨在解决 IoTDB 
分布式系统多节点的运维难题,主要包括集群部署、集群启停、弹性扩容、配置更新、数据导出等功能,从而实现对复杂数据库集群的一键式指令下发,极大降低管理难度。本文档将说明如何用集群管理工具远程部署、配置、启动和停止
 IoTDB 集群实例。
+Linux 系统与 MacOS 系统停止命令如下:
 
-#### 部署集群管理工具
+```
+> bash sbin/stop-standalone.sh
+```
 
-##### 环境依赖
+Windows 系统停止命令如下:
 
-IoTDB 要部署的机器需要依赖jdk 8及以上版本、lsof 或者 
netstat、unzip功能如果没有请自行安装,可以参考文档最后的一节环境所需安装命令。
+```
+> sbin\stop-standalone.bat
+```
+
+## 集群版部署(使用集群管理工具)
+
+IoTDB 集群管理工具是一款易用的运维工具(企业版工具)。
 
-提示:IoTDB集群管理工具需要使用具有root权限的账号
+IoTDB 集群管理工具旨在解决 IoTDB 分布式系统多节点的运维难题,主要包括集群部署、集群启停、弹性扩容、配置更新、数据导出等功能,
+从而实现对复杂数据库集群的一键式指令下发,极大降低管理难度。本文档将说明如何用集群管理工具远程部署、配置、启动和停止 IoTDB 集群实例。
 
-##### 部署方法
+### 环境准备
 
-###### 下载安装
+本工具为 IoTDB 企业版配套工具,您可以联系您的销售获取工具下载方式。
 
-本工具为IoTDB企业版配套工具,您可以联系您的销售获取工具下载方式。
+注意:
 
-注意:由于二进制包仅支持GLIBC2.17 及以上版本,因此最低适配Centos7版本
+* 需要依赖 jdk 8 及以上版本、lsof 或者 netstat、unzip 功能
+* 由于二进制包仅支持 GLIBC2.17 及以上版本,因此最低适配 Centos7 版本
+* 集群管理工具需要使用具有 root 权限的账号
 
-* 在在iotd目录内输入以下指令后:
+在 iotd 目录内输入以下指令后:
 
 ```bash
 bash install-iotd.sh
@@ -103,76 +194,78 @@ bash install-iotd.sh
 iotd cluster check example
 ```
 
-* 也可以不激活iotd直接使用  &lt;iotd absolute path&gt;/sbin/iotd 来执行命令,如检查部署前所需的环境:
+也可以不激活iotd直接使用  &lt;iotd absolute path&gt;/sbin/iotd 来执行命令,如检查部署前所需的环境:
 
 ```bash
 <iotd absolute path>/sbin/iotd cluster check example
 ```
 
-#### 集群配置文件介绍
+### 集群配置文件介绍
 
 * 在`iotd/config` 目录下有集群配置的yaml文件,yaml文件名字就是集群名字yaml 
文件可以有多个,为了方便用户配置yaml文件在iotd/config目录下面提供了`default_cluster.yaml`示例。
 * yaml 
文件配置由`global`、`confignode_servers`、`datanode_servers`、`grafana_servers`(功能待开发)四大部分组成
 * global 
是通用配置主要配置机器用户名密码、IoTDB本地安装文件、Jdk配置等。在`iotd/config`目录中提供了一个`default_cluster.yaml`样例数据,
-    
用户可以复制修改成自己集群名字并参考里面的说明进行配置iotdb集群,在`default_cluster.yaml`样例中没有注释的均为必填项,已经注释的为非必填项。
+  
用户可以复制修改成自己集群名字并参考里面的说明进行配置iotdb集群,在`default_cluster.yaml`样例中没有注释的均为必填项,已经注释的为非必填项。
 
 例如要执行`default_cluster.yaml`检查命令则需要执行命令`iotd cluster check default_cluster`即可,
 更多详细命令请参考下面命令列表。
 
-| 参数                       | 说明                                                
         | 是否必填 |
-| -------------------------- | 
------------------------------------------------------------ | -------- |
-| iotdb_zip_dir              | IoTDB 部署分发目录,如果值为空则从`iotdb_download_url`指定地址下载 
| 非必填   |
-| iotdb_download_url         | IoTDB 下载地址,如果`iotdb_zip_dir` 没有值则从指定地址下载   | 
非必填   |
-| jdk_tar_dir                | jdk 本地目录,可使用该 jdk 路径进行上传部署至目标节点。      | 非必填   |
-| jdk_deploy_dir             | jdk 远程机器部署目录,会将 jdk 
部署到目标节点该文件夹下最终部署完成的路径是`<jdk_deploy_dir>/jdk_iotdb` | 非必填   |
-| iotdb_lib_dir              | IoTDB lib 目录或者IoTDB 的lib 压缩包仅支持.zip格式 
,仅用于IoTDB升级,默认处于注释状态,如需升级请打开注释 | 非必填   |
-| user                       | ssh登陆部署机器的用户名                                   
   | 必填     |
-| password                   | ssh登录的密码, 如果password未指定使用pkey登陆, 
请确保已配置节点之间ssh登录免密钥 | 非必填   |
-| pkey                       | 密钥登陆如果password 有值优先使用password否则使用pkey登陆    | 
非必填   |
-| ssh_port                   | ssh登录端口                                         
         | 必填     |
-| deploy_dir                 | iotdb 部署目录,会把 iotdb 
部署到目标节点该文件夹下最终部署完成的路径是`<deploy_dir>/iotdb` | 必填     |
-| datanode-env.sh            | 对应`iotdb/config/datanode-env.sh`                
           | 非必填   |
-| confignode-env.sh          | 对应`iotdb/config/confignode-env.sh`              
           | 非必填   |
-| iotdb-common.properties    | 对应`iotdb/config/iotdb-common.properties`        
           | 非必填   |
+
+| 参数                       | 说明                                                
                                                                                
                                                                                
  | 是否必填 |
+| -------------------------- | 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | -------- |
+| iotdb_zip_dir              | IoTDB 部署分发目录,如果值为空则从`iotdb_download_url`指定地址下载  
                                                                                
                                                                  | 非必填   |
+| iotdb_download_url         | IoTDB 下载地址,如果`iotdb_zip_dir` 没有值则从指定地址下载        
                                                                                
                                                                    | 非必填   |
+| jdk_tar_dir                | jdk 本地目录,可使用该 jdk 路径进行上传部署至目标节点。                
                                                                                
                                                               | 非必填   |
+| jdk_deploy_dir             | jdk 远程机器部署目录,会将 jdk 
部署到目标节点该文件夹下最终部署完成的路径是`<jdk_deploy_dir>/jdk_iotdb`                              
                                                                                
 | 非必填   |
+| iotdb_lib_dir              | IoTDB lib 目录或者IoTDB 的lib 压缩包仅支持.zip格式 
,仅用于IoTDB升级,默认处于注释状态,如需升级请打开注释                                                  
                                                          | 非必填   |
+| user                       | ssh登陆部署机器的用户名                                   
                                                                                
                                                                            | 
必填     |
+| password                   | ssh登录的密码, 如果password未指定使用pkey登陆, 
请确保已配置节点之间ssh登录免密钥                                                              
                                                                        | 非必填   
|
+| pkey                       | 密钥登陆如果password 有值优先使用password否则使用pkey登陆         
                                                                                
                                                                    | 非必填   |
+| ssh_port                   | ssh登录端口                                         
                                                                                
                                                                                
  | 必填     |
+| deploy_dir                 | iotdb 部署目录,会把 iotdb 
部署到目标节点该文件夹下最终部署完成的路径是`<deploy_dir>/iotdb`                                      
                                                                                
     | 必填     |
+| datanode-env.sh            | 对应`iotdb/config/datanode-env.sh`                
                                                                                
                                                                                
    | 非必填   |
+| confignode-env.sh          | 对应`iotdb/config/confignode-env.sh`              
                                                                                
                                                                                
    | 非必填   |
+| iotdb-common.properties    | 对应`iotdb/config/iotdb-common.properties`        
                                                                                
                                                                                
    | 非必填   |
 | cn_target_config_node_list | 
集群配置地址指向存活的ConfigNode,默认指向confignode_x,在`global`与`confignode_servers`同时配置值时优先使用`confignode_servers`中的值,对应`iotdb/config/iotdb-confignode.properties`中的`cn_target_config_node_list`
 | 必填     |
-| dn_target_config_node_list | 
集群配置地址指向存活的ConfigNode,默认指向confignode_x,在`global`与`datanode_servers`同时配置值时优先使用`datanode_servers`中的值,对应`iotdb/config/iotdb-datanode.properties`中的`dn_target_config_node_list`
 | 必填     |
+| dn_target_config_node_list | 
集群配置地址指向存活的ConfigNode,默认指向confignode_x,在`global`与`datanode_servers`同时配置值时优先使用`datanode_servers`中的值,对应`iotdb/config/iotdb-datanode.properties`中的`dn_target_config_node_list`
       | 必填     |
 
 * confignode_servers 是部署IoTDB Confignodes配置,里面可以配置多个Confignode
-    默认将第一个启动的ConfigNode节点node1当作Seed-ConfigNode
-
-| 参数                        | 说明                                               
          | 是否必填 |
-| --------------------------- | 
------------------------------------------------------------ | -------- |
-| name                        | Confignode 名称                                  
            | 必填     |
-| deploy_dir                  | IoTDB config node 部署目录,注:该目录不能与下面的IoTDB data 
node部署目录相同 | 必填|   |
-| iotdb-confignode.properties | 
对应`iotdb/config/iotdb-confignode.properties`更加详细请参看`iotdb-confignode.properties`文件说明
 | 非必填   |
-| cn_internal_address         | 
对应iotdb/内部通信地址,对应`iotdb/config/iotdb-confignode.properties`中的`cn_internal_address`
 | 必填     |
-| cn_target_config_node_list  | 
集群配置地址指向存活的ConfigNode,默认指向confignode_x,在`global`与`confignode_servers`同时配置值时优先使用`confignode_servers`中的值,对应`iotdb/config/iotdb-confignode.properties`中的`cn_target_config_node_list`
 | 必填     |
-| cn_internal_port            | 
内部通信端口,对应`iotdb/config/iotdb-confignode.properties`中的`cn_internal_port` | 必填    
 |
-| cn_consensus_port           | 
对应`iotdb/config/iotdb-confignode.properties`中的`cn_consensus_port` | 非必填   |
-| cn_data_dir                 | 
对应`iotdb/config/iotdb-confignode.properties`中的`cn_data_dir` | 必填     |
-| iotdb-common.properties     | 
对应`iotdb/config/iotdb-common.properties`在`global`与`confignode_servers`同时配置值优先使用confignode_servers中的值
 | 非必填   |
+  默认将第一个启动的ConfigNode节点node1当作Seed-ConfigNode
+
 
+| 参数                        | 说明                                               
                                                                                
                                                                                
   | 是否必填 |
+| --------------------------- | 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | -------- |
+| name                        | Confignode 名称                                  
                                                                                
                                                                                
     | 必填     |
+| deploy_dir                  | IoTDB config node 部署目录,注:该目录不能与下面的IoTDB data 
node部署目录相同                                                                      
                                                                    | 必填|   |
+| iotdb-confignode.properties | 
对应`iotdb/config/iotdb-confignode.properties`更加详细请参看`iotdb-confignode.properties`文件说明
                                                                                
                                     | 非必填   |
+| cn_internal_address         | 
对应iotdb/内部通信地址,对应`iotdb/config/iotdb-confignode.properties`中的`cn_internal_address`
                                                                                
                                       | 必填     |
+| cn_target_config_node_list  | 
集群配置地址指向存活的ConfigNode,默认指向confignode_x,在`global`与`confignode_servers`同时配置值时优先使用`confignode_servers`中的值,对应`iotdb/config/iotdb-confignode.properties`中的`cn_target_config_node_list`
 | 必填     |
+| cn_internal_port            | 
内部通信端口,对应`iotdb/config/iotdb-confignode.properties`中的`cn_internal_port`         
                                                                                
                                           | 必填     |
+| cn_consensus_port           | 
对应`iotdb/config/iotdb-confignode.properties`中的`cn_consensus_port`               
                                                                                
                                                  | 非必填   |
+| cn_data_dir                 | 
对应`iotdb/config/iotdb-confignode.properties`中的`cn_data_dir`                     
                                                                                
                                                  | 必填     |
+| iotdb-common.properties     | 
对应`iotdb/config/iotdb-common.properties`在`global`与`confignode_servers`同时配置值优先使用confignode_servers中的值
                                                                                
                  | 非必填   |
 
 * datanode_servers 是部署IoTDB Datanodes配置,里面可以配置多个Datanode
 
-| 参数                       | 说明                                                
         | 是否必填 |
-| -------------------------- | 
------------------------------------------------------------ | -------- |
-| name                       | Datanode 名称                                     
           | 必填     |
-| deploy_dir                 | IoTDB data node 部署目录,注:该目录不能与下面的IoTDB config 
node部署目录相同 | 必填     |
-| iotdb-datanode.properties  | 
对应`iotdb/config/iotdb-datanode.properties`更加详细请参看`iotdb-datanode.properties`文件说明
 | 非必填   |
-| dn_rpc_address             | datanode rpc 
地址对应`iotdb/config/iotdb-datanode.properties`中的`dn_rpc_address` | 必填     |
-| dn_internal_address        | 
内部通信地址,对应`iotdb/config/iotdb-datanode.properties`中的`dn_internal_address` | 必填   
  |
+
+| 参数                       | 说明                                                
                                                                                
                                                                            | 
是否必填 |
+| -------------------------- | 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | -------- |
+| name                       | Datanode 名称                                     
                                                                                
                                                                              | 
必填     |
+| deploy_dir                 | IoTDB data node 部署目录,注:该目录不能与下面的IoTDB config 
node部署目录相同                                                                      
                                                              | 必填     |
+| iotdb-datanode.properties  | 
对应`iotdb/config/iotdb-datanode.properties`更加详细请参看`iotdb-datanode.properties`文件说明
                                                                                
                                   | 非必填   |
+| dn_rpc_address             | datanode rpc 
地址对应`iotdb/config/iotdb-datanode.properties`中的`dn_rpc_address`                  
                                                                                
                             | 必填     |
+| dn_internal_address        | 
内部通信地址,对应`iotdb/config/iotdb-datanode.properties`中的`dn_internal_address`        
                                                                                
                                     | 必填     |
 | dn_target_config_node_list | 
集群配置地址指向存活的ConfigNode,默认指向confignode_x,在`global`与`datanode_servers`同时配置值时优先使用`datanode_servers`中的值,对应`iotdb/config/iotdb-datanode.properties`中的`dn_target_config_node_list`
 | 必填     |
-| dn_rpc_port                | datanode 
rpc端口地址,对应`iotdb/config/iotdb-datanode.properties`中的`dn_rpc_port` | 必填     |
-| dn_internal_port           | 
内部通信端口,对应`iotdb/config/iotdb-datanode.properties`中的`dn_internal_port` | 必填     |
-| iotdb-common.properties    | 
对应`iotdb/config/iotdb-common.properties`在`global`与`datanode_servers`同时配置值优先使用`datanode_servers`中的值
 | 非必填   |
+| dn_rpc_port                | datanode 
rpc端口地址,对应`iotdb/config/iotdb-datanode.properties`中的`dn_rpc_port`               
                                                                                
                              | 必填     |
+| dn_internal_port           | 
内部通信端口,对应`iotdb/config/iotdb-datanode.properties`中的`dn_internal_port`           
                                                                                
                                     | 必填     |
+| iotdb-common.properties    | 
对应`iotdb/config/iotdb-common.properties`在`global`与`datanode_servers`同时配置值优先使用`datanode_servers`中的值
                                                                                
              | 非必填   |
 
 * grafana_servers 是部署Grafana 相关配置
-    该模块暂不支持
+  该模块暂不支持
 
 注意:如何配置yaml key对应的值包含特殊字符如:等建议整个value使用双引号,对应的文件路径中不要使用包含空格的路径,防止出现识别出现异常问题。
 
-#### 命令格式
+### 命令基本用法介绍
 
 本工具的基本用法为:
 
@@ -181,11 +274,8 @@ iotd cluster <key> <cluster name> [params (Optional)]
 ```
 
 * key 表示了具体的命令。
-
 * cluster name 表示集群名称(即`iotd/config` 文件中yaml文件名字)。
-
 * params 表示了命令的所需参数(选填)。
-
 * 例如部署default_cluster集群的命令格式为:
 
 ```bash
@@ -194,75 +284,65 @@ iotd cluster deploy default_cluster
 
 * 集群的功能及参数列表如下:
 
-| 命令       | 功能                                          | 参数                  
                                       |
-| ---------- | --------------------------------------------- | 
------------------------------------------------------------ |
-| check      | 检测集群是否可以部署                          | 集群名称列表                    
                             |
-| clean      | 清理集群                                      | 集群名称                
                                     |
-| deploy     | 部署集群                                      | 集群名称                
                                     |
-| list       | 打印集群及状态列表                            | 无                        
                                   |
-| start      | 启动集群                                      | 集群名称,-N,节点名称(可选)    
                               |
-| stop       | 关闭集群                                      | 集群名称,-N,节点名称(可选)    
                               |
-| restart    | 重启集群                                      | 集群名称                
                                     |
-| show       | 查看集群信息,details字段表示展示集群信息细节 | 集群名称, details(可选)                  
                    |
-| destroy    | 销毁集群                                      | 集群名称                
                                     |
-| scaleout   | 集群扩容                                      | 集群名称                
                                     |
-| scalein    | 集群缩容                                      | 
集群名称,-N,集群节点名字或集群节点ip+port                  |
-| reload     | 集群热加载                                    | 集群名称                 
                                    |
-| distribute | 集群配置文件分发                              | 集群名称                    
                                 |
+
+| 命令       | 功能                                          | 参数                  
                                                                                
                                                                          |
+| ---------- | --------------------------------------------- | 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| check      | 检测集群是否可以部署                          | 集群名称列表                    
                                                                                
                                                                |
+| clean      | 清理集群                                      | 集群名称                
                                                                                
                                                                        |
+| deploy     | 部署集群                                      | 集群名称                
                                                                                
                                                                        |
+| list       | 打印集群及状态列表                            | 无                        
                                                                                
                                                                      |
+| start      | 启动集群                                      | 集群名称,-N,节点名称(可选)    
                                                                                
                                                                  |
+| stop       | 关闭集群                                      | 集群名称,-N,节点名称(可选)    
                                                                                
                                                                  |
+| restart    | 重启集群                                      | 集群名称                
                                                                                
                                                                        |
+| show       | 查看集群信息,details字段表示展示集群信息细节 | 集群名称, details(可选)                  
                                                                                
                                                       |
+| destroy    | 销毁集群                                      | 集群名称                
                                                                                
                                                                        |
+| scaleout   | 集群扩容                                      | 集群名称                
                                                                                
                                                                        |
+| scalein    | 集群缩容                                      | 
集群名称,-N,集群节点名字或集群节点ip+port                                                      
                                                                               |
+| reload     | 集群热加载                                    | 集群名称                 
                                                                                
                                                                       |
+| distribute | 集群配置文件分发                              | 集群名称                    
                                                                                
                                                                    |
 | dumplog    | 备份指定集群日志                              | 集群名称,-N,集群节点名字 -h 
备份至目标机器ip -pw 备份至目标机器密码 -p 备份至目标机器端口 -path 备份的目录 -startdate 起始时间 -enddate 结束时间 
-loglevel 日志类型 -l 传输速度 |
-| dumpdata   | 备份指定集群数据                              | 集群名称, -h 备份至目标机器ip -pw 
备份至目标机器密码 -p 备份至目标机器端口 -path 备份的目录 -startdate 起始时间 -enddate 结束时间  -l 传输速度 |
-| upgrade    | lib 包升级                                    | 集群名字(升级完后请重启)      
                               |
+| dumpdata   | 备份指定集群数据                              | 集群名称, -h 备份至目标机器ip -pw 
备份至目标机器密码 -p 备份至目标机器端口 -path 备份的目录 -startdate 起始时间 -enddate 结束时间  -l 传输速度       
                           |
+| upgrade    | lib 包升级                                    | 集群名字(升级完后请重启)      
                                                                                
                                                                  |
 
-#### 详细命令执行过程
+### 命令详细执行过程解读
 
-下面的命令都是以default_cluster.yaml 为示例执行的,用户可以修改成自己的集群文件来执行
+下面的命令都是以 default_cluster.yaml 为示例执行的,用户可以修改成自己的集群文件来执行
 
-##### 检查集群部署环境命令
+#### 检查集群部署环境命令
 
 ```bash
 iotd cluster check default_cluster
 ```
 
 * 根据 cluster-name 找到默认位置的 yaml 文件,获取`confignode_servers`和`datanode_servers`配置信息
-
 * 验证目标节点是否能够通过 SSH 登录
-
-* 验证对应节点上的 JDK 版本是否满足IoTDB jdk1.8及以上版本、服务器是否按照unzip、是否安装lsof 或者netstat 
-
+* 验证对应节点上的 JDK 版本是否满足IoTDB jdk1.8及以上版本、服务器是否按照unzip、是否安装lsof 或者netstat
 * 如果看到下面提示`Info:example check successfully!` 证明服务器已经具备安装的要求,
-    如果输出`Warn:example check fail!` 
证明有部分条件没有满足需求可以查看上面的Warn日志进行修复,假如jdk没有满足要求,我们可以自己在yaml 文件中配置一个jdk1.8 
及以上版本的进行部署不影响后面使用,如果检查lsof、netstat或者unzip 不满足要求需要在服务器上自行安装
-
+  如果输出`Warn:example check fail!` 
证明有部分条件没有满足需求可以查看上面的Warn日志进行修复,假如jdk没有满足要求,我们可以自己在yaml 文件中配置一个jdk1.8 
及以上版本的进行部署不影响后面使用,如果检查lsof、netstat或者unzip 不满足要求需要在服务器上自行安装
 
-##### 部署集群命令
+#### 部署集群命令
 
 ```bash
 iotd cluster deploy default_cluster
 ```
 
 * 根据 cluster-name 找到默认位置的 yaml 文件,获取`confignode_servers`和`datanode_servers`配置信息
-
 * 根据`confignode_servers` 
和`datanode_servers`中的节点信息上传iotdb压缩包和jdk压缩包(如果yaml中配置`jdk_tar_dir`和`jdk_deploy_dir`值)
-
 * 
根据yaml文件节点配置信息生成并上传`iotdb-common.properties`、`iotdb-confignode.properties`、`iotdb-datanode.properties`
 
 提示:这里的confignode 和datanode部署到同一台机器上时目录不能为相同,否则会被后部署的节点文件覆盖
 
-
-##### 启动集群命令
+#### 启动集群命令
 
 ```bash
 iotd cluster check default_cluster
 ```
 
 * 根据 cluster-name 找到默认位置的 yaml 文件,获取`confignode_servers`和`datanode_servers`配置信息
-
 * 
启动confignode,根据yaml配置文件中`confignode_servers`中的顺序依次启动同时根据进程id检查confignode是否正常,第一个confignode
 为seek config
-
 * 启动datanode,根据yaml配置文件中`datanode_servers`中的顺序依次启动同时根据进程id检查datanode是否正常
-
 * 如果根据进程id检查进程存在后,通过cli依次检查集群列表中每个服务是否正常,如果cli链接失败则每隔10s重试一次直到成功最多重试5次
 
-
 *启动单个节点命令*
 
 ```bash
@@ -276,13 +356,11 @@ iotd cluster start default_cluster -N 192.168.1.5:6667
 ```
 
 * 根据 cluster-name 找到默认位置的 yaml 文件
-
 * 根据提供的节点名称或者ip:port找到对于节点位置信息,如果启动的节点是`data_node`则ip使用yaml 
文件中的`dn_rpc_address`、port 使用的是yaml文件中datanode_servers 中的`dn_rpc_port`。
-    如果启动的节点是`config_node`则ip使用的是yaml文件中confignode_servers 
中的`cn_internal_address` 、port 使用的是`cn_internal_port`
-
+  如果启动的节点是`config_node`则ip使用的是yaml文件中confignode_servers 
中的`cn_internal_address` 、port 使用的是`cn_internal_port`
 * 启动该节点
 
-##### 查看集群状态命令
+#### 查看集群状态命令
 
 ```bash
 iotd cluster show default_cluster
@@ -295,23 +373,18 @@ iotd cluster show default_cluster details
 ```
 
 * 根据 cluster-name 找到默认位置的 yaml 文件,获取`confignode_servers`和`datanode_servers`配置信息
-
 * 依次在datanode通过cli执行`show cluster details` 如果有一个节点执行成功则不会在后续节点继续执行cli直接返回结果
 
-
-##### 停止集群命令
+#### 停止集群命令
 
 ```bash
 iotd cluster stop default_cluster
 ```
 
 * 根据 cluster-name 找到默认位置的 yaml 文件,获取`confignode_servers`和`datanode_servers`配置信息
-
 * 根据`datanode_servers`中datanode节点信息,按照配置先后顺序依次停止datanode节点
-
 * 根据`confignode_servers`中confignode节点信息,按照配置依次停止confignode节点
 
-
 *停止单个节点命令*
 
 ```bash
@@ -325,150 +398,16 @@ iotd cluster stop default_cluster -N 192.168.1.5:6667
 ```
 
 * 根据 cluster-name 找到默认位置的 yaml 文件
-
 * 根据提供的节点名称或者ip:port找到对于节点位置信息,如果停止的节点是`data_node`则ip使用yaml 
文件中的`dn_rpc_address`、port 使用的是yaml文件中datanode_servers 中的`dn_rpc_port`。
-    如果停止的节点是`config_node`则ip使用的是yaml文件中confignode_servers 
中的`cn_internal_address` 、port 使用的是`cn_internal_port`
-
+  如果停止的节点是`config_node`则ip使用的是yaml文件中confignode_servers 
中的`cn_internal_address` 、port 使用的是`cn_internal_port`
 * 停止该节点
 
-## 手动部署
-
-### 前置检查
-
-1. JDK>=1.8 的运行环境,并配置好 JAVA_HOME 环境变量。
-2. 设置最大文件打开数为 65535。
-3. 关闭交换内存。
-4. 
首次启动ConfigNode节点时,确保已清空ConfigNode节点的data/confignode目录;首次启动DataNode节点时,确保已清空DataNode节点的data/datanode目录。
-5. 如果整个集群处在可信环境下,可以关闭机器上的防火墙选项。
-6. 在集群默认配置中,ConfigNode 会占用端口 10710 和 10720,DataNode 会占用端口 
6667、10730、10740、10750 和 10760,
-    请确保这些端口未被占用,或者手动修改配置文件中的端口配置。
-
-### 安装包获取
-
-你可以选择下载二进制文件(见 3.1)或从源代码编译(见 3.2)。
-
-#### 下载二进制文件
-
-1. 打开官网[Download Page](https://iotdb.apache.org/Download/)。
-2. 下载 IoTDB 1.0.0 版本的二进制文件。
-3. 解压得到 apache-iotdb-1.0.0-all-bin 目录。
-
-#### 使用源码编译
-
-##### 下载源码
-
-**Git**
-
-```
-git clone https://github.com/apache/iotdb.git
-git checkout v1.0.0
-```
-
-**官网下载**
-
-1. 打开官网[Download Page](https://iotdb.apache.org/Download/)。
-2. 下载 IoTDB 1.0.0 版本的源码。
-3. 解压得到 apache-iotdb-1.0.0 目录。
-
-##### 编译源码
-
-在 IoTDB 源码根目录下:
-
-```
-mvn clean package -pl distribution -am -DskipTests
-```
-
-编译成功后,可在目录 
-**distribution/target/apache-iotdb-1.0.0-SNAPSHOT-all-bin/apache-iotdb-1.0.0-SNAPSHOT-all-bin**
 
-找到集群版本的二进制文件。
-
-### 安装包说明
-
-打开 apache-iotdb-1.0.0-SNAPSHOT-all-bin,可见以下目录:
-
-| **目录** | **说明**                                                     |
-| -------- | ------------------------------------------------------------ |
-| conf     | 配置文件目录,包含 ConfigNode、DataNode、JMX 和 logback 等配置文件 |
-| data     | 数据文件目录,包含 ConfigNode 和 DataNode 的数据文件         |
-| lib      | 库文件目录                                                   |
-| licenses | 证书文件目录                                                 |
-| logs     | 日志文件目录,包含 ConfigNode 和 DataNode 的日志文件         |
-| sbin     | 脚本目录,包含 ConfigNode 和 DataNode 的启停移除脚本,以及 Cli 的启动脚本等 |
-| tools    | 系统工具目录                                                 |
-
-### 集群安装配置
-
-#### 集群安装
-
-`apache-iotdb-1.0.0-SNAPSHOT-all-bin` 包含 ConfigNode 和 DataNode,
-请将安装包部署于你目标集群的所有机器上,推荐将安装包部署于所有服务器的相同目录下。
-
-如果你希望先在一台服务器上尝试部署 IoTDB 集群,请参考
-[Cluster Quick 
Start](https://iotdb.apache.org/zh/UserGuide/Master/QuickStart/ClusterQuickStart.html)。
-
-#### 集群配置
-
-接下来需要修改每个服务器上的配置文件,登录服务器,
-并将工作路径切换至 `apache-iotdb-1.0.0-SNAPSHOT-all-bin`,
-配置文件在 `./conf` 目录内。
-
-对于所有部署 ConfigNode 的服务器,需要修改通用配置(见 5.2.1)和 ConfigNode 配置(见 5.2.2)。
-
-对于所有部署 DataNode 的服务器,需要修改通用配置(见 5.2.1)和 DataNode 配置(见 5.2.3)。
-
-##### 通用配置
-
-打开通用配置文件 ./conf/iotdb-common.properties,
-可根据 
[部署推荐](https://iotdb.apache.org/zh/UserGuide/Master/Cluster/Deployment-Recommendation.html)
-设置以下参数:
-
-| **配置项**                                 | **说明**                             
                        | **默认**                                        |
-| ------------------------------------------ | 
------------------------------------------------------------ | 
----------------------------------------------- |
-| cluster\_name                              | 节点希望加入的集群的名称                    
                 | defaultCluster                                  |
-| config\_node\_consensus\_protocol\_class   | ConfigNode 使用的共识协议              
                      | org.apache.iotdb.consensus.ratis.RatisConsensus |
-| schema\_replication\_factor                | 元数据副本数,DataNode 数量不应少于此数目       
             | 1                                               |
-| schema\_region\_consensus\_protocol\_class | 元数据副本组的共识协议                     
                  | org.apache.iotdb.consensus.ratis.RatisConsensus |
-| data\_replication\_factor                  | 数据副本数,DataNode 数量不应少于此数目        
              | 1                                               |
-| data\_region\_consensus\_protocol\_class   | 数据副本组的共识协议。注:RatisConsensus 
目前不支持多数据目录 | org.apache.iotdb.consensus.iot.IoTConsensus     |
-
-**注意:上述配置项在集群启动后即不可更改,且务必保证所有节点的通用配置完全一致,否则节点无法启动。**
-
-##### ConfigNode 配置
+## 集群版部署(手工部署)
 
-打开 ConfigNode 配置文件 ./conf/iotdb-confignode.properties,根据服务器/虚拟机的 IP 
地址和可用端口,设置以下参数:
-
-| **配置项**                     | **说明**                                         
            | **默认**        | **用法**                                            
         |
-| ------------------------------ | 
------------------------------------------------------------ | --------------- 
| ------------------------------------------------------------ |
-| cn\_internal\_address          | ConfigNode 在集群内部通讯使用的地址                     
     | 127.0.0.1       | 设置为服务器的 IPV4 地址或域名                               |
-| cn\_internal\_port             | ConfigNode 在集群内部通讯使用的端口                     
     | 10710           | 设置为任意未占用端口                                         |
-| cn\_consensus\_port            | ConfigNode 副本组共识协议通信使用的端口                   
   | 10720           | 设置为任意未占用端口                                         |
-| cn\_target\_config\_node\_list | 节点注册加入集群时连接的 ConfigNode 的地址。注:只能配置一个 | 
127.0.0.1:10710 | 对于 Seed-ConfigNode,设置为自己的 
cn\_internal\_address:cn\_internal\_port;对于其它 ConfigNode,设置为另一个正在运行的 ConfigNode 
的 cn\_internal\_address:cn\_internal\_port |
-
-**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
-
-##### DataNode 配置
-
-打开 DataNode 配置文件 ./conf/iotdb-datanode.properties,根据服务器/虚拟机的 IP 地址和可用端口,设置以下参数:
-
-| **配置项**                          | **说明**                                  | 
**默认**        | **用法**                                                     |
-| ----------------------------------- | 
----------------------------------------- | --------------- | 
------------------------------------------------------------ |
-| dn\_rpc\_address                    | 客户端 RPC 服务的地址                     | 
127.0.0.1       | 设置为服务器的 IPV4 地址或域名                               |
-| dn\_rpc\_port                       | 客户端 RPC 服务的端口                     | 
6667            | 设置为任意未占用端口                                         |
-| dn\_internal\_address               | DataNode 在集群内部接收控制流使用的地址   | 127.0.0.1 
      | 设置为服务器的 IPV4 地址或域名                               |
-| dn\_internal\_port                  | DataNode 在集群内部接收控制流使用的端口   | 10730     
      | 设置为任意未占用端口                                         |
-| dn\_mpp\_data\_exchange\_port       | DataNode 在集群内部接收数据流使用的端口   | 10740     
      | 设置为任意未占用端口                                         |
-| dn\_data\_region\_consensus\_port   | DataNode 的数据副本间共识协议通信的端口   | 10750     
      | 设置为任意未占用端口                                         |
-| dn\_schema\_region\_consensus\_port | DataNode 的元数据副本间共识协议通信的端口 | 10760      
     | 设置为任意未占用端口                                         |
-| dn\_target\_config\_node\_list      | 集群中正在运行的 ConfigNode 地址          | 
127.0.0.1:10710 | 设置为任意正在运行的 ConfigNode 的 
cn\_internal\_address:cn\_internal\_port,可设置多个,用逗号(",")隔开 |
-
-**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
-
-### 集群操作
-
-#### 启动集群
+### 启动流程
 
 本小节描述如何启动包括若干 ConfigNode 和 DataNode 的集群。
-集群可以提供服务的标准是至少启动一个 ConfigNode 且启动 不小于(数据/元数据)副本个数 的 DataNode。
+集群可以提供服务的标准是至少启动一个 ConfigNode 且启动不小于(数据/元数据)副本个数的 DataNode。
 
 总体启动流程分为三步:
 
@@ -476,7 +415,7 @@ mvn clean package -pl distribution -am -DskipTests
 2. 增加 ConfigNode(可选)
 3. 增加 DataNode
 
-##### 启动 Seed-ConfigNode
+#### 启动 Seed-ConfigNode
 
 **集群第一个启动的节点必须是 ConfigNode,第一个启动的 ConfigNode 必须遵循本小节教程。**
 
@@ -496,11 +435,12 @@ mvn clean package -pl distribution -am -DskipTests
 
 接着请打开它的配置文件 ./conf/iotdb-confignode.properties,并检查如下参数:
 
-| **配置项**                     | **检查**                                         
            |
-| ------------------------------ | 
------------------------------------------------------------ |
-| cn\_internal\_address          | 已设置为服务器的 IPV4 地址或域名                         
    |
-| cn\_internal\_port             | 该端口未被占用                                     
          |
-| cn\_consensus\_port            | 该端口未被占用                                     
          |
+
+| **配置项**                     | **检查**                                         
                       |
+| ------------------------------ | 
----------------------------------------------------------------------- |
+| cn\_internal\_address          | 已设置为服务器的 IPV4 地址或域名                         
               |
+| cn\_internal\_port             | 该端口未被占用                                     
                     |
+| cn\_consensus\_port            | 该端口未被占用                                     
                     |
 | cn\_target\_config\_node\_list | 已设置为自己的内部通讯地址,即 
cn\_internal\_address:cn\_internal\_port |
 
 检查完毕后,即可在服务器上运行启动脚本:
@@ -519,7 +459,7 @@ nohup bash ./sbin/start-confignode.sh >/dev/null 2>&1 &
 ConfigNode 的其它配置参数可参考
 [ConfigNode 
配置参数](https://iotdb.apache.org/zh/UserGuide/Master/Reference/ConfigNode-Config-Manual.html)。
 
-##### 增加更多 ConfigNode(可选)
+#### 增加更多 ConfigNode(可选)
 
 **只要不是第一个启动的 ConfigNode 就必须遵循本小节教程。**
 
@@ -539,11 +479,11 @@ ConfigNode 的其它配置参数可参考
 
 接着请打开它的配置文件 ./conf/iotdb-confignode.properties,并检查以下参数:
 
-| **配置项**                     | **检查**                                         
            |
-| ------------------------------ | 
------------------------------------------------------------ |
-| cn\_internal\_address          | 已设置为服务器的 IPV4 地址或域名                         
    |
-| cn\_internal\_port             | 该端口未被占用                                     
          |
-| cn\_consensus\_port            | 该端口未被占用                                     
          |
+| **配置项**                     | **检查**                                         
                                           |
+| ------------------------------ | 
-------------------------------------------------------------------------------------------
 |
+| cn\_internal\_address          | 已设置为服务器的 IPV4 地址或域名                         
                                   |
+| cn\_internal\_port             | 该端口未被占用                                     
                                         |
+| cn\_consensus\_port            | 该端口未被占用                                     
                                         |
 | cn\_target\_config\_node\_list | 已设置为另一个正在运行的 ConfigNode 的内部通讯地址,推荐使用 
Seed-ConfigNode 的内部通讯地址 |
 
 检查完毕后,即可在服务器上运行启动脚本:
@@ -562,28 +502,30 @@ nohup bash ./sbin/start-confignode.sh >/dev/null 2>&1 &
 ConfigNode 的其它配置参数可参考
 
[ConfigNode配置参数](https://iotdb.apache.org/zh/UserGuide/Master/Reference/ConfigNode-Config-Manual.html)。
 
-##### 增加 DataNode
+#### 增加 DataNode
 
 **确保集群已有正在运行的 ConfigNode 后,才能开始增加 DataNode。**
 
 可以向集群中添加任意个 DataNode。
 在添加新的 DataNode 前,请先打开通用配置文件 ./conf/iotdb-common.properties 并检查以下参数:
 
+
 | **配置项**    | **检查**                    |
 | ------------- | --------------------------- |
 | cluster\_name | 与 Seed-ConfigNode 保持一致 |
 
 接着打开它的配置文件 ./conf/iotdb-datanode.properties 并检查以下参数:
 
-| **配置项**                          | **检查**                                    
                 |
-| ----------------------------------- | 
------------------------------------------------------------ |
-| dn\_rpc\_address                    | 已设置为服务器的 IPV4 地址或域名                    
         |
-| dn\_rpc\_port                       | 该端口未被占用                                
               |
-| dn\_internal\_address               | 已设置为服务器的 IPV4 地址或域名                    
         |
-| dn\_internal\_port                  | 该端口未被占用                                
               |
-| dn\_mpp\_data\_exchange\_port       | 该端口未被占用                                
               |
-| dn\_data\_region\_consensus\_port   | 该端口未被占用                                
               |
-| dn\_schema\_region\_consensus\_port | 该端口未被占用                                
               |
+
+| **配置项**                          | **检查**                                    
                                          |
+| ----------------------------------- | 
-------------------------------------------------------------------------------------
 |
+| dn\_rpc\_address                    | 已设置为服务器的 IPV4 地址或域名                    
                                  |
+| dn\_rpc\_port                       | 该端口未被占用                                
                                        |
+| dn\_internal\_address               | 已设置为服务器的 IPV4 地址或域名                    
                                  |
+| dn\_internal\_port                  | 该端口未被占用                                
                                        |
+| dn\_mpp\_data\_exchange\_port       | 该端口未被占用                                
                                        |
+| dn\_data\_region\_consensus\_port   | 该端口未被占用                                
                                        |
+| dn\_schema\_region\_consensus\_port | 该端口未被占用                                
                                        |
 | dn\_target\_config\_node\_list      | 已设置为正在运行的 ConfigNode 的内部通讯地址,推荐使用 
Seed-ConfigNode 的内部通讯地址 |
 
 检查完毕后,即可在服务器上运行启动脚本:
@@ -604,7 +546,7 @@ DataNode 的其它配置参数可参考
 
 **注意:当且仅当集群拥有不少于副本个数(max{schema\_replication\_factor, 
data\_replication\_factor})的 DataNode 后,集群才可以提供服务**
 
-#### 启动 Cli
+### 验证部署
 
 若搭建的集群仅用于本地调试,可直接执行 ./sbin 目录下的 Cli 启动脚本:
 
@@ -619,13 +561,12 @@ DataNode 的其它配置参数可参考
 若希望通过 Cli 连接生产环境的集群,
 请阅读 [Cli 
使用手册](https://iotdb.apache.org/zh/UserGuide/Master/QuickStart/Command-Line-Interface.html)。
 
-#### 验证集群
 
 以在6台服务器上启动的3C3D(3个ConfigNode 和 3个DataNode)集群为例,
 
这里假设3个ConfigNode的IP地址依次为192.168.1.10、192.168.1.11、192.168.1.12,且3个ConfigNode启动时均使用了默认的端口10710与10720;
 
3个DataNode的IP地址依次为192.168.1.20、192.168.1.21、192.168.1.22,且3个DataNode启动时均使用了默认的端口6667、10730、10740、10750与10760。
 
-当按照6.1步骤成功启动集群后,在 Cli 执行 `show cluster details`,看到的结果应当如下:
+成功启动集群后,在 Cli 执行 `show cluster details`,看到的结果应当如下:
 
 ```
 IoTDB> show cluster details
@@ -646,11 +587,11 @@ It costs 0.012s
 若所有节点的状态均为 **Running**,则说明集群部署成功;
 否则,请阅读启动失败节点的运行日志,并检查对应的配置参数。
 
-#### 停止 IoTDB 进程
+### 停止流程
 
 本小节描述如何手动关闭 IoTDB 的 ConfigNode 或 DataNode 进程。
 
-##### 使用脚本停止 ConfigNode
+#### 使用脚本停止 ConfigNode
 
 执行停止 ConfigNode 脚本:
 
@@ -662,7 +603,7 @@ It costs 0.012s
 .\sbin\stop-confignode.bat
 ```
 
-##### 使用脚本停止 DataNode
+#### 使用脚本停止 DataNode
 
 执行停止 DataNode 脚本:
 
@@ -674,7 +615,7 @@ It costs 0.012s
 .\sbin\stop-datanode.bat
 ```
 
-##### 停止节点进程
+#### 停止节点进程
 
 首先获取节点的进程号:
 
@@ -694,11 +635,11 @@ kill -9 <pid>
 
 **注意:有些端口的信息需要 root 权限才能获取,在此情况下请使用 sudo**
 
-#### 集群缩容
+### 集群缩容
 
 本小节描述如何将 ConfigNode 或 DataNode 移出集群。
 
-##### 移除 ConfigNode
+#### 移除 ConfigNode
 
 在移除 ConfigNode 前,请确保移除后集群至少还有一个活跃的 ConfigNode。
 在活跃的 ConfigNode 上执行 remove-confignode 脚本:
@@ -720,7 +661,7 @@ kill -9 <pid>
 .\sbin\remove-confignode.bat <cn_internal_address>:<cn_internal_port>
 ```
 
-##### 移除 DataNode
+#### 移除 DataNode
 
 在移除 DataNode 前,请确保移除后集群至少还有不少于(数据/元数据)副本个数的 DataNode。
 在活跃的 DataNode 上执行 remove-datanode 脚本:
@@ -742,6 +683,89 @@ kill -9 <pid>
 .\sbin\remove-datanode.bat <dn_rpc_address>:<dn_rpc_port>
 ```
 
-### 常见问题
+## 双活版部署
+
+IoTDB 的双活集群指的是两个独立的集群,它们的配置完全独立,可以同时接收外界的写入,每一个独立的集群都可以将写入到自己数据同步到另一个集群中,
+两个集群的数据可达到最终一致。
+
+两个集群可构成一个高可用组:当其中一个集群停止服务时,另一个集群不会受到影响。当停止服务的集群再次启动时,另一个集群会将新写入的数据同步过来。
+业务可以绑定两个集群进行读写,从而达到高可用的目的。
+
+双活集群的部署方案允许在物理节点少于 3 的情况下实现高可用,在部署成本上具备一定优势。
+
+### 启动流程
+
+IoTDB 双活集群的启动步骤如下:
+
+1. 启动集群 A 和集群 B。集群 A 和集群 B 可以是单机部署模式,也可以是分布式部署模式。具体的部署方式见上文。
+2. 使用 sbin/cli 工具,分别连接上两个集群,为两个集群创建并启动 Pipe,SQL 如下:
+
+   a.集群A:
+
+   ```SQL
+   create pipe atob 
+   with extractor (
+       'extractor'='iotdb-extractor', 
+       'extractor.forwarding-pipe-requests'='false'
+   ) 
+   with connector (
+       'connector'='iotdb-thrift-connector',
+       'connector.node-urls'='<B集群地址>'
+   );
+
+   start pipe atob;
+   ```
+
+   b.集群B:
+
+   ```SQL
+   create pipe btoa 
+   with extractor (
+       'extractor'='iotdb-extractor', 
+       'extractor.forwarding-pipe-requests'='false'
+   ) 
+   with connector (
+       'connector'='iotdb-thrift-connector',
+       'connector.node-urls'='<A集群地址>'
+   );
+
+   start pipe btoa;
+   ```
+
+即可成功启动双活集群。
+
+**推荐 A、B 集群的各项配置保持一致,以实现最佳的双活效果。**
+
+### 验证部署
+
+在 A、B 集群的 cli 工具中执行下列两个检查语句:
+
+1. 检查集群运行状态
+
+   ```sql
+   show cluster details
+   ```
+
+   确保每一个 ConfigNode 和 DataNode 都处于 Running 状态。
+2. 检查数据同步状态
+
+   ```sql
+   show pipes
+   ```
+
+   确保每一个 Pipe 都处于 RUNNING 状态。
+
+### 停止流程
+
+如果想要解除两个集群的双活绑定关系,那么:
+
+1. 在 A 集群的 cli 工具中执行下列命令:
+   ```sql
+   stop pipe atob;
+   ```
+2. 在 B 集群的 cli 工具中执行下列命令:
+   ```sql
+   stop pipe btoa;
+   ```
 
-请参考 
[分布式部署FAQ](https://iotdb.apache.org/zh/UserGuide/Master/FAQ/FAQ-for-cluster-setup.html)
\ No newline at end of file
+* 如果单纯想要停止两个集群,那么,只需要按照上文 “集群版部署” 或 “单机版部署” 中的 “停止流程” 分别对 A、B 集群进行操作即可。

Reply via email to