You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2022/12/30 02:45:56 UTC

[iotdb] branch beyyes/1.0.1_cherry_pick created (now f93558747e)

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

caogaofei pushed a change to branch beyyes/1.0.1_cherry_pick
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at f93558747e cherry-pick 1ea16d5f6d2798a1e4a8ecaab90b8b1391b43c54

This branch includes the following new commits:

     new a941ac9c12 cherr-pick 905a356c8f51940ffffa185f1e52d629e6e5e35c
     new f93558747e cherry-pick 1ea16d5f6d2798a1e4a8ecaab90b8b1391b43c54

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[iotdb] 02/02: cherry-pick 1ea16d5f6d2798a1e4a8ecaab90b8b1391b43c54

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch beyyes/1.0.1_cherry_pick
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit f93558747e1f64f724bb8b97eaa7c4a65a2297b1
Author: changxue2022 <11...@users.noreply.github.com>
AuthorDate: Thu Dec 29 22:56:42 2022 +0800

    cherry-pick 1ea16d5f6d2798a1e4a8ecaab90b8b1391b43c54
---
 .../src/test/resources/iotdb-datanode.properties   |   4 +-
 docker/ReadMe.md                                   |   6 +-
 .../DockerCompose/docker-compose-cluster-1c2d.yml  |   6 +-
 .../DockerCompose/docker-compose-cluster-3c3d.yml  |  16 +--
 .../DockerCompose/docker-compose-host-3c3d.yml     |  16 +--
 docker/src/main/Dockerfile-0.12.6-cluster          |   6 +-
 docker/src/main/Dockerfile-0.13.0-cluster          |   6 +-
 docker/src/main/Dockerfile-1.0.0-confignode        |   4 +-
 docker/src/main/Dockerfile-1.0.0-datanode          |   4 +-
 docs/UserGuide/QuickStart/WayToGetIoTDB.md         | 152 +++++++++++++++------
 docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md      | 151 ++++++++++++++------
 11 files changed, 253 insertions(+), 118 deletions(-)

diff --git a/cross-tests/src/test/resources/iotdb-datanode.properties b/cross-tests/src/test/resources/iotdb-datanode.properties
index 5f7c44c23f..78f84b74ef 100644
--- a/cross-tests/src/test/resources/iotdb-datanode.properties
+++ b/cross-tests/src/test/resources/iotdb-datanode.properties
@@ -26,9 +26,9 @@ services:
       - "6667:6667"
     environment:
       - cn_internal_address=iotdb-service
-      - cn_target_config_node_list=iotdb-service:10710
+      - cn_target_config_node_list=iotdb-service:22277
       - dn_rpc_address=iotdb-service
-      - dn_target_config_node_list=iotdb-service:10710
+      - dn_target_config_node_list=iotdb-service:22277
     volumes:
         - ./data:/iotdb/data
         - ./logs:/iotdb/logs
diff --git a/docker/ReadMe.md b/docker/ReadMe.md
index bb5616f5ea..2754b80e42 100644
--- a/docker/ReadMe.md
+++ b/docker/ReadMe.md
@@ -54,7 +54,7 @@ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 -p 5555:5555 apache/iotdb
 ```
 
 ```shell
-docker run -d --name iotdb -p 6667:6667 -p 31999:31999 -p 8181:8181 -p 5555:5555 -p 10730:10730 -p 10760:10760 apache/iotdb:<version>
+docker run -d --name iotdb -p 6667:6667 -p 31999:31999 -p 8181:8181 -p 5555:5555 -p 9003:9003 -p 40010:40010 apache/iotdb:<version>
 ```
 
 ## Port description
@@ -66,8 +66,8 @@ By default, the ports that IoTDB uses are:
 * 8086: InfluxDB Protocol port
 * 8181: Monitor port
 * 5555: Data sync port
-* 10730: internal metadata rpc port (for cluster)
-* 10760: internal data rpc port (for cluster)
+* 9003: internal metadata rpc port (for cluster)
+* 40010: internal data rpc port (for cluster)
 
 
 ## How to configure docker volumes
diff --git a/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml b/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml
index 21bce4786e..8653fcfd2e 100644
--- a/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml
+++ b/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml
@@ -24,7 +24,7 @@ services:
     container_name: iotdb-confignode
     environment:
       - cn_internal_address=iotdb-confignode
-      - cn_target_config_node_list=iotdb-confignode:10710
+      - cn_target_config_node_list=iotdb-confignode:22277
     volumes:
         - ./data/confignode:/iotdb/data
         - ./logs/confignode:/iotdb/logs
@@ -41,7 +41,7 @@ services:
     environment:
       - dn_rpc_address=iotdb-datanode-1
       - dn_internal_address=iotdb-datanode-1
-      - dn_target_config_node_list=iotdb-confignode:10710
+      - dn_target_config_node_list=iotdb-confignode:22277
     volumes:
       - ./data/datanode1:/iotdb/data/
       - ./logs/datanode1:/iotdb/logs/
@@ -56,7 +56,7 @@ services:
     environment:
       - dn_rpc_address=iotdb-datanode-2
       - dn_internal_address=iotdb-datanode-2
-      - dn_target_config_node_list=iotdb-confignode:10710
+      - dn_target_config_node_list=iotdb-confignode:22277
     volumes:
       - ./data/datanode2:/iotdb/data/
       - ./logs/datanode2:/iotdb/logs/
diff --git a/docker/src/main/DockerCompose/docker-compose-cluster-3c3d.yml b/docker/src/main/DockerCompose/docker-compose-cluster-3c3d.yml
index 72f8183965..07a61f38b1 100644
--- a/docker/src/main/DockerCompose/docker-compose-cluster-3c3d.yml
+++ b/docker/src/main/DockerCompose/docker-compose-cluster-3c3d.yml
@@ -22,11 +22,11 @@ services:
     image: apache/iotdb:1.0.0-confignode
     container_name: iotdb-confignode
     ports:
-      - "10710:10710"
-      - "10720:10720"
+      - "22277:22277"
+      - "22278:22278"
     environment:
       - cn_internal_address=iotdb-confignode-1
-      - cn_target_config_node_list=iotdb-confignode-1:10710
+      - cn_target_config_node_list=iotdb-confignode-1:22277
     volumes:
       - /etc/hosts:/etc/hosts:ro
       - ./data/confignode:/iotdb/data
@@ -40,14 +40,14 @@ services:
     container_name: iotdb-datanode
     ports:
       - "6667:6667"
-      - "10740:10740"
-      - "10730:10730"
-      - "10750:10750"
-      - "10760:10760"
+      - "8777:8777"
+      - "9003:9003"
+      - "50010:50010"
+      - "40010:40010"
     environment:
       - dn_rpc_address=iotdb-datanode-1
       - dn_internal_address=iotdb-datanode-1
-      - dn_target_config_node_list=iotdb-confignode-1:10710
+      - dn_target_config_node_list=iotdb-confignode-1:22277
     volumes:
       - /etc/hosts:/etc/hosts:ro
       - ./data/datanode1:/iotdb/data/
diff --git a/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml b/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml
index 7903d72813..0de9bef89f 100644
--- a/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml
+++ b/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml
@@ -22,11 +22,11 @@ services:
     image: apache/iotdb:1.0.0-confignode
     container_name: iotdb-confignode
     ports:
-      - "10710:10710"
-      - "10720:10720"
+      - "22277:22277"
+      - "22278:22278"
     environment:
       - cn_internal_address=iotdb-1
-      - cn_target_config_node_list=iotdb-1:10710
+      - cn_target_config_node_list=iotdb-1:22277
       - schema_replication_factor=3
       - schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
       - config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
@@ -41,14 +41,14 @@ services:
     container_name: iotdb-datanode
     ports:
       - "6667:6667"
-      - "10740:10740"
-      - "10730:10730"
-      - "10750:10750"
-      - "10760:10760"
+      - "8777:8777"
+      - "9003:9003"
+      - "50010:50010"
+      - "40010:40010"
     environment:
       - dn_rpc_address=iotdb-1
       - dn_internal_address=iotdb-1
-      - dn_target_config_node_list=iotdb-1:10710
+      - dn_target_config_node_list=iotdb-1:22277
       - data_replication_factor=3
       - data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
     volumes:
diff --git a/docker/src/main/Dockerfile-0.12.6-cluster b/docker/src/main/Dockerfile-0.12.6-cluster
index 0e81b4b989..b7975dee43 100644
--- a/docker/src/main/Dockerfile-0.12.6-cluster
+++ b/docker/src/main/Dockerfile-0.12.6-cluster
@@ -32,7 +32,7 @@ RUN apt update \
   && apt purge --auto-remove -y \
   && apt clean -y \
   # modify the seeds in configuration file
-  && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:10730' /iotdb/conf/iotdb-cluster.properties \
+  && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:9003' /iotdb/conf/iotdb-cluster.properties \
   && sed -i '/^default_replica_num/cdefault_replica_num=1' /iotdb/conf/iotdb-cluster.properties
 
 # rpc port
@@ -44,9 +44,9 @@ EXPOSE 5555
 # monitor port
 EXPOSE 8181
 # internal meta port
-EXPOSE 10730
+EXPOSE 9003
 # internal data port
-EXPOSE 10760
+EXPOSE 40010
 VOLUME /iotdb/data
 VOLUME /iotdb/logs
 ENV PATH="/iotdb/sbin/:/iotdb/tools/:${PATH}"
diff --git a/docker/src/main/Dockerfile-0.13.0-cluster b/docker/src/main/Dockerfile-0.13.0-cluster
index c04323a9bd..15600260f8 100644
--- a/docker/src/main/Dockerfile-0.13.0-cluster
+++ b/docker/src/main/Dockerfile-0.13.0-cluster
@@ -32,7 +32,7 @@ RUN apt update \
   && apt purge --auto-remove -y \
   && apt clean -y \
   # modify the seeds in configuration file
-  && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:10730' /iotdb/conf/iotdb-cluster.properties \
+  && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:9003' /iotdb/conf/iotdb-cluster.properties \
   && sed -i '/^default_replica_num/cdefault_replica_num=1' /iotdb/conf/iotdb-cluster.properties
 
 # rpc port
@@ -44,9 +44,9 @@ EXPOSE 5555
 # monitor port
 EXPOSE 8181
 # internal meta port
-EXPOSE 10730
+EXPOSE 9003
 # internal data port
-EXPOSE 10760
+EXPOSE 40010
 VOLUME /iotdb/data
 VOLUME /iotdb/logs
 ENV PATH="/iotdb/sbin/:/iotdb/tools/:${PATH}"
diff --git a/docker/src/main/Dockerfile-1.0.0-confignode b/docker/src/main/Dockerfile-1.0.0-confignode
index 44a30e9869..b324dcd287 100644
--- a/docker/src/main/Dockerfile-1.0.0-confignode
+++ b/docker/src/main/Dockerfile-1.0.0-confignode
@@ -39,8 +39,8 @@ COPY DockerCompose/entrypoint.sh .
 RUN chmod +x *.sh && dos2unix *.sh \
   && dos2unix ${IOTDB_HOME}/conf/*.sh
 
-EXPOSE 10710
-EXPOSE 10720
+EXPOSE 22277
+EXPOSE 22278
 VOLUME ${IOTDB_HOME}/data
 VOLUME ${IOTDB_HOME}/logs
 
diff --git a/docker/src/main/Dockerfile-1.0.0-datanode b/docker/src/main/Dockerfile-1.0.0-datanode
index c6ad20e7de..f94d591991 100644
--- a/docker/src/main/Dockerfile-1.0.0-datanode
+++ b/docker/src/main/Dockerfile-1.0.0-datanode
@@ -41,8 +41,8 @@ RUN chmod +x *.sh && dos2unix *.sh \
   && dos2unix ${IOTDB_HOME}/conf/*.sh
 
 EXPOSE 6667
-EXPOSE 10740
-EXPOSE 10730
+EXPOSE 8777
+EXPOSE 9003
 VOLUME $IOTDB_HOME/data
 VOLUME $IOTDB_HOME/logs
 
diff --git a/docs/UserGuide/QuickStart/WayToGetIoTDB.md b/docs/UserGuide/QuickStart/WayToGetIoTDB.md
index ec3871ba14..3ada663a4b 100644
--- a/docs/UserGuide/QuickStart/WayToGetIoTDB.md
+++ b/docs/UserGuide/QuickStart/WayToGetIoTDB.md
@@ -105,46 +105,114 @@ Once the docker image has been built locally (the tag is iotdb:base in this exam
 
 2. **Create docker volume for data files and logs:**
 ```shell
-$ docker volume create mydata
-$ docker volume create mylogs
-```
-3. **Run a docker container:**
-```shell
-$ docker run -p 6667:6667 -v mydata:/iotdb/data -v mylogs:/iotdb/logs -d iotdb:base /iotdb/bin/start-server.sh
-```
-If success, you can run `docker ps`, and get something like the following:
-```
-CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
-2a68b6944cb5        iotdb:base          "/iotdb/bin/start-se…"   4 minutes ago       Up 5 minutes        0.0.0.0:6667->6667/tcp              laughing_meitner
-```
-You can use the above command to get the container ID:
-```shell
-$ docker container ls
-```
-suppose the ID is <C_ID>.
-
-And get the docker IP by the following, suppose the IP is <C_IP>.:
+# get IoTDB official image
+docker pull apache/iotdb:1.0.0-standalone
+# create docker bridge network
+docker network create --driver=bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 iotdb
+# create docker container
+docker run -d --name iotdb-service \
+              --hostname iotdb-service \
+              --network iotdb \
+              --ip 172.18.0.6 \
+              -p 6667:6667 \
+              -e cn_internal_address=iotdb-service \
+              -e cn_target_config_node_list=iotdb-service:22277 \
+              -e dn_rpc_address=iotdb-service \
+              -e dn_internal_address=iotdb-service \
+              -e dn_target_config_node_list=iotdb-service:22277 \
+              apache/iotdb:1.0.0-standalone              
+# execute SQL
+docker exec -ti iotdb-service /iotdb/sbin/start-cli.sh -h iotdb-service
+```
+External access:
 ```shell
-$ docker inspect --format='{{.NetworkSettings.IPAddress}}' <C_ID>
-```
-Now IoTDB server has started succesfully.
-
-4. If you just want to have a try by using iotdb-cli, you can:
-```shell
-$ docker exec -it <C_ID> /bin/bash
-$ (now you have enter the container): /iotdb/sbin/start-cli.sh -h localhost -p 6667 -u root -pw root
-```
-
-Or, if you have an iotdb-cli locally, execute the following command: 
-```shell
-$ /%IOTDB_HOME%/sbin/start-cli.sh -h localhost -p 6667 -u root -pw root
-```
-5. If you want to write codes to insert data and query data, please add the following dependencies:
-```xml
-        <dependency>
-            <groupId>org.apache.iotdb</groupId>
-            <artifactId>iotdb-jdbc</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-```
-Some examples about how to use IoTDB with IoTDB-JDBC can be found at: https://github.com/apache/iotdb/tree/master/example/jdbc/src/main/java/org/apache/iotdb
\ No newline at end of file
+# <IP Address/hostname> is the real IP or domain address rather than the one in docker network, could be 127.0.0.1 within the computer.
+$IOTDB_HOME/sbin/start-cli.sh -h <IP Address/hostname> -p 6667
+```
+Notice:The confignode service would fail when restarting this container if the IP Adress of the container has been changed.
+```yaml
+# docker-compose-1c1d.yml
+version: "3"
+services:
+  iotdb-service:
+    image: apache/iotdb:1.0.0-standalone
+    hostname: iotdb-service
+    container_name: iotdb-service
+    ports:
+      - "6667:6667"
+    environment:
+      - cn_internal_address=iotdb-service
+      - cn_target_config_node_list=iotdb-service:22277
+      - dn_rpc_address=iotdb-service
+      - dn_internal_address=iotdb-service
+      - dn_target_config_node_list=iotdb-service:22277
+    volumes:
+        - ./data:/iotdb/data
+        - ./logs:/iotdb/logs
+    networks:
+      iotdb:
+        ipv4_address: 172.18.0.6
+
+networks:
+  iotdb:
+    external: true
+```
+#### deploy cluster
+Until now, we support host and overlay networks but haven't supported bridge networks on multiple computers.
+Overlay networks see [1C2D](https://github.com/apache/iotdb/tree/master/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml) and here are the configurations and operation steps to start an IoTDB cluster with docker using host networks。
+
+Suppose that there are three computers of iotdb-1, iotdb-2 and iotdb-3. We called them nodes.
+Here is the docker-compose file of iotdb-2, as the sample:
+```yaml
+version: "3"
+services:
+  iotdb-confignode:
+    image: apache/iotdb:1.0.0-confignode
+    container_name: iotdb-confignode
+    ports:
+      - "22277:22277"
+      - "22278:22278"
+    environment:
+      - cn_internal_address=iotdb-2
+      - cn_target_config_node_list=iotdb-1:22277
+      - schema_replication_factor=3
+      - schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+      - config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+      - data_replication_factor=3
+      - data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
+    volumes:
+      - /etc/hosts:/etc/hosts:ro
+      - ./data/confignode:/iotdb/data
+      - ./logs/confignode:/iotdb/logs
+    network_mode: "host"
+
+  iotdb-datanode:
+    image: apache/iotdb:1.0.0-datanode
+    container_name: iotdb-datanode
+    ports:
+      - "6667:6667"
+      - "8777:8777"
+      - "9003:9003"
+      - "50010:50010"
+      - "40010:40010"
+    environment:
+      - dn_rpc_address=iotdb-2
+      - dn_internal_address=iotdb-2
+      - dn_target_config_node_list=iotdb-1:22277
+      - data_replication_factor=3
+      - data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
+       - schema_replication_factor=3
+      - schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+      - config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+    volumes:
+      - /etc/hosts:/etc/hosts:ro
+      - ./data/datanode:/iotdb/data/
+      - ./logs/datanode:/iotdb/logs/
+    network_mode: "host"
+```
+Notice:
+1. The `dn_target_config_node_list` of three nodes must the same and it is the first starting node of `iotdb-1` with the cn_internal_port of 22277。
+2. In this docker-compose file,`iotdb-2` should be replace with the real IP or hostname of each node to generate docker compose files in the other nodes.
+3. The services would talk with each other, so they need map the /etc/hosts file or add the `extra_hosts` to the docker compose file.
+4. We must start the IoTDB services of `iotdb-1` first at the first time of starting.
+5. Stop and remove all the IoTDB services and clean up the `data` and `logs` directories of the 3 nodes,then start the cluster again.
diff --git a/docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md b/docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md
index 9123c2000b..774dc2da2a 100644
--- a/docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md
+++ b/docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md
@@ -115,46 +115,113 @@ $ docker volume create mylogs
 3. **运行 docker 容器:**
 
 ```shell
-$ docker run -p 6667:6667 -v mydata:/iotdb/data -v mylogs:/iotdb/logs -d iotdb:base /iotdb/bin/start-server.sh
-```
-您可以使用`docker ps`来检查是否运行成功,当成功时控制台会输出下面的日志:
-```
-CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
-2a68b6944cb5        iotdb:base          "/iotdb/bin/start-se…"   4 minutes ago       Up 5 minutes        0.0.0.0:6667->6667/tcp              laughing_meitner
-```
-您可以使用下面的命令来获取 container 的 ID:
-
-```shell
-$ docker container ls
-```
-假设这个 ID 为 <C_ID>.
-
-然后使用下面的命令获取这个 ID 对应的 IP 地址,假设获取的 IP 为 <C_IP>:
-
-```shell
-$ docker inspect --format='{{.NetworkSettings.IPAddress}}' <C_ID>
-```
-现在 IoTDB 服务器已经启动成功了。
-
-4. 如果您想尝试使用 iotdb-cli 命令行,您可以使用如下命令:
-
+# 获取镜像
+docker pull apache/iotdb:1.0.0-standalone
+# 创建 docker bridge 网络
+docker network create --driver=bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 iotdb
+# 创建 docker 容器
+# 注意:必须固定IP部署。IP改变会导致 confignode 启动失败。
+docker run -d --name iotdb-service \
+              --hostname iotdb-service \
+              --network iotdb \
+              --ip 172.18.0.6 \
+              -p 6667:6667 \
+              -e cn_internal_address=iotdb-service \
+              -e cn_target_config_node_list=iotdb-service:22277 \
+              -e dn_rpc_address=iotdb-service \
+              -e dn_internal_address=iotdb-service \
+              -e dn_target_config_node_list=iotdb-service:22277 \
+              apache/iotdb:1.0.0-standalone              
+# 尝试使用命令行执行SQL
+docker exec -ti iotdb-service /iotdb/sbin/start-cli.sh -h iotdb-service
+```
+外部连接:
 ```shell
-$ docker exec -it <C_ID> /bin/bash
-$ (now you have enter the container): /iotdb/sbin/start-cli.sh -h localhost -p 6667 -u root -pw root
-```
-
-还可以使用本地的 iotdb-cli,执行如下命令:
-
-```shell
-$ /%IOTDB_HOME%/sbin/start-cli.sh -h localhost -p 6667 -u root -pw root
-```
-5. 如果您想写一些代码来插入或者查询数据,您可以在 pom.xml 文件中加入下面的依赖:
-
-```xml
-        <dependency>
-            <groupId>org.apache.iotdb</groupId>
-            <artifactId>iotdb-jdbc</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-```
-这里是一些使用 IoTDB-JDBC 连接 IoTDB 的示例:https://github.com/apache/iotdb/tree/master/example/jdbc/src/main/java/org/apache/iotdb
\ No newline at end of file
+# <主机IP/hostname> 是物理机的真实IP或域名。如果在同一台物理机,可以是127.0.0.1。
+$IOTDB_HOME/sbin/start-cli.sh -h <主机IP/hostname> -p 6667
+```
+```yaml
+# docker-compose-1c1d.yml
+version: "3"
+services:
+  iotdb-service:
+    image: apache/iotdb:1.0.0-standalone
+    hostname: iotdb-service
+    container_name: iotdb-service
+    ports:
+      - "6667:6667"
+    environment:
+      - cn_internal_address=iotdb-service
+      - cn_target_config_node_list=iotdb-service:22277
+      - dn_rpc_address=iotdb-service
+      - dn_internal_address=iotdb-service
+      - dn_target_config_node_list=iotdb-service:22277
+    volumes:
+        - ./data:/iotdb/data
+        - ./logs:/iotdb/logs
+    networks:
+      iotdb:
+        ipv4_address: 172.18.0.6
+
+networks:
+  iotdb:
+    external: true
+```
+#### 集群部署
+目前只支持 host 网络和 overlay 网络,不支持 bridge 网络。overlay 网络参照[1C2D](https://github.com/apache/iotdb/tree/master/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml)的写法,host 网络如下。
+
+假如有三台物理机,它们的hostname分别是iotdb-1、iotdb-2、iotdb-3。依次启动。
+以 iotdb-2 节点的docker-compose文件为例:
+```yaml
+version: "3"
+services:
+  iotdb-confignode:
+    image: apache/iotdb:1.0.0-confignode
+    container_name: iotdb-confignode
+    ports:
+      - "22277:22277"
+      - "22278:22278"
+    environment:
+      - cn_internal_address=iotdb-2
+      - cn_target_config_node_list=iotdb-1:22277
+      - schema_replication_factor=3
+      - schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+      - config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+      - data_replication_factor=3
+      - data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
+    volumes:
+      - /etc/hosts:/etc/hosts:ro
+      - ./data/confignode:/iotdb/data
+      - ./logs/confignode:/iotdb/logs
+    network_mode: "host"
+
+  iotdb-datanode:
+    image: apache/iotdb:1.0.0-datanode
+    container_name: iotdb-datanode
+    ports:
+      - "6667:6667"
+      - "8777:8777"
+      - "9003:9003"
+      - "50010:50010"
+      - "40010:40010"
+    environment:
+      - dn_rpc_address=iotdb-2
+      - dn_internal_address=iotdb-2
+      - dn_target_config_node_list=iotdb-1:22277
+      - data_replication_factor=3
+      - data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
+       - schema_replication_factor=3
+      - schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+      - config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+    volumes:
+      - /etc/hosts:/etc/hosts:ro
+      - ./data/datanode:/iotdb/data/
+      - ./logs/datanode:/iotdb/logs/
+    network_mode: "host"
+```
+注意:
+1. `dn_target_config_node_list`所有节点配置一样,需要配置第一个启动的节点,这里为`iotdb-1`。
+2. 上面docker-compose文件中,`iotdb-2`需要替换为每个节点的 hostname、域名或者IP地址。
+3. 需要映射`/etc/hosts`,文件内配置了 iotdb-1、iotdb-2、iotdb-3 与IP的映射。或者可以在 docker-compose 文件中增加 `extra_hosts` 配置。
+4. 首次启动时,必须首先启动 `iotdb-1`。
+5. 如果部署失败要重新部署集群,必须将所有节点上的IoTDB服务停止并删除,然后清除`data`和`logs`文件夹后,再启动。


[iotdb] 01/02: cherr-pick 905a356c8f51940ffffa185f1e52d629e6e5e35c

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch beyyes/1.0.1_cherry_pick
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit a941ac9c1261f71273dedefe369ffab32b938849
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Thu Dec 29 09:04:08 2022 +0800

    cherr-pick 905a356c8f51940ffffa185f1e52d629e6e5e35c
---
 .../resources/conf/iotdb-confignode.properties     |   8 +-
 .../assembly/resources/sbin/start-confignode.bat   |   4 +-
 .../iotdb/confignode/conf/ConfigNodeConfig.java    |   6 +-
 .../request/ConfigPhysicalPlanSerDeTest.java       |  56 +++----
 .../load/balancer/router/RegionRouteMapTest.java   |   8 +-
 .../router/priority/GreedyPriorityTest.java        |   8 +-
 .../priority/LeaderPriorityBalancerTest.java       |  16 +-
 .../confignode/persistence/PartitionInfoTest.java  |   8 +-
 .../impl/CreateRegionGroupsProcedureTest.java      |  16 +-
 .../impl/node/AddConfigNodeProcedureTest.java      |   2 +-
 .../impl/node/RemoveConfigNodeProcedureTest.java   |   2 +-
 .../confignode1conf/iotdb-confignode.properties    |   6 +-
 .../confignode2conf/iotdb-confignode.properties    |   6 +-
 .../confignode3conf/iotdb-confignode.properties    |   6 +-
 .../src/test/resources/iotdb-datanode.properties   |  19 +++
 docker/ReadMe.md                                   |   6 +-
 .../DockerCompose/docker-compose-cluster-1c2d.yml  |  69 ++++++++
 .../DockerCompose/docker-compose-cluster-3c3d.yml  |  60 +++++++
 .../DockerCompose/docker-compose-host-3c3d.yml     |  58 +++++++
 docker/src/main/Dockerfile-0.12.6-cluster          |   6 +-
 docker/src/main/Dockerfile-0.13.0-cluster          |   6 +-
 docker/src/main/Dockerfile-1.0.0-confignode        |  52 ++++++
 docker/src/main/Dockerfile-1.0.0-datanode          |  54 ++++++
 docs/UserGuide/Cluster/Cluster-Maintenance.md      |  50 +++---
 docs/UserGuide/Cluster/Cluster-Setup.md            | 108 +++++++++++-
 .../Edge-Cloud-Collaboration/Sync-Tool.md          |   8 +-
 docs/UserGuide/QuickStart/ClusterQuickStart.md     | 183 +++++++++++++++++++++
 docs/UserGuide/QuickStart/WayToGetIoTDB.md         |   2 +-
 .../Reference/ConfigNode-Config-Manual.md          |   6 +-
 docs/UserGuide/Reference/DataNode-Config-Manual.md |  10 +-
 docs/zh/UserGuide/Cluster/Cluster-Maintenance.md   |  50 +++---
 docs/zh/UserGuide/Cluster/Cluster-Setup.md         |  52 +++++-
 .../Edge-Cloud-Collaboration/Sync-Tool.md          |   8 +-
 docs/zh/UserGuide/QuickStart/ClusterQuickStart.md  | 180 ++++++++++++++++++++
 docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md      |   2 +-
 .../Reference/ConfigNode-Config-Manual.md          |   6 +-
 .../UserGuide/Reference/DataNode-Config-Manual.md  |  10 +-
 .../org/apache/iotdb/it/env/RemoteServerEnv.java   |   2 +-
 .../src/assembly/resources/sbin/iotdb-common.sh    |  12 +-
 .../iotdb/commons/client/ClientManagerTest.java    |   2 +-
 .../iotdb/commons/utils/NodeUrlUtilsTest.java      |   8 +-
 .../commons/utils/ThriftCommonsSerDeUtilsTest.java |  16 +-
 .../utils/ThriftConfigNodeSerDeUtilsTest.java      |   2 +-
 .../resources/conf/iotdb-datanode.properties       |  12 +-
 .../src/assembly/resources/sbin/start-datanode.bat |   8 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  10 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   2 +-
 .../db/mpp/common/header/ColumnHeaderConstant.java |   4 +-
 .../apache/iotdb/db/mpp/plan/TestRPCClient.java    |  50 +++---
 .../config/metadata/ShowClusterDetailsTask.java    |   4 +-
 .../mpp/plan/plan/FragmentInstanceSerdeTest.java   |  16 +-
 .../datanode1conf/iotdb-datanode.properties        |  10 +-
 .../datanode2conf/iotdb-datanode.properties        |  12 +-
 .../datanode3conf/iotdb-datanode.properties        |  12 +-
 54 files changed, 1073 insertions(+), 266 deletions(-)

diff --git a/confignode/src/assembly/resources/conf/iotdb-confignode.properties b/confignode/src/assembly/resources/conf/iotdb-confignode.properties
index eed5d144b5..932864ba58 100644
--- a/confignode/src/assembly/resources/conf/iotdb-confignode.properties
+++ b/confignode/src/assembly/resources/conf/iotdb-confignode.properties
@@ -28,11 +28,11 @@ cn_internal_address=127.0.0.1
 
 # Used for RPC communication inside cluster.
 # Datatype: int
-cn_internal_port=22277
+cn_internal_port=10710
 
 # Used for consensus communication among ConfigNodes inside cluster.
 # Datatype: int
-cn_consensus_port=22278
+cn_consensus_port=10720
 
 ####################
 ### Target Config Nodes
@@ -40,9 +40,9 @@ cn_consensus_port=22278
 
 # For the first ConfigNode to start, cn_target_config_node_list points to its own cn_internal_address:cn_internal_port.
 # For other ConfigNodes that to join the cluster, target_config_node_list points to any running ConfigNode's cn_internal_address:cn_internal_port.
-# Format: address:port(,address:port)*   e.g. 127.0.0.1:22277,127.0.0.1:22279
+# Format: address:port(,address:port)*   e.g. 127.0.0.1:10710,127.0.0.1:10711
 # Datatype: String
-cn_target_config_node_list=127.0.0.1:22277
+cn_target_config_node_list=127.0.0.1:10710
 
 ####################
 ### Directory configuration
diff --git a/confignode/src/assembly/resources/sbin/start-confignode.bat b/confignode/src/assembly/resources/sbin/start-confignode.bat
index 4ba762aedf..21c19ca611 100644
--- a/confignode/src/assembly/resources/sbin/start-confignode.bat
+++ b/confignode/src/assembly/resources/sbin/start-confignode.bat
@@ -99,8 +99,8 @@ IF EXIST "%CONFIGNODE_CONF%\iotdb-confignode.properties" (
   )
 ) ELSE (
   echo "Can't find iotdb-confignode.properties, check the default ports"
-  set cn_internal_port=22277
-  set cn_consensus_port=22278
+  set cn_internal_port=10710
+  set cn_consensus_port=10720
 )
 
 echo Check whether the ports are occupied....
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
index 8e6b354534..94e906a9ad 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
@@ -41,13 +41,13 @@ public class ConfigNodeConfig {
   private String internalAddress = "127.0.0.1";
 
   /** used for communication between data node and config node */
-  private int internalPort = 22277;
+  private int internalPort = 10710;
 
   /** used for communication between config node and config node */
-  private int consensusPort = 22278;
+  private int consensusPort = 10720;
 
   /** Used for connecting to the ConfigNodeGroup */
-  private TEndPoint targetConfigNode = new TEndPoint("127.0.0.1", 22277);
+  private TEndPoint targetConfigNode = new TEndPoint("127.0.0.1", 10710);
 
   // TODO: Read from iotdb-confignode.properties
   private int configNodeRegionId = 0;
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
index 4672b402ce..45d407427f 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
@@ -149,10 +149,10 @@ public class ConfigPhysicalPlanSerDeTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(1);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     TDataNodeConfiguration dataNodeConfiguration = new TDataNodeConfiguration();
     dataNodeConfiguration.setLocation(dataNodeLocation);
@@ -169,10 +169,10 @@ public class ConfigPhysicalPlanSerDeTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(1);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     UpdateDataNodePlan plan0 = new UpdateDataNodePlan(dataNodeLocation);
     UpdateDataNodePlan plan1 =
@@ -281,10 +281,10 @@ public class ConfigPhysicalPlanSerDeTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(0);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     CreateRegionGroupsPlan req0 = new CreateRegionGroupsPlan();
     TRegionReplicaSet dataRegionSet = new TRegionReplicaSet();
@@ -307,10 +307,10 @@ public class ConfigPhysicalPlanSerDeTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(0);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     TRegionReplicaSet regionReplicaSet = new TRegionReplicaSet();
     regionReplicaSet.setRegionId(new TConsensusGroupId(TConsensusGroupType.DataRegion, 0));
@@ -345,10 +345,10 @@ public class ConfigPhysicalPlanSerDeTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(0);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     String storageGroup = "root.sg0";
     TSeriesPartitionSlot seriesPartitionSlot = new TSeriesPartitionSlot(10);
@@ -400,10 +400,10 @@ public class ConfigPhysicalPlanSerDeTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(0);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     String storageGroup = "root.sg0";
     TSeriesPartitionSlot seriesPartitionSlot = new TSeriesPartitionSlot(10);
@@ -745,10 +745,10 @@ public class ConfigPhysicalPlanSerDeTest {
     TDataNodeLocation dataNodeLocation0 = new TDataNodeLocation();
     dataNodeLocation0.setDataNodeId(5);
     dataNodeLocation0.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation0.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation0.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation0.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation0.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation0.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation0.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation0.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation0.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     TConsensusGroupId schemaRegionGroupId = new TConsensusGroupId(SchemaRegion, 1);
     TConsensusGroupId dataRegionGroupId = new TConsensusGroupId(DataRegion, 0);
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/RegionRouteMapTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/RegionRouteMapTest.java
index 9481802d48..986fc68637 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/RegionRouteMapTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/RegionRouteMapTest.java
@@ -55,10 +55,10 @@ public class RegionRouteMapTest {
             new TDataNodeLocation(
                 j,
                 new TEndPoint("0.0.0.0", 6667 + j),
-                new TEndPoint("0.0.0.0", 9003 + j),
-                new TEndPoint("0.0.0.0", 8777 + j),
-                new TEndPoint("0.0.0.0", 40010 + j),
-                new TEndPoint("0.0.0.0", 50010 + j)));
+                new TEndPoint("0.0.0.0", 10730 + j),
+                new TEndPoint("0.0.0.0", 10740 + j),
+                new TEndPoint("0.0.0.0", 10760 + j),
+                new TEndPoint("0.0.0.0", 10750 + j)));
       }
       regionLeaderMap.put(regionGroupId, i % 3);
       regionPriorityMap.put(regionGroupId, regionReplicaSet);
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/priority/GreedyPriorityTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/priority/GreedyPriorityTest.java
index e54fab7cd3..cb617bf027 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/priority/GreedyPriorityTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/priority/GreedyPriorityTest.java
@@ -50,10 +50,10 @@ public class GreedyPriorityTest {
           new TDataNodeLocation(
               i,
               new TEndPoint("0.0.0.0", 6667 + i),
-              new TEndPoint("0.0.0.0", 9003 + i),
-              new TEndPoint("0.0.0.0", 8777 + i),
-              new TEndPoint("0.0.0.0", 40010 + i),
-              new TEndPoint("0.0.0.0", 50010 + i)));
+              new TEndPoint("0.0.0.0", 10730 + i),
+              new TEndPoint("0.0.0.0", 10740 + i),
+              new TEndPoint("0.0.0.0", 10760 + i),
+              new TEndPoint("0.0.0.0", 10750 + i)));
     }
 
     /* Build nodeCacheMap */
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/priority/LeaderPriorityBalancerTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/priority/LeaderPriorityBalancerTest.java
index d94f45def1..a028219b08 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/priority/LeaderPriorityBalancerTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/manager/load/balancer/router/priority/LeaderPriorityBalancerTest.java
@@ -51,10 +51,10 @@ public class LeaderPriorityBalancerTest {
           new TDataNodeLocation(
               i,
               new TEndPoint("0.0.0.0", 6667 + i),
-              new TEndPoint("0.0.0.0", 9003 + i),
-              new TEndPoint("0.0.0.0", 8777 + i),
-              new TEndPoint("0.0.0.0", 40010 + i),
-              new TEndPoint("0.0.0.0", 50010 + i)));
+              new TEndPoint("0.0.0.0", 10730 + i),
+              new TEndPoint("0.0.0.0", 10740 + i),
+              new TEndPoint("0.0.0.0", 10760 + i),
+              new TEndPoint("0.0.0.0", 10750 + i)));
     }
 
     // Build nodeCacheMap
@@ -126,10 +126,10 @@ public class LeaderPriorityBalancerTest {
           new TDataNodeLocation(
               i,
               new TEndPoint("0.0.0.0", 6667 + i),
-              new TEndPoint("0.0.0.0", 9003 + i),
-              new TEndPoint("0.0.0.0", 8777 + i),
-              new TEndPoint("0.0.0.0", 40010 + i),
-              new TEndPoint("0.0.0.0", 50010 + i)));
+              new TEndPoint("0.0.0.0", 10730 + i),
+              new TEndPoint("0.0.0.0", 10740 + i),
+              new TEndPoint("0.0.0.0", 10760 + i),
+              new TEndPoint("0.0.0.0", 10750 + i)));
     }
 
     // Build TRegionReplicaSet
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/persistence/PartitionInfoTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/persistence/PartitionInfoTest.java
index 3e8f28484d..dd504686c9 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/persistence/PartitionInfoTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/persistence/PartitionInfoTest.java
@@ -247,10 +247,10 @@ public class PartitionInfoTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(0);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     TRegionReplicaSet regionReplicaSet = new TRegionReplicaSet();
     regionReplicaSet.setRegionId(new TConsensusGroupId(TConsensusGroupType.DataRegion, 0));
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/CreateRegionGroupsProcedureTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/CreateRegionGroupsProcedureTest.java
index ee41e42cb6..0642bf6d6a 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/CreateRegionGroupsProcedureTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/CreateRegionGroupsProcedureTest.java
@@ -52,18 +52,18 @@ public class CreateRegionGroupsProcedureTest {
     TDataNodeLocation dataNodeLocation0 = new TDataNodeLocation();
     dataNodeLocation0.setDataNodeId(5);
     dataNodeLocation0.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation0.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation0.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation0.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation0.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation0.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation0.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation0.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation0.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     TDataNodeLocation dataNodeLocation1 = new TDataNodeLocation();
     dataNodeLocation1.setDataNodeId(6);
     dataNodeLocation1.setClientRpcEndPoint(new TEndPoint("0.0.0.1", 6667));
-    dataNodeLocation1.setInternalEndPoint(new TEndPoint("0.0.0.1", 9003));
-    dataNodeLocation1.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.1", 8777));
-    dataNodeLocation1.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.1", 40010));
-    dataNodeLocation1.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.1", 50010));
+    dataNodeLocation1.setInternalEndPoint(new TEndPoint("0.0.0.1", 10730));
+    dataNodeLocation1.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.1", 10740));
+    dataNodeLocation1.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.1", 10760));
+    dataNodeLocation1.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.1", 10750));
 
     TConsensusGroupId schemaRegionGroupId = new TConsensusGroupId(SchemaRegion, 1);
     TConsensusGroupId dataRegionGroupId = new TConsensusGroupId(DataRegion, 0);
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/node/AddConfigNodeProcedureTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/node/AddConfigNodeProcedureTest.java
index 19b7bec383..e7d2b05dc8 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/node/AddConfigNodeProcedureTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/node/AddConfigNodeProcedureTest.java
@@ -37,7 +37,7 @@ public class AddConfigNodeProcedureTest {
     AddConfigNodeProcedure procedure0 =
         new AddConfigNodeProcedure(
             new TConfigNodeLocation(
-                0, new TEndPoint("127.0.0.1", 22277), new TEndPoint("0.0.0.0", 22278)));
+                0, new TEndPoint("127.0.0.1", 10710), new TEndPoint("0.0.0.0", 10720)));
 
     try (PublicBAOS byteArrayOutputStream = new PublicBAOS();
         DataOutputStream outputStream = new DataOutputStream(byteArrayOutputStream)) {
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveConfigNodeProcedureTest.java b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveConfigNodeProcedureTest.java
index c01b620a5a..59351867e2 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveConfigNodeProcedureTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveConfigNodeProcedureTest.java
@@ -37,7 +37,7 @@ public class RemoveConfigNodeProcedureTest {
     RemoveConfigNodeProcedure procedure0 =
         new RemoveConfigNodeProcedure(
             new TConfigNodeLocation(
-                0, new TEndPoint("127.0.0.1", 22277), new TEndPoint("0.0.0.0", 22278)));
+                0, new TEndPoint("127.0.0.1", 10710), new TEndPoint("0.0.0.0", 10720)));
 
     try (PublicBAOS byteArrayOutputStream = new PublicBAOS();
         DataOutputStream outputStream = new DataOutputStream(byteArrayOutputStream)) {
diff --git a/confignode/src/test/resources/confignode1conf/iotdb-confignode.properties b/confignode/src/test/resources/confignode1conf/iotdb-confignode.properties
index 3c4e761ffd..ebc0e98212 100644
--- a/confignode/src/test/resources/confignode1conf/iotdb-confignode.properties
+++ b/confignode/src/test/resources/confignode1conf/iotdb-confignode.properties
@@ -18,9 +18,9 @@
 #
 
 cn_internal_address=127.0.0.1
-cn_internal_port=22277
-cn_consensus_port=22278
-cn_target_config_node_list=127.0.0.1:22277
+cn_internal_port=10710
+cn_consensus_port=10720
+cn_target_config_node_list=127.0.0.1:10710
 cn_system_dir=target/confignode1/system
 cn_data_dirs=target/confignode1/data
 cn_consensus_dir=target/confignode1/consensus
diff --git a/confignode/src/test/resources/confignode2conf/iotdb-confignode.properties b/confignode/src/test/resources/confignode2conf/iotdb-confignode.properties
index a0d4e4ef98..1a0ceaf8c3 100644
--- a/confignode/src/test/resources/confignode2conf/iotdb-confignode.properties
+++ b/confignode/src/test/resources/confignode2conf/iotdb-confignode.properties
@@ -18,9 +18,9 @@
 #
 
 cn_internal_address=127.0.0.1
-cn_internal_port=22279
-cn_consensus_port=22280
-cn_target_config_node_list=127.0.0.1:22277
+cn_internal_port=10711
+cn_consensus_port=10721
+cn_target_config_node_list=127.0.0.1:10710
 cn_system_dir=target/confignode2/system
 cn_data_dirs=target/confignode2/data
 cn_consensus_dir=target/confignode2/consensus
diff --git a/confignode/src/test/resources/confignode3conf/iotdb-confignode.properties b/confignode/src/test/resources/confignode3conf/iotdb-confignode.properties
index b95a94e5d8..f2eaaa2c7a 100644
--- a/confignode/src/test/resources/confignode3conf/iotdb-confignode.properties
+++ b/confignode/src/test/resources/confignode3conf/iotdb-confignode.properties
@@ -18,9 +18,9 @@
 #
 
 cn_internal_address=127.0.0.1
-cn_internal_port=22281
-cn_consensus_port=22282
-cn_target_config_node_list=127.0.0.1:22277
+cn_internal_port=10712
+cn_consensus_port=10722
+cn_target_config_node_list=127.0.0.1:10710
 cn_system_dir=target/confignode3/system
 cn_data_dirs=target/confignode3/data
 cn_consensus_dir=target/confignode3/consensus
diff --git a/cross-tests/src/test/resources/iotdb-datanode.properties b/cross-tests/src/test/resources/iotdb-datanode.properties
index 44f7270b33..5f7c44c23f 100644
--- a/cross-tests/src/test/resources/iotdb-datanode.properties
+++ b/cross-tests/src/test/resources/iotdb-datanode.properties
@@ -16,6 +16,25 @@
 # specific language governing permissions and limitations
 # under the License.
 #
+version: "3"
+services:
+  iotdb-service:
+    image: apache/iotdb:1.0.0-standalone
+    hostname: iotdb-service
+    container_name: iotdb-service
+    ports:
+      - "6667:6667"
+    environment:
+      - cn_internal_address=iotdb-service
+      - cn_target_config_node_list=iotdb-service:10710
+      - dn_rpc_address=iotdb-service
+      - dn_target_config_node_list=iotdb-service:10710
+    volumes:
+        - ./data:/iotdb/data
+        - ./logs:/iotdb/logs
+    networks:
+      iotdb:
+        ipv4_address: 172.18.0.6
 
 
 base_dir=target/tmp
diff --git a/docker/ReadMe.md b/docker/ReadMe.md
index 33402b689f..bb5616f5ea 100644
--- a/docker/ReadMe.md
+++ b/docker/ReadMe.md
@@ -54,7 +54,7 @@ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 -p 5555:5555 apache/iotdb
 ```
 
 ```shell
-docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 -p 5555:5555 -p 9003:9003 -p 40010:40010 apache/iotdb:<version>
+docker run -d --name iotdb -p 6667:6667 -p 31999:31999 -p 8181:8181 -p 5555:5555 -p 10730:10730 -p 10760:10760 apache/iotdb:<version>
 ```
 
 ## Port description
@@ -66,8 +66,8 @@ By default, the ports that IoTDB uses are:
 * 8086: InfluxDB Protocol port
 * 8181: Monitor port
 * 5555: Data sync port
-* 9003: internal metadata rpc port (for cluster)
-* 40010: internal data rpc port (for cluster)
+* 10730: internal metadata rpc port (for cluster)
+* 10760: internal data rpc port (for cluster)
 
 
 ## How to configure docker volumes
diff --git a/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml b/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml
new file mode 100644
index 0000000000..21bce4786e
--- /dev/null
+++ b/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml
@@ -0,0 +1,69 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# 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
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+version: "3"
+services:
+  iodb-confignode:
+    image: apache/iotdb:1.0.0-confignode
+    hostname: iotdb-confignode
+    container_name: iotdb-confignode
+    environment:
+      - cn_internal_address=iotdb-confignode
+      - cn_target_config_node_list=iotdb-confignode:10710
+    volumes:
+        - ./data/confignode:/iotdb/data
+        - ./logs/confignode:/iotdb/logs
+    networks:
+      iotdb:
+        ipv4_address: 172.18.0.2
+
+  iotdb-datanode1:
+    image: apache/iotdb:1.0.0-datanode
+    hostname: iotdb-datanode-1
+    container_name: iotdb-datanode-1
+    ports:
+      - "6667:6667"
+    environment:
+      - dn_rpc_address=iotdb-datanode-1
+      - dn_internal_address=iotdb-datanode-1
+      - dn_target_config_node_list=iotdb-confignode:10710
+    volumes:
+      - ./data/datanode1:/iotdb/data/
+      - ./logs/datanode1:/iotdb/logs/
+    networks:
+      iotdb:
+        ipv4_address: 172.18.0.3
+
+  iotdb-datanode2:
+    image: apache/iotdb:1.0.0-datanode
+    hostname: iotdb-datanode-2
+    container_name: iotdb-datanode-2
+    environment:
+      - dn_rpc_address=iotdb-datanode-2
+      - dn_internal_address=iotdb-datanode-2
+      - dn_target_config_node_list=iotdb-confignode:10710
+    volumes:
+      - ./data/datanode2:/iotdb/data/
+      - ./logs/datanode2:/iotdb/logs/
+    networks:
+      iotdb:
+        ipv4_address: 172.18.0.4
+
+networks:
+  iotdb:
+    external: true
diff --git a/docker/src/main/DockerCompose/docker-compose-cluster-3c3d.yml b/docker/src/main/DockerCompose/docker-compose-cluster-3c3d.yml
new file mode 100644
index 0000000000..72f8183965
--- /dev/null
+++ b/docker/src/main/DockerCompose/docker-compose-cluster-3c3d.yml
@@ -0,0 +1,60 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# 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
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+version: "3"
+services:
+  iotdb-confignode:
+    image: apache/iotdb:1.0.0-confignode
+    container_name: iotdb-confignode
+    ports:
+      - "10710:10710"
+      - "10720:10720"
+    environment:
+      - cn_internal_address=iotdb-confignode-1
+      - cn_target_config_node_list=iotdb-confignode-1:10710
+    volumes:
+      - /etc/hosts:/etc/hosts:ro
+      - ./data/confignode:/iotdb/data
+      - ./logs/confignode:/iotdb/logs
+    networks:
+      iotdb:
+        ipv4_address: 172.18.0.12
+
+  iotdb-datanode:
+    image: apache/iotdb:1.0.0-datanode
+    container_name: iotdb-datanode
+    ports:
+      - "6667:6667"
+      - "10740:10740"
+      - "10730:10730"
+      - "10750:10750"
+      - "10760:10760"
+    environment:
+      - dn_rpc_address=iotdb-datanode-1
+      - dn_internal_address=iotdb-datanode-1
+      - dn_target_config_node_list=iotdb-confignode-1:10710
+    volumes:
+      - /etc/hosts:/etc/hosts:ro
+      - ./data/datanode1:/iotdb/data/
+      - ./logs/datanode1:/iotdb/logs/
+    networks:
+      iotdb:
+        ipv4_address: 172.18.0.13
+networks:
+  iotdb:
+    external: true
diff --git a/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml b/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml
new file mode 100644
index 0000000000..7903d72813
--- /dev/null
+++ b/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml
@@ -0,0 +1,58 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# 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
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+version: "3"
+services:
+  iotdb-confignode:
+    image: apache/iotdb:1.0.0-confignode
+    container_name: iotdb-confignode
+    ports:
+      - "10710:10710"
+      - "10720:10720"
+    environment:
+      - cn_internal_address=iotdb-1
+      - cn_target_config_node_list=iotdb-1:10710
+      - schema_replication_factor=3
+      - schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+      - config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+    volumes:
+      - /etc/hosts:/etc/hosts:ro
+      - ./data/confignode:/iotdb/data
+      - ./logs/confignode:/iotdb/logs
+    network_mode: "host"
+
+  iotdb-datanode:
+    image: apache/iotdb:1.0.0-datanode
+    container_name: iotdb-datanode
+    ports:
+      - "6667:6667"
+      - "10740:10740"
+      - "10730:10730"
+      - "10750:10750"
+      - "10760:10760"
+    environment:
+      - dn_rpc_address=iotdb-1
+      - dn_internal_address=iotdb-1
+      - dn_target_config_node_list=iotdb-1:10710
+      - data_replication_factor=3
+      - data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
+    volumes:
+      - /etc/hosts:/etc/hosts:ro
+      - ./data/datanode1:/iotdb/data/
+      - ./logs/datanode1:/iotdb/logs/
+    network_mode: "host"
diff --git a/docker/src/main/Dockerfile-0.12.6-cluster b/docker/src/main/Dockerfile-0.12.6-cluster
index b7975dee43..0e81b4b989 100644
--- a/docker/src/main/Dockerfile-0.12.6-cluster
+++ b/docker/src/main/Dockerfile-0.12.6-cluster
@@ -32,7 +32,7 @@ RUN apt update \
   && apt purge --auto-remove -y \
   && apt clean -y \
   # modify the seeds in configuration file
-  && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:9003' /iotdb/conf/iotdb-cluster.properties \
+  && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:10730' /iotdb/conf/iotdb-cluster.properties \
   && sed -i '/^default_replica_num/cdefault_replica_num=1' /iotdb/conf/iotdb-cluster.properties
 
 # rpc port
@@ -44,9 +44,9 @@ EXPOSE 5555
 # monitor port
 EXPOSE 8181
 # internal meta port
-EXPOSE 9003
+EXPOSE 10730
 # internal data port
-EXPOSE 40010
+EXPOSE 10760
 VOLUME /iotdb/data
 VOLUME /iotdb/logs
 ENV PATH="/iotdb/sbin/:/iotdb/tools/:${PATH}"
diff --git a/docker/src/main/Dockerfile-0.13.0-cluster b/docker/src/main/Dockerfile-0.13.0-cluster
index 15600260f8..c04323a9bd 100644
--- a/docker/src/main/Dockerfile-0.13.0-cluster
+++ b/docker/src/main/Dockerfile-0.13.0-cluster
@@ -32,7 +32,7 @@ RUN apt update \
   && apt purge --auto-remove -y \
   && apt clean -y \
   # modify the seeds in configuration file
-  && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:9003' /iotdb/conf/iotdb-cluster.properties \
+  && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:10730' /iotdb/conf/iotdb-cluster.properties \
   && sed -i '/^default_replica_num/cdefault_replica_num=1' /iotdb/conf/iotdb-cluster.properties
 
 # rpc port
@@ -44,9 +44,9 @@ EXPOSE 5555
 # monitor port
 EXPOSE 8181
 # internal meta port
-EXPOSE 9003
+EXPOSE 10730
 # internal data port
-EXPOSE 40010
+EXPOSE 10760
 VOLUME /iotdb/data
 VOLUME /iotdb/logs
 ENV PATH="/iotdb/sbin/:/iotdb/tools/:${PATH}"
diff --git a/docker/src/main/Dockerfile-1.0.0-confignode b/docker/src/main/Dockerfile-1.0.0-confignode
new file mode 100644
index 0000000000..44a30e9869
--- /dev/null
+++ b/docker/src/main/Dockerfile-1.0.0-confignode
@@ -0,0 +1,52 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# 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
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+FROM openjdk:11-jre-slim
+ARG version=1.0.0
+ARG target=apache-iotdb-${version}-confignode-bin
+
+RUN apt update \
+  && apt install lsof dos2unix procps unzip dumb-init -y \
+  && apt autoremove -y \
+  && apt purge --auto-remove -y \
+  && apt clean -y
+
+COPY target/${target}.zip /
+RUN cd / && unzip ${target}.zip \
+  && rm ${target}.zip \
+  && mv ${target} iotdb
+
+ENV IOTDB_HOME=/iotdb VERSION=${version}
+WORKDIR ${IOTDB_HOME}/sbin
+
+COPY DockerCompose/replace-conf-from-env.sh .
+COPY DockerCompose/entrypoint.sh .
+RUN chmod +x *.sh && dos2unix *.sh \
+  && dos2unix ${IOTDB_HOME}/conf/*.sh
+
+EXPOSE 10710
+EXPOSE 10720
+VOLUME ${IOTDB_HOME}/data
+VOLUME ${IOTDB_HOME}/logs
+
+ENV PATH="${IOTDB_HOME}/sbin/:${IOTDB_HOME}/tools/:${PATH}"
+
+ENTRYPOINT ["/usr/bin/dumb-init", "--"]
+CMD ["bash", "-c", "entrypoint.sh confignode"]
+
+LABEL build_date="$build_date" maintainer="$maintainer" version="$version" commit_id="$commit_id"
diff --git a/docker/src/main/Dockerfile-1.0.0-datanode b/docker/src/main/Dockerfile-1.0.0-datanode
new file mode 100644
index 0000000000..c6ad20e7de
--- /dev/null
+++ b/docker/src/main/Dockerfile-1.0.0-datanode
@@ -0,0 +1,54 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# 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
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+FROM openjdk:11-jre-slim
+ARG version=1.0.0
+ARG target=apache-iotdb-${version}-datanode-bin
+
+RUN apt update \
+  && apt install lsof dos2unix procps unzip dumb-init wget inetutils-ping -y \
+  && apt autoremove -y \
+  && apt purge --auto-remove -y \
+  && apt clean -y
+
+COPY target/${target}.zip /
+RUN cd / && unzip ${target}.zip \
+  && rm ${target}.zip \
+  && mv apache-iotdb-${version}-server-bin iotdb
+
+ENV IOTDB_HOME=/iotdb VERSION=${version}
+WORKDIR ${IOTDB_HOME}/sbin
+
+COPY DockerCompose/replace-conf-from-env.sh .
+COPY DockerCompose/entrypoint.sh .
+
+RUN chmod +x *.sh && dos2unix *.sh \
+  && dos2unix ${IOTDB_HOME}/conf/*.sh
+
+EXPOSE 6667
+EXPOSE 10740
+EXPOSE 10730
+VOLUME $IOTDB_HOME/data
+VOLUME $IOTDB_HOME/logs
+
+ENV PATH="${IOTDB_HOME}/sbin/:${IOTDB_HOME}/tools/:${PATH}"
+
+ENTRYPOINT ["/usr/bin/dumb-init", "--"]
+CMD ["bash", "-c", "entrypoint.sh datanode"]
+
+LABEL build_date="$build_date" maintainer="$maintainer" version="$version" commit_id="$commit_id"
diff --git a/docs/UserGuide/Cluster/Cluster-Maintenance.md b/docs/UserGuide/Cluster/Cluster-Maintenance.md
index 8573db4119..38911edc20 100644
--- a/docs/UserGuide/Cluster/Cluster-Maintenance.md
+++ b/docs/UserGuide/Cluster/Cluster-Maintenance.md
@@ -69,9 +69,9 @@ IoTDB> show confignodes
 +------+-------+---------------+------------+--------+
 |NodeID| Status|InternalAddress|InternalPort|    Role|
 +------+-------+---------------+------------+--------+
-|     0|Running|      127.0.0.1|       22277|  Leader|
-|     1|Running|      127.0.0.1|       22279|Follower|
-|     2|Running|      127.0.0.1|       22281|Follower|
+|     0|Running|      127.0.0.1|       10710|  Leader|
+|     1|Running|      127.0.0.1|       10711|Follower|
+|     2|Running|      127.0.0.1|       10712|Follower|
 +------+-------+---------------+------------+--------+
 Total line number = 3
 It costs 0.030s
@@ -145,12 +145,12 @@ IoTDB> show cluster
 +------+----------+-------+---------------+------------+
 |NodeID|  NodeType| Status|InternalAddress|InternalPort|
 +------+----------+-------+---------------+------------+
-|     0|ConfigNode|Running|      127.0.0.1|       22277|
-|     1|ConfigNode|Running|      127.0.0.1|       22279|
-|     2|ConfigNode|Running|      127.0.0.1|       22281|
-|     3|  DataNode|Running|      127.0.0.1|        9003|
-|     4|  DataNode|Running|      127.0.0.1|        9005|
-|     5|  DataNode|Running|      127.0.0.1|        9007|
+|     0|ConfigNode|Running|      127.0.0.1|       10710|
+|     1|ConfigNode|Running|      127.0.0.1|       10711|
+|     2|ConfigNode|Running|      127.0.0.1|       10712|
+|     3|  DataNode|Running|      127.0.0.1|       10730|
+|     4|  DataNode|Running|      127.0.0.1|       10731|
+|     5|  DataNode|Running|      127.0.0.1|       10732|
 +------+----------+-------+---------------+------------+
 Total line number = 6
 It costs 0.011s
@@ -162,12 +162,12 @@ IoTDB> show cluster
 +------+----------+-------+---------------+------------+
 |NodeID|  NodeType| Status|InternalAddress|InternalPort|
 +------+----------+-------+---------------+------------+
-|     0|ConfigNode|Running|      127.0.0.1|       22277|
-|     1|ConfigNode|Unknown|      127.0.0.1|       22279|
-|     2|ConfigNode|Running|      127.0.0.1|       22281|
-|     3|  DataNode|Running|      127.0.0.1|        9003|
-|     4|  DataNode|Running|      127.0.0.1|        9005|
-|     5|  DataNode|Running|      127.0.0.1|        9007|
+|     0|ConfigNode|Running|      127.0.0.1|       10710|
+|     1|ConfigNode|Unknown|      127.0.0.1|       10711|
+|     2|ConfigNode|Running|      127.0.0.1|       10712|
+|     3|  DataNode|Running|      127.0.0.1|       10730|
+|     4|  DataNode|Running|      127.0.0.1|       10731|
+|     5|  DataNode|Running|      127.0.0.1|       10732|
 +------+----------+-------+---------------+------------+
 Total line number = 6
 It costs 0.012s
@@ -181,16 +181,16 @@ SHOW CLUSTER DETAILS
 Eg:
 ```
 IoTDB> show cluster details
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-----------------+-------------------+-------+
-|NodeID|  NodeType| Status|InternalAddress|InternalPort|ConfigConsensusPort|RpcAddress|RpcPort|DataConsensusPort|SchemaConsensusPort|MppPort|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-----------------+-------------------+-------+
-|     0|ConfigNode|Running|      127.0.0.1|       22277|              22278|          |       |                 |                   |       |
-|     1|ConfigNode|Running|      127.0.0.1|       22279|              22280|          |       |                 |                   |       |
-|     2|ConfigNode|Running|      127.0.0.1|       22281|              22282|          |       |                 |                   |       |
-|     3|  DataNode|Running|      127.0.0.1|        9003|                   | 127.0.0.1|   6667|            40010|              50010|   8777|
-|     4|  DataNode|Running|      127.0.0.1|        9004|                   | 127.0.0.1|   6668|            40011|              50011|   8778|
-|     5|  DataNode|Running|      127.0.0.1|        9005|                   | 127.0.0.1|   6669|            40012|              50012|   8779|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-----------------+-------------------+-------+
++------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
+|NodeID|  NodeType| Status|InternalAddress|InternalPort|ConfigConsensusPort|RpcAddress|RpcPort|MppPort|SchemaConsensusPort|DataConsensusPort|
++------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
+|     0|ConfigNode|Running|      127.0.0.1|       10710|              10720|          |       |       |                   |                 |
+|     1|ConfigNode|Running|      127.0.0.1|       10711|              10721|          |       |       |                   |                 |
+|     2|ConfigNode|Running|      127.0.0.1|       10712|              10722|          |       |       |                   |                 |
+|     3|  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.340s
 ```
diff --git a/docs/UserGuide/Cluster/Cluster-Setup.md b/docs/UserGuide/Cluster/Cluster-Setup.md
index 0e741b639c..34bb9da8b2 100644
--- a/docs/UserGuide/Cluster/Cluster-Setup.md
+++ b/docs/UserGuide/Cluster/Cluster-Setup.md
@@ -28,6 +28,13 @@ This article is the setup process of IoTDB Cluster (1.0.0).
 1. JDK>=1.8.
 
 2. Max open file 65535.
+3. Disable the swap memory.
+4. Ensure that data/confignode directory has been cleared when starting ConfigNode for the first time,
+and data/datanode directory has been cleared when starting DataNode for the first time
+5. Turn off the firewall of the server if the entire cluster is in a trusted environment.
+6. By default, IoTDB Cluster will use ports 10710, 10720 for the ConfigNode and 
+6667, 10730, 10740, 10750 and 10760 for the DataNode. 
+Please make sure those ports are not occupied, or you will modify the ports in configuration files. 
 
 3. Disable the swap memory.
 
@@ -57,7 +64,73 @@ Under the source root folder:
 mvn clean package -pl distribution -am -DskipTests
 ```
 
-Then you will get the binary distribution under **distribution/target**, in which the **all-bin** contains ConfigNode and DataNode, and DataNode contains the Cli.
+Then you will get the binary distribution under 
+**distribution/target/apache-iotdb-1.0.0-SNAPSHOT-all-bin/apache-iotdb-1.0.0-SNAPSHOT-all-bin**.
+
+# 4. Binary Distribution Content
+
+| **Folder**              | **Description**                                                                                   |
+|-------------------------|---------------------------------------------------------------------------------------------------|
+| conf                    | Configuration files folder, contains configuration files of ConfigNode, DataNode, JMX and logback |
+| data                    | Data files folder, contains data files of ConfigNode and DataNode                                 |
+| lib                     | Jar files folder                                                                                  |
+| licenses                | Licenses files folder                                                                             |
+| logs                    | Logs files folder, contains logs files of ConfigNode and DataNode                                 |
+| sbin                    | Shell files folder, contains start/stop/remove shell of ConfigNode and DataNode, cli shell        |
+| tools                   | System tools                                                                                      |
+
+# 5. Cluster Installation and Configuration
+
+## 5.1 Cluster Installation
+
+`apache-iotdb-1.0.0-SNAPSHOT-all-bin` contains both the ConfigNode and the DataNode. 
+Please deploy the files to all servers of your target cluster. 
+A best practice is deploying the files into the same directory in all servers.
+
+If you want to try the cluster mode on one server, please read 
+[Cluster Quick Start](https://iotdb.apache.org/UserGuide/Master/QuickStart/ClusterQuickStart.html).
+
+## 5.2 Cluster Configuration
+
+We need to modify the configurations on each server.
+Therefore, login each server and switch the working directory to `apache-iotdb-1.0.0-SNAPSHOT-all-bin`.
+The configuration files are stored in the `./conf` directory.
+
+For all ConfigNode servers, we need to modify the common configuration (see Chap 5.2.1) 
+and ConfigNode configuration (see Chap 5.2.2).
+
+For all DataNode servers, we need to modify the common configuration (see Chap 5.2.1) 
+and DataNode configuration (see Chap 5.2.3).
+
+### 5.2.1 Common configuration
+
+Open the common configuration file ./conf/iotdb-common.properties,
+and set the following parameters base on the 
+[Deployment Recommendation](https://iotdb.apache.org/UserGuide/Master/Cluster/Deployment-Recommendation.html):
+
+| **Configuration**                          | **Description**                                                                                                    | **Default**                                     |
+|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
+| config\_node\_consensus\_protocol\_class   | Consensus protocol of ConfigNode                                                                                   | org.apache.iotdb.consensus.ratis.RatisConsensus |
+| schema\_replication\_factor                | Schema replication factor, no more than DataNode number                                                            | 1                                               |
+| schema\_region\_consensus\_protocol\_class | Consensus protocol of schema replicas                                                                              | org.apache.iotdb.consensus.ratis.RatisConsensus |
+| data\_replication\_factor                  | Data replication factor, no more than DataNode number                                                              | 1                                               |
+| data\_region\_consensus\_protocol\_class   | Consensus protocol of data replicas. Note that RatisConsensus currently does not support multiple data directories | org.apache.iotdb.consensus.iot.IoTConsensus     |
+
+**Notice: The preceding configuration parameters cannot be changed after the cluster is started. Ensure that the common configurations of all Nodes are the same. Otherwise, the Nodes cannot be started.**
+
+### 5.2.2 ConfigNode configuration
+
+Open the ConfigNode configuration file ./conf/iotdb-confignode.properties,
+and set the following parameters based on the IP address and available port of the server or VM:
+
+| **Configuration**              | **Description**                                                                                                                          | **Default**     | **Usage**                                                                                                                                                                           |
+|--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| cn\_internal\_address          | Internal rpc service address of ConfigNode                                                                                               | 127.0.0.1       | Set to the IPV4 address or domain name of the server                                                                                                                                |
+| cn\_internal\_port             | Internal rpc service port of ConfigNode                                                                                                  | 10710           | Set to any unoccupied port                                                                                                                                                          |
+| cn\_consensus\_port            | ConfigNode replication consensus protocol communication port                                                                             | 10720           | Set to any unoccupied port                                                                                                                                                          |
+| cn\_target\_config\_node\_list | ConfigNode address to which the node is connected when it is registered to the cluster. Note that Only one ConfigNode can be configured. | 127.0.0.1:10710 | For Seed-ConfigNode, set to its own cn\_internal\_address:cn\_internal\_port; For other ConfigNodes, set to other one running ConfigNode's cn\_internal\_address:cn\_internal\_port |
+
+**Notice: The preceding configuration parameters cannot be changed after the node is started. Ensure that all ports are not occupied. Otherwise, the Node cannot be started.**
 
 ## Binary Distribution Content
 
@@ -71,7 +144,16 @@ Then you will get the binary distribution under **distribution/target**, in whic
 | sbin                    | Shell files folder, contains start/stop/remove shell of ConfigNode and DataNode, cli shell |
 | tools                   | System tools                                                                               |
 
-## Start the Cluster
+| **Configuration**                   | **Description**                                  | **Default**     | **Usage**                                                                                                                             |
+|-------------------------------------|--------------------------------------------------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------|
+| dn\_rpc\_address                    | Client RPC Service address                       | 127.0.0.1       | Set to the IPV4 address or domain name of the server                                                                                  |
+| dn\_rpc\_port                       | Client RPC Service port                          | 6667            | Set to any unoccupied port                                                                                                            |
+| dn\_internal\_address               | Control flow address of DataNode inside cluster  | 127.0.0.1       | Set to the IPV4 address or domain name of the server                                                                                  |
+| dn\_internal\_port                  | Control flow port of DataNode inside cluster     | 10730            | Set to any unoccupied port                                                                                                            |
+| dn\_mpp\_data\_exchange\_port       | Data flow port of DataNode inside cluster        | 10740            | Set to any unoccupied port                                                                                                            |
+| dn\_data\_region\_consensus\_port   | Data replicas communication port for consensus   | 10750           | Set to any unoccupied port                                                                                                            |
+| dn\_schema\_region\_consensus\_port | Schema replicas communication port for consensus | 10760           | Set to any unoccupied port                                                                                                            |
+| dn\_target\_config\_node\_list      | Running ConfigNode of the Cluster                | 127.0.0.1:10710 | Set to any running ConfigNode's cn\_internal\_address:cn\_internal\_port. You can set multiple values, separate them with commas(",") |
 
 Users could start a cluster which contains multiple ConfigNode and DataNode.
 A cluster need at least one ConfigNode and no less than the number of data/schema_replication_factor DataNodes.
@@ -228,17 +310,27 @@ datanode\sbin\start-cli.bat
 
 ## Shrink the Cluster
 
-### Remove ConfigNode
+Use a 3C3D(3 ConfigNodes and 3 DataNodes) as an example.
+Assumed that the IP addresses of the 3 ConfigNodes are 192.168.1.10, 192.168.1.11 and 192.168.1.12, and the default ports 10710 and 10720 are used.
+Assumed that the IP addresses of the 3 DataNodes are 192.168.1.20, 192.168.1.21 and 192.168.1.22, and the default ports 6667, 10730, 10740, 10750 and 10760 are used.
 
 Execute the remove-confignode shell on an active ConfigNode, and make sure that there is at least one active ConfigNode in Cluster after removing.
 
 Remove on Linux:
 ```
-# Remove the ConfigNode with confignode_id
-./confignode/sbin/remove-confignode.sh <confignode_id>
-
-# Remove the ConfigNode with address:port
-./confignode/sbin/remove-confignode.sh <internal_address>:<internal_port>
+IoTDB> show cluster details
++------+----------+-------+---------------+------------+-------------------+------------+-------+-------+-------------------+-----------------+
+|NodeID|  NodeType| Status|InternalAddress|InternalPort|ConfigConsensusPort|  RpcAddress|RpcPort|MppPort|SchemaConsensusPort|DataConsensusPort|
++------+----------+-------+---------------+------------+-------------------+------------+-------+-------+-------------------+-----------------+
+|     0|ConfigNode|Running|   192.168.1.10|       10710|              10720|            |       |       |                   |                 |
+|     2|ConfigNode|Running|   192.168.1.11|       10710|              10720|            |       |       |                   |                 |
+|     3|ConfigNode|Running|   192.168.1.12|       10710|              10720|            |       |       |                   |                 |
+|     1|  DataNode|Running|   192.168.1.20|       10730|                   |192.168.1.20|   6667|  10740|              10750|            10760|
+|     4|  DataNode|Running|   192.168.1.21|       10730|                   |192.168.1.21|   6667|  10740|              10750|            10760|
+|     5|  DataNode|Running|   192.168.1.22|       10730|                   |192.168.1.22|   6667|  10740|              10750|            10760|
++------+----------+-------+---------------+------------+-------------------+------------+-------+-------+-------------------+-----------------+
+Total line number = 6
+It costs 0.012s
 ```
 
 Remove on Windows:
diff --git a/docs/UserGuide/Edge-Cloud-Collaboration/Sync-Tool.md b/docs/UserGuide/Edge-Cloud-Collaboration/Sync-Tool.md
index e2a0162663..2214646b59 100644
--- a/docs/UserGuide/Edge-Cloud-Collaboration/Sync-Tool.md
+++ b/docs/UserGuide/Edge-Cloud-Collaboration/Sync-Tool.md
@@ -358,16 +358,16 @@ It costs 0.134s
 - Execute `CREATE PIPE p to demo`  get message  `PIPE [p] is STOP, please retry after drop it.`
   - Cause by: Current Pipe already exists
   - Solution: Execute `DROP PIPE p` to drop Pipe and recreate it.
-- Execute `CREATE PIPE p to demo` get message  `Fail to create PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:9005)}.`
+- Execute `CREATE PIPE p to demo` get message  `Fail to create PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:10732)}.`
   - Cause by: There are some DataNodes with the status Running cannot be connected.
   - Solution: Execute `SHOW DATANODES`, and check for unreachable DataNode networks, or wait for their status to change to Unknown and re-execute the statement.
-- Execute `START PIPE p`  get message  `Fail to start PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:9005)}.`
+- Execute `START PIPE p`  get message  `Fail to start PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:10732)}.`
   - Cause by: There are some DataNodes with the status Running cannot be connected.
   - Solution: Execute `SHOW DATANODES`, and check for unreachable DataNode networks, or wait for their status to change to Unknown and re-execute the statement.
-- Execute `STOP PIPE p`  get message  `Fail to stop PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:9005)}.`
+- Execute `STOP PIPE p`  get message  `Fail to stop PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:10732)}.`
   - Cause by: There are some DataNodes with the status Running cannot be connected.
   - Solution: Execute `SHOW DATANODES`, and check for unreachable DataNode networks, or wait for their status to change to Unknown and re-execute the statement.
-- Execute `DROP PIPE p`  get message  `Fail to DROP_PIPE because Fail to drop PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:9005)}. Please execute [DROP PIPE p] later to retry.`
+- Execute `DROP PIPE p`  get message  `Fail to DROP_PIPE because Fail to drop PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:10732)}. Please execute [DROP PIPE p] later to retry.`
   - Cause by: There are some DataNodes with the status Running cannot be connected. Pipe has been deleted on some nodes and the status has been set to ***DROP***.
   - Solution: Execute `SHOW DATANODES`, and check for unreachable DataNode networks, or wait for their status to change to Unknown and re-execute the statement.
 - Sync.log prompts `org.apache.iotdb.commons.exception.IoTDBException: root.** already been created as database`
diff --git a/docs/UserGuide/QuickStart/ClusterQuickStart.md b/docs/UserGuide/QuickStart/ClusterQuickStart.md
new file mode 100644
index 0000000000..21d19dce45
--- /dev/null
+++ b/docs/UserGuide/QuickStart/ClusterQuickStart.md
@@ -0,0 +1,183 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    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
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+## Quick Start
+
+This article uses a local environment as an example to
+illustrate how to start, expand, and shrink an IoTDB Cluster.
+
+**Notice: This document is a tutorial for deploying in a pseudo-cluster environment using different local ports, and is for exercise only. In real deployment scenarios, you only need to configure the IPV4 address or domain name of the server, and do not need to change the Node ports.**
+
+### 1. Prepare the Start Environment
+
+Unzip the apache-iotdb-1.0.0-all-bin.zip file to cluster0 folder.
+
+### 2. Start a Minimum Cluster
+
+Start the Cluster version with one ConfigNode and one DataNode(1C1D), and
+the default number of replicas is one.
+```
+./cluster0/sbin/start-confignode.sh
+./cluster0/sbin/start-datanode.sh
+```
+
+### 3. Verify the Minimum Cluster
+
++ If everything goes well, the minimum cluster will start successfully. Then, we can start the Cli for verification.
+```
+./cluster0/sbin/start-cli.sh
+```
+
++ Execute the [show cluster details](https://iotdb.apache.org/UserGuide/Master/Maintenance-Tools/Maintenance-Command.html#show-all-node-information)
+  command on the Cli. The result is shown below:
+```
+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
+```
+
+### 4. Prepare the Expanding Environment
+
+Unzip the apache-iotdb-1.0.0-all-bin.zip file to cluster1 and cluster2 folder.
+
+### 5. Modify the Node Configuration file
+
+For folder cluster1:
+
++ Modify ConfigNode configurations:
+
+| **configuration item**         | **value**       |
+|--------------------------------|-----------------|
+| 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 |
+
++ Modify DataNode configurations:
+
+| **configuration item**              | **value**       |
+|-------------------------------------|-----------------|
+| 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 |
+
+For folder cluster2:
+
++ Modify ConfigNode configurations:
+
+| **configuration item**         | **value**       |
+|--------------------------------|-----------------|
+| 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 |
+
++ Modify DataNode configurations:
+
+| **configuration item**                 | **value**       |
+|----------------------------------------|-----------------|
+| 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. Expanding the Cluster
+
+Expanding the Cluster to three ConfigNode and three DataNode(3C3D).
+The following commands can be executed in arbitrary order.
+
+```
+./cluster1/sbin/start-confignode.sh
+./cluster1/sbin/start-datanode.sh
+./cluster2/sbin/start-confignode.sh
+./cluster2/sbin/start-datanode.sh
+```
+
+### 7. Verify Cluster expansion
+
+Execute the `show cluster details` command, then the result is shown below:
+```
+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. Shrinking the Cluster
+
++ Remove a ConfigNode:
+```
+# Removing by ip:port
+./cluster0/sbin/remove-confignode.sh 127.0.0.1:10711
+
+# Removing by Node index
+./cluster0/sbin/remove-confignode.sh 2
+```
+
++ Remove a DataNode:
+```
+# Removing by ip:port
+./cluster0/sbin/remove-datanode.sh 127.0.0.1:6668
+
+# Removing by Node index
+./cluster0/sbin/remove-confignode.sh 4
+```
+
+### 9. Verify Cluster shrinkage
+
+Execute the `show cluster details` command, then the result is shown below:
+```
+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
+```
\ No newline at end of file
diff --git a/docs/UserGuide/QuickStart/WayToGetIoTDB.md b/docs/UserGuide/QuickStart/WayToGetIoTDB.md
index 56b1263ee9..ec3871ba14 100644
--- a/docs/UserGuide/QuickStart/WayToGetIoTDB.md
+++ b/docs/UserGuide/QuickStart/WayToGetIoTDB.md
@@ -147,4 +147,4 @@ $ /%IOTDB_HOME%/sbin/start-cli.sh -h localhost -p 6667 -u root -pw root
             <version>1.0.0</version>
         </dependency>
 ```
-Some examples about how to use IoTDB with IoTDB-JDBC can be found at: https://github.com/apache/iotdb/tree/master/example/jdbc/src/main/java/org/apache/iotdb
+Some examples about how to use IoTDB with IoTDB-JDBC can be found at: https://github.com/apache/iotdb/tree/master/example/jdbc/src/main/java/org/apache/iotdb
\ No newline at end of file
diff --git a/docs/UserGuide/Reference/ConfigNode-Config-Manual.md b/docs/UserGuide/Reference/ConfigNode-Config-Manual.md
index 261f8545a1..8f300afbc1 100644
--- a/docs/UserGuide/Reference/ConfigNode-Config-Manual.md
+++ b/docs/UserGuide/Reference/ConfigNode-Config-Manual.md
@@ -82,7 +82,7 @@ The global configuration of cluster is in ConfigNode.
 |:---:|:---|
 |Description| ConfigNode internal service port|
 |Type| Short Int : [0,65535] |
-|Default| 22277 |
+|Default| 10710 |
 |Effective|After restarting system|
 
 ### Consensus
@@ -93,7 +93,7 @@ The global configuration of cluster is in ConfigNode.
 |:---:|:---|
 |Description| ConfigNode data Consensus Port  |
 |Type| Short Int : [0,65535] |
-|Default| 22278 |
+|Default| 10720 |
 |Effective|After restarting system|
 
 ### Target Config Nodes
@@ -104,7 +104,7 @@ The global configuration of cluster is in ConfigNode.
 |:---:|:----------------------------------------------------------------------|
 |Description| Target ConfigNode address, for current ConfigNode to join the cluster |
 |Type| String                                                                |
-|Default| 127.0.0.1:22277                                                       |
+|Default| 127.0.0.1:10710                                                       |
 |Effective| After restarting system                                               |
 
 ### Directory configuration
diff --git a/docs/UserGuide/Reference/DataNode-Config-Manual.md b/docs/UserGuide/Reference/DataNode-Config-Manual.md
index 267b79cbbc..34dd38a75e 100644
--- a/docs/UserGuide/Reference/DataNode-Config-Manual.md
+++ b/docs/UserGuide/Reference/DataNode-Config-Manual.md
@@ -139,7 +139,7 @@ The permission definitions are in ${IOTDB\_CONF}/conf/jmx.access.
 |:---:|:-------------------------------|
 |Description| DataNode internal service port |
 |Type| int                            |
-|Default| 9003                           |
+|Default| 10730                           |
 |Effective| After restarting system        |
 
 * dn\_mpp\_data\_exchange\_port
@@ -148,7 +148,7 @@ The permission definitions are in ${IOTDB\_CONF}/conf/jmx.access.
 |:---:|:---|
 |Description| MPP data exchange port |
 |Type| int |
-|Default| 8777 |
+|Default| 10740 |
 |Effective|After restarting system|
 
 * dn\_schema\_region\_consensus\_port
@@ -157,7 +157,7 @@ The permission definitions are in ${IOTDB\_CONF}/conf/jmx.access.
 |:---:|:---|
 |Description| DataNode Schema replica communication port for consensus |
 |Type| int |
-|Default| 50010 |
+|Default| 10750 |
 |Effective|After restarting system|
 
 * dn\_data\_region\_consensus\_port
@@ -166,7 +166,7 @@ The permission definitions are in ${IOTDB\_CONF}/conf/jmx.access.
 |:---:|:---|
 |Description| DataNode Data replica communication port for consensus |
 |Type| int |
-|Default| 40010 |
+|Default| 10760 |
 |Effective|After restarting system|
 
 * dn\_join\_cluster\_retry\_interval\_ms
@@ -186,7 +186,7 @@ The permission definitions are in ${IOTDB\_CONF}/conf/jmx.access.
 |:---:|:------------------------------------------------|
 |Description| ConfigNode Address for DataNode to join cluster |
 |Type| String                                          |
-|Default| 127.0.0.1:22277                                 |
+|Default| 127.0.0.1:10710                                 |
 |Effective| After restarting system                         |
 
 ### Connection Configuration
diff --git a/docs/zh/UserGuide/Cluster/Cluster-Maintenance.md b/docs/zh/UserGuide/Cluster/Cluster-Maintenance.md
index 9f38f681fc..a55a94ac75 100644
--- a/docs/zh/UserGuide/Cluster/Cluster-Maintenance.md
+++ b/docs/zh/UserGuide/Cluster/Cluster-Maintenance.md
@@ -69,9 +69,9 @@ IoTDB> show confignodes
 +------+-------+---------------+------------+--------+
 |NodeID| Status|InternalAddress|InternalPort|    Role|
 +------+-------+---------------+------------+--------+
-|     0|Running|      127.0.0.1|       22277|  Leader|
-|     1|Running|      127.0.0.1|       22279|Follower|
-|     2|Running|      127.0.0.1|       22281|Follower|
+|     0|Running|      127.0.0.1|       10710|  Leader|
+|     1|Running|      127.0.0.1|       10711|Follower|
+|     2|Running|      127.0.0.1|       10712|Follower|
 +------+-------+---------------+------------+--------+
 Total line number = 3
 It costs 0.030s
@@ -146,12 +146,12 @@ IoTDB> show cluster
 +------+----------+-------+---------------+------------+
 |NodeID|  NodeType| Status|InternalAddress|InternalPort|
 +------+----------+-------+---------------+------------+
-|     0|ConfigNode|Running|      127.0.0.1|       22277|
-|     1|ConfigNode|Running|      127.0.0.1|       22279|
-|     2|ConfigNode|Running|      127.0.0.1|       22281|
-|     3|  DataNode|Running|      127.0.0.1|        9003|
-|     4|  DataNode|Running|      127.0.0.1|        9005|
-|     5|  DataNode|Running|      127.0.0.1|        9007|
+|     0|ConfigNode|Running|      127.0.0.1|       10710|
+|     1|ConfigNode|Running|      127.0.0.1|       10711|
+|     2|ConfigNode|Running|      127.0.0.1|       10712|
+|     3|  DataNode|Running|      127.0.0.1|       10730|
+|     4|  DataNode|Running|      127.0.0.1|       10731|
+|     5|  DataNode|Running|      127.0.0.1|       10732|
 +------+----------+-------+---------------+------------+
 Total line number = 6
 It costs 0.011s
@@ -163,12 +163,12 @@ IoTDB> show cluster
 +------+----------+-------+---------------+------------+
 |NodeID|  NodeType| Status|InternalAddress|InternalPort|
 +------+----------+-------+---------------+------------+
-|     0|ConfigNode|Running|      127.0.0.1|       22277|
-|     1|ConfigNode|Unknown|      127.0.0.1|       22279|
-|     2|ConfigNode|Running|      127.0.0.1|       22281|
-|     3|  DataNode|Running|      127.0.0.1|        9003|
-|     4|  DataNode|Running|      127.0.0.1|        9005|
-|     5|  DataNode|Running|      127.0.0.1|        9007|
+|     0|ConfigNode|Running|      127.0.0.1|       10710|
+|     1|ConfigNode|Unknown|      127.0.0.1|       10711|
+|     2|ConfigNode|Running|      127.0.0.1|       10712|
+|     3|  DataNode|Running|      127.0.0.1|       10730|
+|     4|  DataNode|Running|      127.0.0.1|       10731|
+|     5|  DataNode|Running|      127.0.0.1|       10732|
 +------+----------+-------+---------------+------------+
 Total line number = 6
 It costs 0.012s
@@ -182,16 +182,16 @@ SHOW CLUSTER DETAILS
 示例:
 ```
 IoTDB> show cluster details
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-----------------+-------------------+-------+
-|NodeID|  NodeType| Status|InternalAddress|InternalPort|ConfigConsensusPort|RpcAddress|RpcPort|DataConsensusPort|SchemaConsensusPort|MppPort|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-----------------+-------------------+-------+
-|     0|ConfigNode|Running|      127.0.0.1|       22277|              22278|          |       |                 |                   |       |
-|     1|ConfigNode|Running|      127.0.0.1|       22279|              22280|          |       |                 |                   |       |
-|     2|ConfigNode|Running|      127.0.0.1|       22281|              22282|          |       |                 |                   |       |
-|     3|  DataNode|Running|      127.0.0.1|        9003|                   | 127.0.0.1|   6667|            40010|              50010|   8777|
-|     4|  DataNode|Running|      127.0.0.1|        9004|                   | 127.0.0.1|   6668|            40011|              50011|   8778|
-|     5|  DataNode|Running|      127.0.0.1|        9005|                   | 127.0.0.1|   6669|            40012|              50012|   8779|
-+------+----------+-------+---------------+------------+-------------------+----------+-------+-----------------+-------------------+-------+
++------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
+|NodeID|  NodeType| Status|InternalAddress|InternalPort|ConfigConsensusPort|RpcAddress|RpcPort|MppPort|SchemaConsensusPort|DataConsensusPort|
++------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
+|     0|ConfigNode|Running|      127.0.0.1|       10710|              10720|          |       |       |                   |                 |
+|     1|ConfigNode|Running|      127.0.0.1|       10711|              10721|          |       |       |                   |                 |
+|     2|ConfigNode|Running|      127.0.0.1|       10712|              10722|          |       |       |                   |                 |
+|     3|  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.340s
 ```
diff --git a/docs/zh/UserGuide/Cluster/Cluster-Setup.md b/docs/zh/UserGuide/Cluster/Cluster-Setup.md
index 461c28cd77..7efbc5b2da 100644
--- a/docs/zh/UserGuide/Cluster/Cluster-Setup.md
+++ b/docs/zh/UserGuide/Cluster/Cluster-Setup.md
@@ -26,8 +26,12 @@
 ## 安装环境
 
 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. 关闭交换内存。
 
@@ -53,11 +57,29 @@ git checkout v1.0.0
 
 在 IoTDB 根目录下:
 
-```
-mvn clean package -pl distribution -am -DskipTests
-```
+| **配置项**                        | **说明**                               | **默认**          | **用法**                                                                                                                                               |
+|--------------------------------|--------------------------------------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
+| 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 |
+
+**注意:上述配置项在节点启动后即不可更改,且务必保证所有端口均未被占用,否则节点无法启动。**
 
-集群的二进制版本在目录 **distribution/target** 下,其中,all-bin 包含 ConfigNode 和 DataNode,DataNode 内包含 Cli。
+### 5.2.3 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,可设置多个,用逗号(",")隔开 |
 
 ## 安装包说明
 
@@ -225,17 +247,35 @@ sbin\start-cli.bat
 
 ## 集群缩容
 
-### 移除 ConfigNode
+以在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。
 
 需要在活跃的 ConfigNode 上执行 remove-confignode 脚本,且保证移除后集群中至少有一个活跃的 ConfigNode。
 
 Linux 移除方式:
 ```
+<<<<<<< HEAD
 # 根据 confignode_id 移除节点
 ./sbin/remove-confignode.sh <confignode_id>
 
 # 根据 ConfigNode 内部通讯地址和端口移除节点
 ./sbin/remove-confignode.sh <internal_address>:<internal_port>
+=======
+IoTDB> show cluster details
++------+----------+-------+---------------+------------+-------------------+------------+-------+-------+-------------------+-----------------+
+|NodeID|  NodeType| Status|InternalAddress|InternalPort|ConfigConsensusPort|  RpcAddress|RpcPort|MppPort|SchemaConsensusPort|DataConsensusPort|
++------+----------+-------+---------------+------------+-------------------+------------+-------+-------+-------------------+-----------------+
+|     0|ConfigNode|Running|   192.168.1.10|       10710|              10720|            |       |       |                   |                 |
+|     2|ConfigNode|Running|   192.168.1.11|       10710|              10720|            |       |       |                   |                 |
+|     3|ConfigNode|Running|   192.168.1.12|       10710|              10720|            |       |       |                   |                 |
+|     1|  DataNode|Running|   192.168.1.20|       10730|                   |192.168.1.20|   6667|  10740|              10750|            10760|
+|     4|  DataNode|Running|   192.168.1.21|       10730|                   |192.168.1.21|   6667|  10740|              10750|            10760|
+|     5|  DataNode|Running|   192.168.1.22|       10730|                   |192.168.1.22|   6667|  10740|              10750|            10760|
++------+----------+-------+---------------+------------+-------------------+------------+-------+-------+-------------------+-----------------+
+Total line number = 6
+It costs 0.012s
+>>>>>>> 905a356c8 ([IOTDB-5306] Change default port of ConfigNode and DataNode (#8635))
 ```
 
 Windows 移除方式:
diff --git a/docs/zh/UserGuide/Edge-Cloud-Collaboration/Sync-Tool.md b/docs/zh/UserGuide/Edge-Cloud-Collaboration/Sync-Tool.md
index c269441b21..38e3977c6d 100644
--- a/docs/zh/UserGuide/Edge-Cloud-Collaboration/Sync-Tool.md
+++ b/docs/zh/UserGuide/Edge-Cloud-Collaboration/Sync-Tool.md
@@ -345,16 +345,16 @@ It costs 0.134s
 - 执行 `CREATE PIPE p to demo` 提示 `PIPE [p] is STOP, please retry after drop it.`
   - 原因:当前 Pipe 已存在
   - 解决方案:删除 Pipe 后重新创建
-- 执行 `CREATE PIPE p to demo`提示 `Fail to create PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:9005)}.`
+- 执行 `CREATE PIPE p to demo`提示 `Fail to create PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:10732)}.`
   - 原因:存在状态为 Running 的 DataNode 无法连通
   - 解决方案:执行 `SHOW DATANODES` 语句,检查无法连通的 DataNode 网络,或等待其状态变为 Unknown 后重新执行语句。
-- 执行 `START PIPE p` 提示 `Fail to start PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:9005)}.`
+- 执行 `START PIPE p` 提示 `Fail to start PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:10732)}.`
   - 原因:存在状态为 Running 的 DataNode 无法连通
   - 解决方案:执行 `SHOW DATANODES` 语句,检查无法连通的 DataNode 网络,或等待其状态变为 Unknown 后重新执行语句。
-- 执行 `STOP PIPE p` 提示 `Fail to stop PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:9005)}.`
+- 执行 `STOP PIPE p` 提示 `Fail to stop PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:10732)}.`
   - 原因:存在状态为 Running 的 DataNode 无法连通
   - 解决方案:执行 `SHOW DATANODES` 语句,检查无法连通的 DataNode 网络,或等待其状态变为 Unknown 后重新执行语句。
-- 执行 `DROP PIPE p` 提示 `Fail to DROP_PIPE because Fail to drop PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:9005)}. Please execute [DROP PIPE p] later to retry.`
+- 执行 `DROP PIPE p` 提示 `Fail to DROP_PIPE because Fail to drop PIPE [p] because Connection refused on DataNode: {id=2, internalEndPoint=TEndPoint(ip:127.0.0.1, port:10732)}. Please execute [DROP PIPE p] later to retry.`
   - 原因:存在状态为 Running 的 DataNode 无法连通,Pipe 已在部分节点上被删除,状态被置为 ***DROP***。
   - 解决方案:执行 `SHOW DATANODES` 语句,检查无法连通的 DataNode 网络,或等待其状态变为 Unknown 后重新执行语句。
 - 运行时日志提示 `org.apache.iotdb.commons.exception.IoTDBException: root.** already been created as database`
diff --git a/docs/zh/UserGuide/QuickStart/ClusterQuickStart.md b/docs/zh/UserGuide/QuickStart/ClusterQuickStart.md
new file mode 100644
index 0000000000..35e543c52f
--- /dev/null
+++ b/docs/zh/UserGuide/QuickStart/ClusterQuickStart.md
@@ -0,0 +1,180 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    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
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# 快速上手
+
+以本地环境为例,演示 IoTDB 集群的启动、扩容与缩容。
+
+**注意:本文档为使用本地不同端口,进行伪分布式环境部署的教程,仅用于练习。在真实环境部署时,一般不需要修改节点端口,仅需配置节点 IPV4 地址或域名即可。**
+
+## 1. 准备启动环境
+
+解压 apache-iotdb-1.0.0-all-bin.zip 至 cluster0 目录。
+
+## 2. 启动最小集群
+
+在 Linux 环境中,部署 1 个 ConfigNode 和 1 个 DataNode(1C1D)集群版,默认 1 副本:
+```
+./cluster0/sbin/start-confignode.sh
+./cluster0/sbin/start-datanode.sh
+```
+
+## 3. 验证最小集群
+
++ 最小集群启动成功,启动 Cli 进行验证:
+```
+./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)
+  指令,结果如下所示:
+```
+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
+```
+
+## 4. 准备扩容环境
+
+解压 apache-iotdb-1.0.0-all-bin.zip 至 cluster1 目录和 cluster2 目录
+
+## 5. 修改节点配置文件
+
+对于 cluster1 目录:
+
++ 修改 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 |
+
+对于 cluster2 目录:
+
++ 修改 ConfigNode 配置:
+
+| **配置项**                        | **值**           |
+|--------------------------------|-----------------|
+| 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 配置:
+
+| **配置项**                              | **值**           |
+|--------------------------------------|-----------------|
+| 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. 集群扩容
+
+将集群扩容至 3 个 ConfigNode 和 3 个 DataNode(3C3D)集群版,
+指令执行顺序为先启动 ConfigNode,再启动 DataNode:
+```
+./cluster1/sbin/start-confignode.sh
+./cluster2/sbin/start-confignode.sh
+./cluster1/sbin/start-datanode.sh
+./cluster2/sbin/start-datanode.sh
+```
+
+## 7. 验证扩容结果
+
+在 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|          |       |       |                   |                 |
+|     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:
+```
+# 使用 ip:port 移除
+./cluster0/sbin/remove-confignode.sh 127.0.0.1:10711
+
+# 使用节点编号移除
+./cluster0/sbin/remove-confignode.sh 2
+```
+
++ 缩容一个 DataNode:
+```
+# 使用 ip:port 移除
+./cluster0/sbin/remove-datanode.sh 127.0.0.1:6668
+
+# 使用节点编号移除
+./cluster0/sbin/remove-confignode.sh 4
+```
+
+## 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
+```
\ No newline at end of file
diff --git a/docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md b/docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md
index bba974fd34..9123c2000b 100644
--- a/docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md
+++ b/docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md
@@ -157,4 +157,4 @@ $ /%IOTDB_HOME%/sbin/start-cli.sh -h localhost -p 6667 -u root -pw root
             <version>1.0.0</version>
         </dependency>
 ```
-这里是一些使用 IoTDB-JDBC 连接 IoTDB 的示例:https://github.com/apache/iotdb/tree/master/example/jdbc/src/main/java/org/apache/iotdb
+这里是一些使用 IoTDB-JDBC 连接 IoTDB 的示例:https://github.com/apache/iotdb/tree/master/example/jdbc/src/main/java/org/apache/iotdb
\ No newline at end of file
diff --git a/docs/zh/UserGuide/Reference/ConfigNode-Config-Manual.md b/docs/zh/UserGuide/Reference/ConfigNode-Config-Manual.md
index 9a1d0f96c3..c3cf639c71 100644
--- a/docs/zh/UserGuide/Reference/ConfigNode-Config-Manual.md
+++ b/docs/zh/UserGuide/Reference/ConfigNode-Config-Manual.md
@@ -80,7 +80,7 @@ IoTDB 集群的全局配置通过 ConfigNode 配置。
 |:------:|:----------------------|
 |   描述   | ConfigNode 集群服务监听端口   |
 |   类型   | Short Int : [0,65535] |
-|  默认值   | 6667                  |
+|  默认值   | 10710                  |
 | 改后生效方式 | 重启服务生效                |
 
 ### 共识协议
@@ -91,7 +91,7 @@ IoTDB 集群的全局配置通过 ConfigNode 配置。
 |:------:|:----------------------|
 |   描述   | ConfigNode 的共识协议通信端口  |
 |   类型   | Short Int : [0,65535] |
-|  默认值   | 22278                 |
+|  默认值   | 10720                 |
 | 改后生效方式 | 重启服务生效                |
 
 ### 目标 Config Node 配置
@@ -102,7 +102,7 @@ IoTDB 集群的全局配置通过 ConfigNode 配置。
 |:------:|:--------------------------------------|
 |   描述   | 目标 ConfigNode 地址,ConfigNode 通过此地址加入集群 |
 |   类型   | String                                |
-|  默认值   | 127.0.0.1:22277                       |
+|  默认值   | 127.0.0.1:10710                       |
 | 改后生效方式 | 重启服务生效                                |
 
 
diff --git a/docs/zh/UserGuide/Reference/DataNode-Config-Manual.md b/docs/zh/UserGuide/Reference/DataNode-Config-Manual.md
index 53f63f69f2..fad04934f0 100644
--- a/docs/zh/UserGuide/Reference/DataNode-Config-Manual.md
+++ b/docs/zh/UserGuide/Reference/DataNode-Config-Manual.md
@@ -122,7 +122,7 @@ IoTDB DataNode 与 Standalone 模式共用一套配置文件,均位于 IoTDB 
 |:---:|:-------------------|
 |描述| DataNode 内网通信端口    |
 |类型| int                |
-|默认值| 9003               |
+|默认值| 10730               |
 |改后生效方式| 重启服务生效             |
 
 * dn\_mpp\_data\_exchange\_port
@@ -131,7 +131,7 @@ IoTDB DataNode 与 Standalone 模式共用一套配置文件,均位于 IoTDB 
 |:---:|:---|
 |描述| MPP 数据交换端口 |
 |类型| int |
-|默认值| 8777 |
+|默认值| 10740 |
 |改后生效方式|重启服务生效|
 
 * dn\_schema\_region\_consensus\_port
@@ -140,7 +140,7 @@ IoTDB DataNode 与 Standalone 模式共用一套配置文件,均位于 IoTDB 
 |:---:|:---|
 |描述| DataNode 元数据副本的共识协议通信端口 |
 |类型| int |
-|默认值| 50010 |
+|默认值| 10750 |
 |改后生效方式|重启服务生效|
 
 * dn\_data\_region\_consensus\_port
@@ -149,7 +149,7 @@ IoTDB DataNode 与 Standalone 模式共用一套配置文件,均位于 IoTDB 
 |:---:|:---|
 |描述| DataNode 数据副本的共识协议通信端口 |
 |类型| int |
-|默认值| 40010 |
+|默认值| 10760 |
 |改后生效方式|重启服务生效|
 
 * dn\_join\_cluster\_retry\_interval\_ms
@@ -169,7 +169,7 @@ IoTDB DataNode 与 Standalone 模式共用一套配置文件,均位于 IoTDB 
 |:---:|:------------------------------------|
 |描述| ConfigNode 地址,DataNode 启动时通过此地址加入集群 |
 |类型| String                              |
-|默认值| 127.0.0.1:22277                     |
+|默认值| 127.0.0.1:10710                     |
 |改后生效方式| 重启服务生效                              |
 
 ### 连接配置
diff --git a/integration-test/src/main/java/org/apache/iotdb/it/env/RemoteServerEnv.java b/integration-test/src/main/java/org/apache/iotdb/it/env/RemoteServerEnv.java
index 2cc2d1f926..20040842e2 100644
--- a/integration-test/src/main/java/org/apache/iotdb/it/env/RemoteServerEnv.java
+++ b/integration-test/src/main/java/org/apache/iotdb/it/env/RemoteServerEnv.java
@@ -163,7 +163,7 @@ public class RemoteServerEnv implements BaseEnv {
 
   @Override
   public IConfigNodeRPCService.Iface getLeaderConfigNodeConnection() throws ClientManagerException {
-    return clientManager.borrowClient(new TEndPoint(ip_addr, 22277));
+    return clientManager.borrowClient(new TEndPoint(ip_addr, 10710));
   }
 
   @Override
diff --git a/node-commons/src/assembly/resources/sbin/iotdb-common.sh b/node-commons/src/assembly/resources/sbin/iotdb-common.sh
index b41b20a7f4..cc748e946d 100755
--- a/node-commons/src/assembly/resources/sbin/iotdb-common.sh
+++ b/node-commons/src/assembly/resources/sbin/iotdb-common.sh
@@ -171,10 +171,10 @@ checkDataNodePortUsages () {
   else
     echo "Warning: cannot find iotdb-datanode.properties, check the default configuration"
     dn_rpc_port=6667
-    dn_internal_port=9003
-    dn_mpp_data_exchange_port=8777
-    dn_schema_region_consensus_port=50010
-    dn_data_region_consensus_port=40010
+    dn_internal_port=10730
+    dn_mpp_data_exchange_port=10740
+    dn_schema_region_consensus_port=10750
+    dn_data_region_consensus_port=10760
   fi
   if type lsof >/dev/null 2>&1; then
     PID=$(lsof -t -i:"${dn_rpc_port}" -sTCP:LISTEN)
@@ -252,8 +252,8 @@ checkConfigNodePortUsages () {
     cn_consensus_port=$(sed '/^cn_consensus_port=/!d;s/.*=//' "${CONFIGNODE_HOME}"/conf/iotdb-confignode.properties)
   else
     echo "Cannot find iotdb-confignode.properties, check the default configuration"
-    cn_internal_port=22277
-    cn_consensus_port=22278
+    cn_internal_port=10710
+    cn_consensus_port=10720
   fi
   if type lsof >/dev/null 2>&1; then
     PID=$(lsof -t -i:"${cn_internal_port}" -sTCP:LISTEN)
diff --git a/node-commons/src/test/java/org/apache/iotdb/commons/client/ClientManagerTest.java b/node-commons/src/test/java/org/apache/iotdb/commons/client/ClientManagerTest.java
index 18bf4bcd38..1375423486 100644
--- a/node-commons/src/test/java/org/apache/iotdb/commons/client/ClientManagerTest.java
+++ b/node-commons/src/test/java/org/apache/iotdb/commons/client/ClientManagerTest.java
@@ -42,7 +42,7 @@ import static org.mockito.Mockito.mock;
 
 public class ClientManagerTest {
 
-  private final TEndPoint endPoint = new TEndPoint("localhost", 9003);
+  private final TEndPoint endPoint = new TEndPoint("localhost", 10730);
 
   private MockInternalRPCService service;
 
diff --git a/node-commons/src/test/java/org/apache/iotdb/commons/utils/NodeUrlUtilsTest.java b/node-commons/src/test/java/org/apache/iotdb/commons/utils/NodeUrlUtilsTest.java
index fca5f407ab..977ab57039 100644
--- a/node-commons/src/test/java/org/apache/iotdb/commons/utils/NodeUrlUtilsTest.java
+++ b/node-commons/src/test/java/org/apache/iotdb/commons/utils/NodeUrlUtilsTest.java
@@ -48,13 +48,13 @@ public class NodeUrlUtilsTest {
     final List<TConfigNodeLocation> configNodeLocations =
         Arrays.asList(
             new TConfigNodeLocation(
-                0, new TEndPoint("0.0.0.0", 22277), new TEndPoint("0.0.0.0", 22278)),
+                0, new TEndPoint("0.0.0.0", 10710), new TEndPoint("0.0.0.0", 10720)),
             new TConfigNodeLocation(
-                1, new TEndPoint("0.0.0.0", 22279), new TEndPoint("0.0.0.0", 22280)),
+                1, new TEndPoint("0.0.0.0", 10711), new TEndPoint("0.0.0.0", 10721)),
             new TConfigNodeLocation(
-                2, new TEndPoint("0.0.0.0", 22281), new TEndPoint("0.0.0.0", 22282)));
+                2, new TEndPoint("0.0.0.0", 10712), new TEndPoint("0.0.0.0", 10722)));
     final String configNodeUrls =
-        "0,0.0.0.0:22277,0.0.0.0:22278;1,0.0.0.0:22279,0.0.0.0:22280;2,0.0.0.0:22281,0.0.0.0:22282";
+        "0,0.0.0.0:10710,0.0.0.0:10720;1,0.0.0.0:10711,0.0.0.0:10721;2,0.0.0.0:10712,0.0.0.0:10722";
 
     Assert.assertEquals(configNodeUrls, NodeUrlUtils.convertTConfigNodeUrls(configNodeLocations));
     Assert.assertEquals(configNodeLocations, NodeUrlUtils.parseTConfigNodeUrls(configNodeUrls));
diff --git a/node-commons/src/test/java/org/apache/iotdb/commons/utils/ThriftCommonsSerDeUtilsTest.java b/node-commons/src/test/java/org/apache/iotdb/commons/utils/ThriftCommonsSerDeUtilsTest.java
index 31972fc30b..18a679ed2a 100644
--- a/node-commons/src/test/java/org/apache/iotdb/commons/utils/ThriftCommonsSerDeUtilsTest.java
+++ b/node-commons/src/test/java/org/apache/iotdb/commons/utils/ThriftCommonsSerDeUtilsTest.java
@@ -64,10 +64,10 @@ public class ThriftCommonsSerDeUtilsTest {
     TDataNodeLocation dataNodeLocation0 = new TDataNodeLocation();
     dataNodeLocation0.setDataNodeId(0);
     dataNodeLocation0.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation0.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation0.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation0.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation0.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation0.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation0.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation0.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation0.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     try (PublicBAOS byteArrayOutputStream = new PublicBAOS();
         DataOutputStream outputStream = new DataOutputStream(byteArrayOutputStream)) {
@@ -128,10 +128,10 @@ public class ThriftCommonsSerDeUtilsTest {
       TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
       dataNodeLocation.setDataNodeId(i);
       dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667 + i));
-      dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003 + i));
-      dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777 + i));
-      dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010 + i));
-      dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010 + i));
+      dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730 + i));
+      dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740 + i));
+      dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760 + i));
+      dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750 + i));
       regionReplicaSet0.getDataNodeLocations().add(dataNodeLocation);
     }
     try (PublicBAOS byteArrayOutputStream = new PublicBAOS();
diff --git a/node-commons/src/test/java/org/apache/iotdb/commons/utils/ThriftConfigNodeSerDeUtilsTest.java b/node-commons/src/test/java/org/apache/iotdb/commons/utils/ThriftConfigNodeSerDeUtilsTest.java
index 6c85a7b3fe..24aee00bf6 100644
--- a/node-commons/src/test/java/org/apache/iotdb/commons/utils/ThriftConfigNodeSerDeUtilsTest.java
+++ b/node-commons/src/test/java/org/apache/iotdb/commons/utils/ThriftConfigNodeSerDeUtilsTest.java
@@ -57,7 +57,7 @@ public class ThriftConfigNodeSerDeUtilsTest {
   public void readWriteTConfigNodeLocationTest() {
     TConfigNodeLocation configNodeLocation0 =
         new TConfigNodeLocation(
-            0, new TEndPoint("0.0.0.0", 22277), new TEndPoint("0.0.0.0", 22278));
+            0, new TEndPoint("0.0.0.0", 10710), new TEndPoint("0.0.0.0", 10720));
 
     ThriftConfigNodeSerDeUtils.serializeTConfigNodeLocation(configNodeLocation0, buffer);
     buffer.flip();
diff --git a/server/src/assembly/resources/conf/iotdb-datanode.properties b/server/src/assembly/resources/conf/iotdb-datanode.properties
index 7eea86f87f..03ea81c3a4 100644
--- a/server/src/assembly/resources/conf/iotdb-datanode.properties
+++ b/server/src/assembly/resources/conf/iotdb-datanode.properties
@@ -39,22 +39,22 @@ dn_internal_address=127.0.0.1
 # Used for communication inside cluster.
 # Bind with dn_internal_address
 # Datatype: int
-dn_internal_port=9003
+dn_internal_port=10730
 
 # Port for data exchange among DataNodes inside cluster
 # Bind with dn_internal_address
 # Datatype: int
-dn_mpp_data_exchange_port=8777
+dn_mpp_data_exchange_port=10740
 
 # port for consensus's communication for schema region inside cluster.
 # Bind with dn_internal_address
 # Datatype: int
-dn_schema_region_consensus_port=50010
+dn_schema_region_consensus_port=10750
 
 # port for consensus's communication for data region inside cluster.
 # Bind with dn_internal_address
 # Datatype: int
-dn_data_region_consensus_port=40010
+dn_data_region_consensus_port=10760
 
 # Datatype: long
 # The time of data node waiting for the next retry to join into the cluster.
@@ -66,9 +66,9 @@ dn_data_region_consensus_port=40010
 
 # For the first ConfigNode to start, cn_target_config_node_list points to its own cn_internal_address:cn_internal_port.
 # For other ConfigNodes that to join the cluster, target_config_node_list points to any running ConfigNode's cn_internal_address:cn_internal_port.
-# Format: address:port(,address:port)*   e.g. 127.0.0.1:22277,127.0.0.1:22279
+# Format: address:port(,address:port)*   e.g. 127.0.0.1:10710,127.0.0.1:10711
 # Datatype: String
-dn_target_config_node_list=127.0.0.1:22277
+dn_target_config_node_list=127.0.0.1:10710
 
 ####################
 ### Connection Configuration
diff --git a/server/src/assembly/resources/sbin/start-datanode.bat b/server/src/assembly/resources/sbin/start-datanode.bat
index 7559ad2db8..ea66a36632 100755
--- a/server/src/assembly/resources/sbin/start-datanode.bat
+++ b/server/src/assembly/resources/sbin/start-datanode.bat
@@ -139,10 +139,10 @@ IF EXIST "%IOTDB_CONF%\iotdb-datanode.properties" (
 ) ELSE (
   echo "Can't find iotdb-datanode.properties, check the default ports"
   set dn_rpc_port=6667
-  set dn_internal_port=9003
-  set dn_mpp_data_exchange_port=8777
-  set dn_schema_region_consensus_port=50010
-  set dn_data_region_consensus_port=40010
+  set dn_internal_port=10730
+  set dn_mpp_data_exchange_port=10740
+  set dn_schema_region_consensus_port=10750
+  set dn_data_region_consensus_port=10760
 )
 
 echo Check whether the ports are occupied....
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 0069f6171c..462c45ed83 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -869,17 +869,17 @@ public class IoTDBConfig {
   private String internalAddress = "127.0.0.1";
 
   /** Internal port for coordinator */
-  private int internalPort = 9003;
+  private int internalPort = 10730;
 
   /** Internal port for dataRegion consensus protocol */
-  private int dataRegionConsensusPort = 40010;
+  private int dataRegionConsensusPort = 10760;
 
   /** Internal port for schemaRegion consensus protocol */
-  private int schemaRegionConsensusPort = 50010;
+  private int schemaRegionConsensusPort = 10750;
 
   /** Ip and port of config nodes. */
   private List<TEndPoint> targetConfigNodeList =
-      Collections.singletonList(new TEndPoint("127.0.0.1", 22277));
+      Collections.singletonList(new TEndPoint("127.0.0.1", 10710));
 
   /** The time of data node waiting for the next retry to join into the cluster */
   private long joinClusterRetryIntervalMs = TimeUnit.SECONDS.toMillis(5);
@@ -910,7 +910,7 @@ public class IoTDBConfig {
   private int seriesPartitionSlotNum = 10000;
 
   /** Port that mpp data exchange thrift service listen to. */
-  private int mppDataExchangePort = 8777;
+  private int mppDataExchangePort = 10740;
 
   /** Core pool size of mpp data exchange. */
   private int mppDataExchangeCorePoolSize = 10;
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 7ba0807316..e3915805a8 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -1814,7 +1814,7 @@ public class IoTDBDescriptor {
         conf.setTargetConfigNodeList(NodeUrlUtils.parseTEndPointUrls(configNodeUrls));
       } catch (BadNodeUrlException e) {
         logger.error(
-            "Config nodes are set in wrong format, please set them like 127.0.0.1:22277,127.0.0.1:22281");
+            "Config nodes are set in wrong format, please set them like 127.0.0.1:10710,127.0.0.1:10712");
       }
     }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
index 151668e148..ab5d491a40 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
@@ -261,9 +261,9 @@ public class ColumnHeaderConstant {
           new ColumnHeader(CONFIG_CONSENSUS_PORT, TSDataType.TEXT),
           new ColumnHeader(RPC_ADDRESS, TSDataType.TEXT),
           new ColumnHeader(RPC_PORT, TSDataType.TEXT),
-          new ColumnHeader(DATA_CONSENSUS_PORT, TSDataType.TEXT),
+          new ColumnHeader(MPP_PORT, TSDataType.TEXT),
           new ColumnHeader(SCHEMA_CONSENSUS_PORT, TSDataType.TEXT),
-          new ColumnHeader(MPP_PORT, TSDataType.TEXT));
+          new ColumnHeader(DATA_CONSENSUS_PORT, TSDataType.TEXT));
 
   public static final List<ColumnHeader> showClusterParametersColumnHeaders =
       ImmutableList.of(
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/TestRPCClient.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/TestRPCClient.java
index b9a358c2c3..872e1eb66d 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/TestRPCClient.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/TestRPCClient.java
@@ -66,7 +66,7 @@ public class TestRPCClient {
 
   private void loadSnapshot() {
     try (SyncIoTConsensusServiceClient client =
-        syncClientManager.borrowClient(new TEndPoint("127.0.0.1", 40011))) {
+        syncClientManager.borrowClient(new TEndPoint("127.0.0.1", 10761))) {
       TTriggerSnapshotLoadRes res =
           client.triggerSnapshotLoad(
               new TTriggerSnapshotLoadReq(
@@ -79,7 +79,7 @@ public class TestRPCClient {
 
   private void testAddPeer() {
     try (SyncIoTConsensusServiceClient client =
-        syncClientManager.borrowClient(new TEndPoint("127.0.0.1", 40012))) {
+        syncClientManager.borrowClient(new TEndPoint("127.0.0.1", 10762))) {
       TInactivatePeerRes res =
           client.inactivatePeer(
               new TInactivatePeerReq(new DataRegionId(1).convertToTConsensusGroupId()));
@@ -91,7 +91,7 @@ public class TestRPCClient {
 
   private void removeRegionPeer() {
     try (SyncDataNodeInternalServiceClient client =
-        INTERNAL_SERVICE_CLIENT_MANAGER.borrowClient(new TEndPoint("127.0.0.1", 9003))) {
+        INTERNAL_SERVICE_CLIENT_MANAGER.borrowClient(new TEndPoint("127.0.0.1", 10730))) {
       client.removeRegionPeer(
           new TMaintainPeerReq(new DataRegionId(1).convertToTConsensusGroupId(), getLocation2(3)));
     } catch (Exception e) {
@@ -101,7 +101,7 @@ public class TestRPCClient {
 
   private void addPeer() {
     try (SyncDataNodeInternalServiceClient client =
-        INTERNAL_SERVICE_CLIENT_MANAGER.borrowClient(new TEndPoint("127.0.0.1", 9003))) {
+        INTERNAL_SERVICE_CLIENT_MANAGER.borrowClient(new TEndPoint("127.0.0.1", 10730))) {
       client.addRegionPeer(
           new TMaintainPeerReq(new DataRegionId(1).convertToTConsensusGroupId(), getLocation2(3)));
     } catch (Exception e) {
@@ -113,25 +113,25 @@ public class TestRPCClient {
     return new TDataNodeLocation(
         dataNodeId,
         new TEndPoint("127.0.0.1", 6669),
-        new TEndPoint("127.0.0.1", 9005),
-        new TEndPoint("127.0.0.1", 8779),
-        new TEndPoint("127.0.0.1", 40012),
-        new TEndPoint("127.0.0.1", 50012));
+        new TEndPoint("127.0.0.1", 10732),
+        new TEndPoint("127.0.0.1", 10742),
+        new TEndPoint("127.0.0.1", 10762),
+        new TEndPoint("127.0.0.1", 10752));
   }
 
   private TDataNodeLocation getLocation2(int dataNodeId) {
     return new TDataNodeLocation(
         dataNodeId,
         new TEndPoint("127.0.0.1", 6668),
-        new TEndPoint("127.0.0.1", 9004),
-        new TEndPoint("127.0.0.1", 8778),
-        new TEndPoint("127.0.0.1", 40011),
-        new TEndPoint("127.0.0.1", 50011));
+        new TEndPoint("127.0.0.1", 10731),
+        new TEndPoint("127.0.0.1", 10741),
+        new TEndPoint("127.0.0.1", 10761),
+        new TEndPoint("127.0.0.1", 10751));
   }
 
   private void createDataRegion() {
     try (SyncDataNodeInternalServiceClient client =
-        INTERNAL_SERVICE_CLIENT_MANAGER.borrowClient(new TEndPoint("127.0.0.1", 9005))) {
+        INTERNAL_SERVICE_CLIENT_MANAGER.borrowClient(new TEndPoint("127.0.0.1", 10732))) {
       TCreateDataRegionReq req = new TCreateDataRegionReq();
       req.setStorageGroup("root.test.g_0");
       TRegionReplicaSet regionReplicaSet = new TRegionReplicaSet();
@@ -141,26 +141,26 @@ public class TestRPCClient {
           new TDataNodeLocation(
               3,
               new TEndPoint("127.0.0.1", 6667),
-              new TEndPoint("127.0.0.1", 9003),
-              new TEndPoint("127.0.0.1", 8777),
-              new TEndPoint("127.0.0.1", 40010),
-              new TEndPoint("127.0.0.1", 50010)));
+              new TEndPoint("127.0.0.1", 10730),
+              new TEndPoint("127.0.0.1", 10740),
+              new TEndPoint("127.0.0.1", 10760),
+              new TEndPoint("127.0.0.1", 10750)));
       locationList.add(
           new TDataNodeLocation(
               4,
               new TEndPoint("127.0.0.1", 6668),
-              new TEndPoint("127.0.0.1", 9004),
-              new TEndPoint("127.0.0.1", 8778),
-              new TEndPoint("127.0.0.1", 40011),
-              new TEndPoint("127.0.0.1", 50011)));
+              new TEndPoint("127.0.0.1", 10731),
+              new TEndPoint("127.0.0.1", 10741),
+              new TEndPoint("127.0.0.1", 10761),
+              new TEndPoint("127.0.0.1", 10751)));
       locationList.add(
           new TDataNodeLocation(
               4,
               new TEndPoint("127.0.0.1", 6669),
-              new TEndPoint("127.0.0.1", 9005),
-              new TEndPoint("127.0.0.1", 8779),
-              new TEndPoint("127.0.0.1", 40012),
-              new TEndPoint("127.0.0.1", 50012)));
+              new TEndPoint("127.0.0.1", 10732),
+              new TEndPoint("127.0.0.1", 10742),
+              new TEndPoint("127.0.0.1", 10762),
+              new TEndPoint("127.0.0.1", 10752)));
       regionReplicaSet.setDataNodeLocations(locationList);
       req.setRegionReplicaSet(regionReplicaSet);
       TSStatus res = client.createDataRegion(req);
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterDetailsTask.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterDetailsTask.java
index daff96ca94..01e77c71bb 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterDetailsTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterDetailsTask.java
@@ -134,9 +134,9 @@ public class ShowClusterDetailsTask implements IConfigTask {
                     e.getInternalEndPoint().getPort(),
                     e.getClientRpcEndPoint().getIp(),
                     e.getClientRpcEndPoint().getPort(),
-                    e.getDataRegionConsensusEndPoint().getPort(),
+                    e.getMPPDataExchangeEndPoint().getPort(),
                     e.getSchemaRegionConsensusEndPoint().getPort(),
-                    e.getMPPDataExchangeEndPoint().getPort()));
+                    e.getDataRegionConsensusEndPoint().getPort()));
 
     DatasetHeader datasetHeader = DatasetHeaderFactory.getShowClusterDetailsHeader();
     future.set(new ConfigTaskResult(TSStatusCode.SUCCESS_STATUS, builder.build(), datasetHeader));
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/FragmentInstanceSerdeTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/FragmentInstanceSerdeTest.java
index 8585732e76..968bc5c61b 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/FragmentInstanceSerdeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/FragmentInstanceSerdeTest.java
@@ -62,10 +62,10 @@ public class FragmentInstanceSerdeTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(0);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     PlanFragmentId planFragmentId = new PlanFragmentId("test", -1);
     FragmentInstance fragmentInstance =
@@ -104,10 +104,10 @@ public class FragmentInstanceSerdeTest {
     TDataNodeLocation dataNodeLocation = new TDataNodeLocation();
     dataNodeLocation.setDataNodeId(0);
     dataNodeLocation.setClientRpcEndPoint(new TEndPoint("0.0.0.0", 6667));
-    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 9003));
-    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 8777));
-    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 40010));
-    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 50010));
+    dataNodeLocation.setInternalEndPoint(new TEndPoint("0.0.0.0", 10730));
+    dataNodeLocation.setMPPDataExchangeEndPoint(new TEndPoint("0.0.0.0", 10740));
+    dataNodeLocation.setDataRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10760));
+    dataNodeLocation.setSchemaRegionConsensusEndPoint(new TEndPoint("0.0.0.0", 10750));
 
     PlanFragmentId planFragmentId = new PlanFragmentId("test2", 1);
     FragmentInstance fragmentInstance =
diff --git a/server/src/test/resources/datanode1conf/iotdb-datanode.properties b/server/src/test/resources/datanode1conf/iotdb-datanode.properties
index 5bb899e5ba..60aac5c54f 100644
--- a/server/src/test/resources/datanode1conf/iotdb-datanode.properties
+++ b/server/src/test/resources/datanode1conf/iotdb-datanode.properties
@@ -21,12 +21,12 @@ dn_rpc_address=0.0.0.0
 dn_internal_address=127.0.0.1
 
 dn_rpc_port=6667
-dn_mpp_data_exchange_port=8777
-dn_internal_port=9003
-dn_data_region_consensus_port=40010
-dn_schema_region_consensus_port=50030
+dn_internal_port=10730
+dn_mpp_data_exchange_port=10740
+dn_schema_region_consensus_port=10750
+dn_data_region_consensus_port=10760
 
-dn_target_config_node_list=127.0.0.1:22277,127.0.0.1:22279,127.0.0.1:22281
+dn_target_config_node_list=127.0.0.1:10710,127.0.0.1:10711,127.0.0.1:10712
 
 dn_system_dir=target/datanode1/system
 dn_data_dirs=target/datanode1/data
diff --git a/server/src/test/resources/datanode2conf/iotdb-datanode.properties b/server/src/test/resources/datanode2conf/iotdb-datanode.properties
index 0daf3bd5dd..decb6a4a38 100644
--- a/server/src/test/resources/datanode2conf/iotdb-datanode.properties
+++ b/server/src/test/resources/datanode2conf/iotdb-datanode.properties
@@ -20,13 +20,13 @@
 dn_rpc_address=0.0.0.0
 dn_internal_address=127.0.0.1
 
-dn_rpc_port=6669
-dn_mpp_data_exchange_port=8779
-dn_internal_port=9005
-dn_data_region_consensus_port=40012
-dn_schema_region_consensus_port=50032
+dn_rpc_port=6668
+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:22277,127.0.0.1:22279,127.0.0.1:22281
+dn_target_config_node_list=127.0.0.1:10710,127.0.0.1:10711,127.0.0.1:10712
 
 dn_system_dir=target/datanode2/system
 dn_data_dirs=target/datanode2/data
diff --git a/server/src/test/resources/datanode3conf/iotdb-datanode.properties b/server/src/test/resources/datanode3conf/iotdb-datanode.properties
index 9837d3e26a..b087567713 100644
--- a/server/src/test/resources/datanode3conf/iotdb-datanode.properties
+++ b/server/src/test/resources/datanode3conf/iotdb-datanode.properties
@@ -20,13 +20,13 @@
 dn_rpc_address=0.0.0.0
 dn_internal_address=127.0.0.1
 
-dn_rpc_port=6671
-dn_mpp_data_exchange_port=8781
-dn_internal_port=9007
-dn_data_region_consensus_port=40014
-dn_schema_region_consensus_port=50034
+dn_rpc_port=6669
+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:22277,127.0.0.1:22279,127.0.0.1:22281
+dn_target_config_node_list=127.0.0.1:10710,127.0.0.1:10711,127.0.0.1:10712
 
 dn_system_dir=target/datanode3/system
 dn_data_dirs=target/datanode3/data