This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push: new d2e4c7f2d5e [fix](install) Fix typo of install docs (#1208) d2e4c7f2d5e is described below commit d2e4c7f2d5e22ff0e36445f002db66d62bbbc9b0 Author: KassieZ <139741991+kass...@users.noreply.github.com> AuthorDate: Mon Oct 21 12:02:42 2024 +0800 [fix](install) Fix typo of install docs (#1208) # Versions - [ ] dev - [ ] 3.0 - [ ] 2.1 - [ ] 2.0 # Languages - [ ] Chinese - [ ] English --- docusaurus.config.js | 2 +- .../k8s-deploy/install-config-cluster.md | 53 +-- .../cluster-deployment/k8s-deploy/install-env.md | 3 +- .../k8s-deploy/install-operator.md | 198 +++++------ .../k8s-deploy/install-quickstart.md | 122 +++++-- .../cluster-deployment/run-docker-cluster.md | 24 +- .../cluster-deployment/standard-deployment.md | 361 ++++++++++----------- 7 files changed, 414 insertions(+), 349 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index d042a9be40b..cdca350a5d5 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -26,7 +26,7 @@ function getDocsVersions() { } function getLatestVersion() { - return VERSIONS.includes('2.1') ? '2.1' : VERSIONS[0]; + return VERSIONS.includes('3.0') ? '3.0' : VERSIONS[0]; } /** @type {import('@docusaurus/types').Config} */ diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-config-cluster.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-config-cluster.md index db62f76f81d..e95b2f11f9b 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-config-cluster.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-config-cluster.md @@ -27,7 +27,8 @@ under the License. 在 Doris 集群中,包括 FE、BE、CN 和监控组件在内的组件都需要将数据持久化到物理存储中。Kubernetes 提供了 [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) 的能力将数据持久化到物理存储中。在 Kubernetes 环境中,主要存在两种类型的 Persistent Volumes: -- 本地 PV 存储(Local Persistent Volumes):本地 PV 是 Kubernetes 直接使用宿主机的本地磁盘目录来持久化存储容器的数据。本地 PV 提供更小的网络延迟,在使用 SSD 等高性能硬盘时,可以提供更好的读写能力。由于本地 PV 与宿主机绑定,在宿主机出现故障时,本地 PV 进行故障漂移。 +- 本地 PV 存储(Local Persistent Volumes):本地 PV 是 Kubernetes 直接使用宿主机的本地磁盘目录来持久化存储容器的数据。本地 PV 提供更小的网络延迟,在使用 SSD 等高性能硬盘时,可以提供更好的读写能力。由于本地 PV 与宿主机绑定,在宿主机出现故障时,本地 PV 的数据可能无法访问,因为它与宿主机绑定。 + - 网络 PV 存储(Network Persistent Volumes):网络 PV 是通过网络访问的存储资源。网络 PV 可以被集群中的任一节点访问,在宿主机出现故障时,网络 PV 可以挂载到其他节点继续使用。 StorageClass 可以用于定义 PV 的类型和行为,通过 StorageClass 可以将磁盘资源与容器解耦,从而实现数据的持久性与可靠性。在 Doris Operator 中,在 Kubernetes 上部署 Doris,可以支持本地 PV 与网络 PV,可以根据业务需求进行选择。 @@ -42,8 +43,11 @@ StorageClass 可以用于定义 PV 的类型和行为,通过 StorageClass 可 在 Doris 中,建议持久化存储以下目录: - FE 节点:doris-meta、log + - BE 节点:storage、log + - CN 节点:storage、log + - Broker 节点:log 在 Doris 中存在多种日志类型,如 INFO 日志、OUT 日志、GC 日志以及审计日志。Doris Operator 可以将日志同时输出到 console 与指定目录下。如果用户的 Kubernetes 有完整的日志收集能力,可以通过 console 输出来收集 Doris 的 INFO 日志。建议将 Doris 的所有日志通过 PVC 配置持久化到指定存储中,这将有助于问题的定位与排查。 @@ -53,7 +57,7 @@ StorageClass 可以用于定义 PV 的类型和行为,通过 StorageClass 可 Doris Operator 使用 Kubernetes 默认的 StorageClass 来支持 FE 与 BE 的存储。在 DorisCluster 的 CR 中,通修改 StorageClass 指定 `persistentVolumeClaimSpec.storageClassName`,可以配置指定的网络 PV。 ```yaml -persistentVolumes: + persistentVolumes: - mountPath: /opt/apache-doris/fe/doris-meta name: storage0 persistentVolumeClaimSpec: @@ -69,7 +73,7 @@ persistentVolumes: **FE 配置持久化存储** -在部署集群时,建议对 FE 中的 doris-meta 与 log 目录做持久化存储。doris-meta 用户存放元数据,一般在几百 MB 到几十 GB,建议预留 100GB。log 目录用来存放 FE 日志,一般建议预留 50GB。 +在部署集群时,建议对 FE 中的 doris-meta 与 Log 目录做持久化存储。doris-meta 用户存放元数据,一般在几百 MB 到几十 GB,建议预留 100GB。Log 目录用来存放 FE 日志,一般建议预留 50GB。 下例中 FE 使用 StorageClass 挂载了元数据存储与日志存储: @@ -115,14 +119,14 @@ doris-storage openebs.io/local Delete Wai ``` :::tip 提示 -可以通过配置 [ConfigMap](<#FE ConfigMap>) 修改默认的元数据路径与日志路径: -1. fe-meta 的 mounthPath 配置需要与 ConfigMap 中的 meta_dir 变量配置路径一致,默认情况下元数据会写入 /opt/apache-doris/fe/doris-meta 目录下; -2. fe-log 的 mounthPath 配置需要与 ConfigMap 中的 LOG_DIR 变量路径一致,默认情况下日志数据会写入到 /opt/apache-doris/fe/log 目录下。 +可以通过配置 [ConfigMap](#fe-configmap) 修改默认的元数据路径与日志路径: +1. fe-meta 的 mountPath 配置需要与 ConfigMap 中的 meta_dir 变量配置路径一致,默认情况下元数据会写入 `/opt/apache-doris/fe/doris-meta` 目录下; +2. fe-log 的 mountPath 配置需要与 ConfigMap 中的 LOG_DIR 变量路径一致,默认情况下日志数据会写入到 `/opt/apache-doris/fe/log` 目录下。 ::: **BE 配置持久化存储** -在部署集群时,建议对 BE 中的 storage 与 log 目录做持久化存储。storage 用户存放数据,需要根据业务数据量衡量。log 目录用来存放 FE 日志,一般建议预留 50GB。 +在部署集群时,建议对 BE 中的 Storage 与 Log 目录做持久化存储。Storage 用户存放数据,需要根据业务数据量衡量。Log 目录用来存放 BE 日志,一般建议预留 50GB。 下例中 BE 使用 StorageClass 挂载了数据存储与日志存储: @@ -132,7 +136,7 @@ beSpec: - mountPath: /opt/apache-doris/be/storage name: be-storage persistentVolumeClaimSpec: - storageClassName: {storageClassName} + storageClassName: ${storageClassName} accessModes: - ReadWriteOnce resources: @@ -141,7 +145,7 @@ beSpec: - mountPath: /opt/apache-doris/be/log name: belog persistentVolumeClaimSpec: - storageClassName: {storageClassName} + storageClassName: ${storageClassName} accessModes: - ReadWriteOnce resources: @@ -153,7 +157,7 @@ beSpec: ### 集群名称 -可以通过修改 DorisCluster Custom Resource 中的 metadata.name 来配置集群名称。 +可以通过修改 DorisCluster Custom Resource 中的 `metadata.name` 来配置集群名称。 ### 镜像版本 @@ -161,19 +165,20 @@ beSpec: ### 集群拓扑 -在部署 Doris 集群前,需要根据业务规划集群的拓扑结构。可以通过修改 spec.{feSpec|beSpec}.replicas 配置各个组件的节点数。基于生产节点的数据高可用原则,Doris Operator 规定集群中 Kubernetes 集群中至少有 3 个节点。同时,为了保证集群的可用性,建议至少部署 3 个 FE 与 BE 节点。 +在部署 Doris 集群前,需要根据业务规划集群的拓扑结构。可以通过修改 `spec.{feSpec|beSpec}.replicas` 配置各个组件的节点数。为了高可用性和容错性,建议至少部署 3 个 FE 与 BE 节点,但具体节点数取决于业务需求和资源限制。 ### 服务配置 -Kubernetes 提供不同的 Serivce 方式暴露 Doris 的对外访问接口,如 `ClusterIP`、`NodePort`、`LoadBalancer` 等。 +Kubernetes 提供不同的 Service 方式暴露 Doris 的对外访问接口,如 `ClusterIP`、`NodePort`、`LoadBalancer` 等。 **ClusterIP** -ClusterIP 类型的 service 会在集群内部创建虚拟 IP。通过 ClusterIP 只能在 Kubernetes 集群内访问,对外不可见。在 Doris Custom Resource 中,默认使用 ClusterIP 类型的 Service。 +ClusterIP 类型的 Service 会在集群内部创建虚拟 IP。通过 ClusterIP 只能在 Kubernetes 集群内访问,对外不可见。在 Doris Custom Resource 中,默认使用 ClusterIP 类型的 Service。 **NodePort** -在没有 LoadBalancer 时,可以通过 NodePort 暴露。NodePort 是通过节点的 IP 和静态端口暴露服务。通过请求 `NodeIP + NodePort`,可以从集群的外部访问一个 NodePort 服务。 +在没有 LoadBalancer 时,可以通过 NodePort 暴露服务。NodePort 是通过节点的 IP 和静态端口暴露服务。通过请求 `NodeIP + NodePort`,可以从集群的外部访问一个 NodePort 服务。 + ```yaml ... @@ -196,6 +201,7 @@ Doris 在 Kubernetes 使用 `ConfigMap` 实现配置文件和服务解耦。Dori 在 Doris Cluster 的 CR 中,提供 ConfigMapInfo 定义给各个组件挂载配置信息。ConfigMapInfo 包含两个变量: - ConfigMapName 表示想要使用的 ConfigMap 的名称 + - ResolveKey 表示对应的配置文件,FE 配置选择 fe.conf,BE 配置选择 be.conf ### FE ConfigMap @@ -246,8 +252,11 @@ data: :::tip 提示 在 ConfigMap 中使用 data 字段存储键值对。在上述 FE ConfigMap 中: + - fe.conf 是键值对中的 key,使用 `|` 表示将保留后续字符串中的换行符和缩进 + - 后续配置为键值对中的 value,与 fe.conf 文件中的配置相同 + 在 data 字段中,由于使用了 `|` 符号保留后续字符串格式,后续的配置中需要保持两个空格缩进。 ::: @@ -319,7 +328,9 @@ data: :::tip 提示 在 ConfigMap 中使用 data 字段存储键值对。在上述 BE ConfigMap 中: + - be.conf 是键值对中的 key,使用 `|` 表示将保留后续字符串中的换行符和缩进 + - 后续配置为键值对中的 value,与 be.conf 文件中的配置相同 在 data 字段中,由于使用了 `|` 符号保留后续字符串格式,后续的配置中需要保持两个空格缩进。 ::: @@ -375,9 +386,9 @@ data: ... ``` -其中,在 data 字段中存储了配置的键值对,在上例中存储了 key 分别为 be.conf 与 core-site.xml 的键值对。 +其中,在 Data 字段中存储了配置的键值对,在上例中存储了 Key 分别为 be.conf 与 core-site.xml 的键值对。 -在 data 字段中,需要满足以下的键值结构映射: +在 Data 字段中,需要满足以下的键值结构映射: ```yaml data: @@ -391,7 +402,7 @@ data: ### 为 BE 配置多盘存储 -Doris 支持为 BE 挂载多块 PV。通过配置 BE 参数 `storage_root_path` 可以指定 BE 使用多盘存储。在 Kubernetes 环境中,可以在 DorisCluster CR 中对 pv 进行映射,通过 ConfigMap 为 BE 配置 `storage_root_path` 参数。 +Doris 支持为 BE 挂载多块 PV。通过配置 BE 参数 `storage_root_path` 可以指定 BE 使用多盘存储。在 Kubernetes 环境中,可以在 DorisCluster CR 中对 PV 进行映射,通过 ConfigMap 为 BE 配置 `storage_root_path` 参数。 **为 BE 多盘存储配置 pv 映射** @@ -400,7 +411,7 @@ Doris 支持为 BE 挂载多块 PV。通过配置 BE 参数 `storage_root_path` - 通过 `configMapInfo` 配置可以标识使用相同 namespace 下的指定 ConfigMap,resolveKey 固定为 be.conf - 通过 `persistentVolumeClaimSpec` 可以为 BE 存储目录配置多个 pv 映射 -下例中为 BE 配置了两块盘的 pv 映射: +下例中为 BE 配置了两块盘的 PV 映射: ```yaml ... @@ -452,6 +463,7 @@ Doris 支持为 BE 挂载多块 PV。通过配置 BE 参数 `storage_root_path` 在上例中 Doris 集群指定了多盘存储 - beSpec.persistentVolumes 以数组的方式指定了多块 pv,映射了 `/opt/apache-doris/be/storage{1,2}` 两个数据存储 pv + - beSpec.configMapInfo 中指定了需要挂载名为 `be-configmap` 的 ConfigMap **配置 BE ConfigMap 指定 storage_root_path 参数** @@ -499,7 +511,10 @@ data: ``` :::caution 注意 + 在创建 BE ConfigMap 时,需要注意以下事项: + 1. metadata.name 需要与 DorisCluster CR 中 beSpec.configMapInfo.configMapName 相同,表示该集群使用指定的 ConfigMap; -2. ConfigMap 中的 storage_root_path 参数要与 DorisCluster CR 中的 persistentVolume 数据盘一一对应。 + +2. ConfigMap 中的 `storage_root_path` 参数要与 DorisCluster CR 中的 persistentVolume 数据盘一一对应。 ::: \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-env.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-env.md index ff1422b8519..5e6138baeeb 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-env.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-env.md @@ -45,8 +45,9 @@ systemctl disable firewalld ``` 如果无法关闭防火墙服务,可以根据规划,打开 FE 与 BE 端口: + :::tip 提示 -如果无法关闭防火墙,需要根据 Kubernetes 映射规则打开 Doris 相应端口的防火墙。具体端口可以参考 [Doris 集群端口规划](../standard-deployment.md#%E7%BD%91%E7%BB%9C%E9%9C%80%E6%B1%82)。 +如果无法关闭防火墙,需要根据 Kubernetes 映射规则打开 Doris 相应端口的防火墙。具体端口可以参考 [Doris 集群端口规划](../standard-deployment#检测和关闭系统防火墙)。 ::: diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-operator.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-operator.md index aaf0c5d8311..69046abeb41 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-operator.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-operator.md @@ -63,7 +63,7 @@ dorisclusters.doris.selectdb.com 2024-02-22T16:23:13Z ### 方案一:快速部署 Doris Operator -可以直接拉去仓库中的 Doris Operator 模板进行快速部署。 +可以直接拉取仓库中的 Doris Operator 模板进行快速部署。 使用以下命令可以在 Kubernetes 集群中部署 Doris Operator: @@ -87,7 +87,7 @@ deployment.apps/doris-operator created 在创建完 CRD 后,在 Kubernetes 集群上部署 Doris Operator 有两种方式:在线与离线部署。 -在 operator.yaml 文件中规范了部署 operator 的服务的最低要求。为了适配复杂的生产环境,可以下载 operator.yaml 文件后,按照期望更新其中配置。 +在 operator.yaml 文件中规范了部署 Operator 的服务的最低要求。为了适配复杂的生产环境,可以下载 operator.yaml 文件后,按照期望更新其中配置。 **在线安装 Doris Operator** @@ -111,157 +111,157 @@ deployment.apps/doris-operator created **离线安装 Doris Operator** -1. 下载 operator 运行所需镜像文件 +1. 下载 Operator 运行所需镜像文件 -如果服务器没有连通外网,需要先下载对应的 operator 镜像文件。Doris Operator 用到以下的镜像: + 如果服务器没有连通外网,需要先下载对应的 Operator 镜像文件。Doris Operator 用到以下的镜像: -```shell -selectdb/doris.k8s-operator:latest -``` + ```shell + selectdb/doris.k8s-operator:latest + ``` -在可以连通外网的服务器中运行以下的命令,可以将镜像下载下来: + 在可以连通外网的服务器中运行以下的命令,可以将镜像下载下来: -```shell -## download doris operator image -docker pull selectdb/doris.k8s-operator:latest -## save the doris operator image as a tar package -docker save -o doris.k8s-operator-latest.tar selectdb/doris.k8s-operator:latest -``` + ```shell + ## download doris operator image + docker pull selectdb/doris.k8s-operator:latest + ## save the doris operator image as a tar package + docker save -o doris.k8s-operator-latest.tar selectdb/doris.k8s-operator:latest + ``` -将已打包的 tar 文件放置到所有的 Kubernetes node 节点中,运行以下命令上传镜像: + 将已打包的 tar 文件放置到所有的 Kubernetes Node 节点中,运行以下命令上传镜像: -```shell -docker load -i doris.k8s-operator-latest.tar -``` + ```shell + docker load -i doris.k8s-operator-latest.tar + ``` 2. 配置 Doris Operator -下载 operator.yaml 文件后,可以根据生产环境期望修改模板。 + 下载 operator.yaml 文件后,可以根据生产环境期望修改模板。 -Doris Operator 在 Kubernetes 集群中是一个无状态的 Deployment,可以根据需求修改如 `limits`、`replica`、`label`、`namespace` 等项目。如需要指定某一版本的 doirs operator 镜像,可以在上传镜像后对 operator.yaml 文件做如下修改: + Doris Operator 在 Kubernetes 集群中是一个无状态的 Deployment,可以根据需求修改如 `limits`、`replica`、`label`、`namespace` 等项目。如需要指定某一版本的 Doirs Operator 镜像,可以在上传镜像后对 operator.yaml 文件做如下修改: -```shell -... -containers: - - command: - - /dorisoperator - args: - - --leader-elect - image: selectdb/doris.k8s-operator:v1.0.0 - name: dorisoperator - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - "ALL" + ```yaml ... -``` + containers: + - command: + - /dorisoperator + args: + - --leader-elect + image: selectdb/doris.k8s-operator:v1.0.0 + name: dorisoperator + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - "ALL" + ... + ``` 3. 安装 Doris Operator -在修改 Doris Operator 模板后,可以使用 apply 命令部署 Operator: + 在修改 Doris Operator 模板后,可以使用 Apply 命令部署 Operator: -```shell -kubectl apply -f ./operator.yaml -``` + ```shell + kubectl apply -f ./operator.yaml + ``` -以下为期望输出结果: + 以下为期望输出结果: -```shell -namespace/doris created -role.rbac.authorization.k8s.io/leader-election-role created -rolebinding.rbac.authorization.k8s.io/leader-election-rolebinding created -clusterrole.rbac.authorization.k8s.io/doris-operator created -clusterrolebinding.rbac.authorization.k8s.io/doris-operator-rolebinding created -serviceaccount/doris-operator created -deployment.apps/doris-operator created -``` + ```shell + namespace/doris created + role.rbac.authorization.k8s.io/leader-election-role created + rolebinding.rbac.authorization.k8s.io/leader-election-rolebinding created + clusterrole.rbac.authorization.k8s.io/doris-operator created + clusterrolebinding.rbac.authorization.k8s.io/doris-operator-rolebinding created + serviceaccount/doris-operator created + deployment.apps/doris-operator created + ``` ### 方案三:Helm 部署 Doris Operator Helm Chart 是一系列描述 Kubernetes 相关资源的 YAML 文件的封装。通过 Helm 部署应用时,你可以自定义应用的元数据,以便于分发应用。Chart 是 Helm 的软件包,采用 TAR 格式,用于部署 Kubernetes 原生应用程序。通过 Helm Chart 可以简化部署 Doris 集群的流程。 -1. 添加部署仓库 - **在线添加仓库** -通过 `repo add` 命令添加远程仓库 +1. 添加部署仓库 -```shell -helm repo add doris-repo https://charts.selectdb.com -``` + 通过 `repo add` 命令添加远程仓库 -通过 `repo update` 命令更新最新版本的 chart + ```shell + helm repo add doris-repo https://charts.selectdb.com + ``` -```shell -helm repo update doris-repo -``` + 通过 `repo update` 命令更新最新版本的 Chart + + ```shell + helm repo update doris-repo + ``` 2. 安装 Doris Operator -通过 `helm install` 命令可以使用默认配置在 doris 的 namespace 中安装 Doris Operator + 通过 `helm install` 命令可以使用默认配置在 Doris 的 Namespace 中安装 Doris Operator -```shell -helm install operator doris-repo/doris-operator -``` + ```shell + helm install operator doris-repo/doris-operator + ``` -如果需要自定义装配 [values.yaml](https://artifacthub.io/packages/helm/doris/doris-operator?modal=values) ,可以参考如下命令: + 如果需要自定义装配 [values.yaml](https://artifacthub.io/packages/helm/doris/doris-operator?modal=values) ,可以参考如下命令: -```shell -helm install -f values.yaml operator doris-repo/doris-operator -``` + ```shell + helm install -f values.yaml operator doris-repo/doris-operator + ``` -通过 `kubectl get pods` 命令查看 Pod 的部署状态。当 Doris Operator 的 Pod 处于 Running 状态且 Pod 内所有容器都已经就绪,即部署成功。 + 通过 `kubectl get pods` 命令查看 Pod 的部署状态。当 Doris Operator 的 Pod 处于 Running 状态且 Pod 内所有容器都已经就绪,即部署成功。 -```shell -kubectl get pod --namespace doris -``` + ```shell + kubectl get pod --namespace doris + ``` -返回结果如下: + 返回结果如下: -```shell -NAME READY STATUS RESTARTS AGE -doris-operator-866bd449bb-zl5mr 1/1 Running 0 18m -``` + ```shell + NAME READY STATUS RESTARTS AGE + doris-operator-866bd449bb-zl5mr 1/1 Running 0 18m + ``` **离线添加仓库** -如果服务器无法连接外网,需要预先下载 Doris Operator 与 Doris Cluster 的 chart 资源。 +如果服务器无法连接外网,需要预先下载 Doris Operator 与 Doris Cluster 的 Chart 资源。 -1. 下载离线 chart 资源 +1. 下载离线 Chart 资源 -下载 `doris-operator-{chart_version}.tgz` 安装 Doris Operator chart。如需要下载 1.4.0 版本的 Doris Operator 可以使用以下命令: + 下载 `doris-operator-{chart_version}.tgz` 安装 Doris Operator Chart。如需要下载 1.4.0 版本的 Doris Operator 可以使用以下命令: -```shell -wget https://charts.selectdb.com/doris-operator-1.4.0.tgz -``` + ```shell + wget https://charts.selectdb.com/doris-operator-1.4.0.tgz + ``` 2. 安装 Doris Operator -通过 `helm install` 命令可以安装 Doris Operator。 + 通过 `helm install` 命令可以安装 Doris Operator。 -```shell -helm install operator doris-operator-1.4.0.tgz -``` + ```shell + helm install operator doris-operator-1.4.0.tgz + ``` -如果需要自定义装配 [values.yaml](https://artifacthub.io/packages/helm/doris/doris-operator?modal=values) ,可以参考如下命令: + 如果需要自定义装配 [values.yaml](https://artifacthub.io/packages/helm/doris/doris-operator?modal=values) ,可以参考如下命令: -```shell -helm install -f values.yaml operator doris-operator-1.4.0.tgz -``` + ```shell + helm install -f values.yaml operator doris-operator-1.4.0.tgz + ``` -通过 `kubectl get pods` 命令查看 Pod 的部署状态。当 Doris Operator 的 Pod 处于 Running 状态且 Pod 内所有容器都已经就绪,即部署成功。 + 通过 `kubectl get pods` 命令查看 Pod 的部署状态。当 Doris Operator 的 Pod 处于 Running 状态且 Pod 内所有容器都已经就绪,即部署成功。 -```shell -kubectl get pod --namespace doris -``` + ```shell + kubectl get pod --namespace doris + ``` -返回结果如下: + 返回结果如下: -```shell -NAME READY STATUS RESTARTS AGE -doris-operator-866bd449bb-zl5mr 1/1 Running 0 18m -``` + ```shell + NAME READY STATUS RESTARTS AGE + doris-operator-866bd449bb-zl5mr 1/1 Running 0 18m + ``` ## 查看服务状态 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-quickstart.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-quickstart.md index d33c52005dd..c9ef6c71bc5 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-quickstart.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/k8s-deploy/install-quickstart.md @@ -21,31 +21,42 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> + 本章节介绍如何在测试 Kubernetes 集群中部署 Doris Operator 与 Doris 集群。 部署操作如下: + 1. 创建 Kubernetes 测试集群 + 2. 部署 Doris Operator + 3. 部署 Doris 集群 + 4. 连接访问 Doris 集群 ## 第 1 步:创建 Kubernetes 测试集群 + 此步骤简述在没有 k8s 集群的情况下如何快速搭建一套单节点 k8s 集群,如果已有 k8s 集群,此步骤请跳过。 Kind 是目前比较通用的创建本地 Kubernetes 测试环境的方案。Kind 使用 Docker 容器作为节点,在本地创建和运行 Kubernetes 集群。 + 1. 部署前置条件 + 部署前需要确保环境中具有以下组件: -| 组件 | 版本要求 | -|---------|-----------| -| Docker | \>= 18.09 | -| kubectl | \>=1.19 | -| kind | \>=0.8.0 | + | 组件 | 版本要求 | + |---------|-----------| + | Docker | \>= 18.09 | + | kubectl | \>=1.19 | + | kind | \>=0.8.0 | -2. 使用 kind 部署 Kubernetes 集群 - 本例中使用 kind 0.10.0 版本安装 Kubernetes 集群,命令如下: - ``` - kind create cluster --image kindest/node:v1.20.2 --name test-doris +2. 使用 Kind 部署 Kubernetes 集群 + + 本例中使用 Kind 0.10.0 版本安装 Kubernetes 集群,命令如下: + + ```shell + kind create cluster --image kindest/node:v1.20.2 --name test-doris ``` 期望输出结果: + ``` Creating cluster "test-doris" ... ✓ Ensuring node image (kindest/node:v1.20.2) @@ -57,34 +68,49 @@ Kind 是目前比较通用的创建本地 Kubernetes 测试环境的方案。Kin Set kubectl context to "kind-test-doris" You can now use your cluster with: ``` + 3. 检查 Kubernetes 集群状态 - 使用以下命令检查 Kubernete 集群状态: - ``` + + 使用以下命令检查 Kubernetes 集群状态: + + ```shell kubectl cluster-info --context kind-test-doris ``` + 以下是期望输出结果: + ``` Kubernetes control plane is running at https://127.0.0.1:40075 KubeDNS is running at https://127.0.0.1:40075/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. ``` + ## 第 2 步:部署 Doris Operator -部署 Doris Operator 分成安装定义和部署 operator 服务两部分: + +部署 Doris Operator 分成安装定义和部署 Operator 服务两部分: + 1. 安装 Doris Operator CRD + 通过以下命令添加 Doris Operator 的自定义资源(CRD): - ``` + + ```shell kubectl apply -f https://raw.githubusercontent.com/selectdb/doris-operator/master/config/crd/bases/doris.selectdb.com_dorisclusters.yaml ``` - 期望输出结果: + 期望输出结果: + ``` customresourcedefinition.apiextensions.k8s.io/dorisclusters.doris.selectdb.com created ``` + 2. 安装 Doris Operator - 通过以下命令安装 Doris Operator : - ``` + + 通过以下命令安装 Doris Operator: + + ```shell kubectl apply -f https://raw.githubusercontent.com/selectdb/doris-operator/master/config/operator/operator.yaml ``` 期望输出结果: + ``` namespace/doris created role.rbac.authorization.k8s.io/leader-election-role created @@ -94,62 +120,94 @@ Kind 是目前比较通用的创建本地 Kubernetes 测试环境的方案。Kin serviceaccount/doris-operator created deployment.apps/doris-operator created ``` + 3. 检查 Doris Operator 状态 + 通过以下命令检查 Doris Operator 的部署状态: - ``` + + ```shell kubectl get pods -n doris ``` - 期望输出结果: + 期望输出结果: + ``` NAME READY STATUS RESTARTS AGE doris-operator-7f578c86cb-nz6jn 1/1 Running 0 19m ``` - Doris Operator 相关配置以及其他部署方式可参考[部署 operator 部分](./install-operator.md)。 + + Doris Operator 相关配置以及其他部署方式可参考[部署 operator 部分](./install-operator)。 + ## 第 3 步:部署 Doris 集群 + 1. 下载模板 Doris 部署模板: - ``` + + ```shell curl -O https://raw.githubusercontent.com/apache/doris-operator/master/doc/examples/doriscluster-sample.yaml ``` -2. 根据[集群配置章节](./install-doris-cluster.md)按需进行定制化配置,配置完成后通过如下命令部署: - ``` + +2. 根据[集群配置章节](./install-doris-cluster)按需进行定制化配置,配置完成后通过如下命令部署: + + ```shell kubectl apply -f doriscluster-sample.yaml ``` + 3. 检查集群部署状态: + 通过查看 pods 的状态检查集群的状态: - ``` + + ```shell kubectl get pods ``` + 期望结果: + ``` NAME READY STATUS RESTARTS AGE doriscluster-sample-fe-0 1/1 Running 0 2m doriscluster-sample-be-0 1/1 Running 0 3m ``` + 检查部署资源的状态: - ``` + + ```shell kubectl get dcr -n doris ``` + 期望结果: + ``` NAME FESTATUS BESTATUS CNSTATUS BROKERSTATUS doriscluster-sample available available ``` + ## 第 4 步:连接访问 Doris 集群 -在测试环境中快速部署的 Doris 集群,可以进入容器 FE 内部使用 MySQL Client 链接 Doris 进行测试操作。其他访问方式可参考[集群访问章节](./install-access-cluster.md)配置使用。 -1. 获取 FE 容器名称: - ``` + +在测试环境中快速部署的 Doris 集群,可以进入容器 FE 内部使用 MySQL Client 链接 Doris 进行测试操作。其他访问方式可参考[集群访问章节](./install-access-cluster)配置使用。 + +1. 获取 FE 容器名称: + + ```shell kubectl get pod -n doris | grep fe - doriscluster-sample-fe-0 1/1 Running 0 16m ``` - 在本例中,FE 容器名为 doriscluster-sample-fe-0。 - + + 期望结果: -2. 进入 FE 容器内部: ``` + NAME READY STATUS RESTARTS AGE + doriscluster-sample-fe-0 1/1 Running 0 16m + ``` + + 在本例中,FE 容器名为 `doriscluster-sample-fe-0`。 + + +2. 进入 FE 容器内部: + + ```shell kubectl -n doris exec -it doriscluster-sample-fe-0 /bin/bash ``` 3. 在 FE 容器内部使用 MySQL Client 链接 Doris 集群: - ``` + + ```shell mysql -uroot -P9030 -h127.0.0.1 ``` \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/run-docker-cluster.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/run-docker-cluster.md index adc26da9ede..6f1b4d79f7e 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/run-docker-cluster.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/run-docker-cluster.md @@ -32,11 +32,11 @@ under the License. **概述** -Docker 镜像在制作前要提前准备好制作机器,该机器的平台架构决定了制作以后的 Docker Image 适用的平台架构,如 X86_64 机器,需要下载 X86_64 的 Doris 二进制程序,制作以后的 Image 仅可在 X86_64 平台上运行。ARM64 平台同理。 +在制作 Docker 镜像前,请确保制作机器的平台架构与目标运行平台一致。例如,X86_64 机器应下载 X86_64 版本的 Doris 二进制程序,以确保镜像的兼容性。ARM64 平台同理。 **硬件要求** -推荐配置:4 核 16GB 内存 +构建镜像时:推荐配置为 4 核 CPU 和 16GB 内存 **软件要求** @@ -48,21 +48,21 @@ Docker Version:20.10 及以后版本 **Dockerfile 脚本编写注意** -- 基础父镜像选用经过 Docker-Hub 认证的 OpenJDK 官方镜像,版本用 JDK 1.8 版本,推荐基础父镜像:openjdk:8u342-jdk; +- 基础父镜像应选用经过 Docker-Hub 认证的 OpenJDK 官方镜像,版本为 JDK 8,推荐基础父镜像为 openjdk:8u342-jdk。 -- 需要内嵌脚本来完成 FE 的启动、多 FE 注册、状态检查和 BE 的启动、注册 BE 至 FE、状态检查等任务流程; +- 需要编写内嵌脚本来完成 Doris FE 的启动、多 FE 注册、状态检查以及 BE 的启动、注册至 FE、状态检查等任务流程。这些脚本应正确处理 Doris 的依赖和环境变量。 -- 应用程序在 Docker 内启动时不建议使用`--daemon` 的方式启动,否则在 K8s 等编排工具部署过程中会有异常。 +- 在 Docker 容器内启动应用程序时,不建议使用 --daemon 方式,以避免容器退出或进程管理问题。 **构建方式** 编译 Docker Image 的 Dockerfile 脚本中,关于 Apache Doris 程序二进制包的加载方式,有两种: -- 通过 wget / curl 在编译时执行下载命令,随后完成 Docker Build 制作过程 +- **在线下载**:通过 `wget` / `curl` 在编译时执行下载命令,随后完成 Docker Build 制作过程。这种方式可能减小镜像大小,但依赖于稳定的网络环境,且构建时间可能较长(取决于缓存命中情况)。 -- 提前下载二进制包至编译目录,然后通过 ADD 或者 COPY 命令加载至 Docker Build 过程中 +- **提前下载**:将二进制包提前下载至编译目录,然后通过 `ADD` 或者 `COPY` 命令加载至 Docker Build 过程中。这种方式适用于网络环境不佳的情况。 -使用前者会让 Docker Image Size 更小,但是如果构建失败的话可能下载操作会重复进行,导致构建时间过长,而后者更适用于网络环境不是很好的构建环境。这里以第二种方式进行示例。 +以下以第二种方式(提前下载)为例进行说明: ### 构建 FE 镜像 @@ -126,10 +126,10 @@ docker build . -t ${fe-tagName} 1. 构建环境目录如下: -```SQL +```sql └── docker-build // 构建根目录 └── be // BE 构建目录 - ├── dockerfile // dockerfile 脚本 + ├── Dockerfile // Dockerfile 脚本 └── resource // 资源目录 ├── init_be.sh // 启动及注册脚本 └── apache-doris-2.0.3-bin.tar.gz // 二进制程序包 @@ -226,9 +226,9 @@ Doris Docker 适用的网络模式有两种。 - 适合跨多节点部署的 HOST 模式,这种模式适合每个节点部署 1 FE 1 BE。 -- 适合单节点部署多 Doris 进程的子网网桥模式,这种模式适合单节点部署(推荐),若要多节点混部需要做更多组件部署(不推荐)。 +- 适合单节点部署多 Doris 进程的桥接网络模式,这种模式适合单节点部署(推荐),若要多节点混部需要做更多组件部署(不推荐)。 -为便于展示,本章节仅演示子网网桥模式编写的脚本。 +为便于展示,本章节仅演示桥接网络模式编写的脚本。 **接口说明** diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/standard-deployment.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/standard-deployment.md index aa7cba36e75..bc0d425dde1 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/standard-deployment.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/install/cluster-deployment/standard-deployment.md @@ -22,6 +22,7 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> + 手动部署 Doris 集群,通常要进行四步规划: 1. 软硬件环境检查:检查用户的硬件资源情况及操作系统兼容性 @@ -40,29 +41,27 @@ under the License. **CPU** -当安装 Doris 时,建议选择支持 AVX2 指令集的机器,以利用 AVX2 的向量化能力实现查询向量化加速。 +当安装 Doris 时,建议选择配备支持 AVX2 指令集的机器,以利用 AVX2 的向量化能力实现查询向量化加速。 -运行以下命令,有输出结果,及表示机器支持 AVX2 指令集。 +运行以下命令,有输出结果,即表示机器支持 AVX2 指令集。 ```sql cat /proc/cpuinfo | grep avx2 ``` -如果机器不支持 AVX2 指令集,可以使用 no AVX2 的 Doris 安装包进行部署。 +如果机器不支持 AVX2 指令集,可以使用 No AVX2 的 Doris 安装包进行部署。 **内存** -Doris 没有强制的内存限制。一般在生产环境中,建议内存至少是 CPU 核数的 4 倍(例如,16 核机器至少配置 64G 内存)。在内存是 CPU 核数 8 倍时,会得到更好的性能。 +Doris 没有强制的内存限制。但在生产环境中,一般建议内存至少是 CPU 核数的 4 倍(例如,16 核机器至少配置 64G 内存)。当内存是 CPU 核数的 8 倍时,性能更佳。 **存储** -Doris 部署时数据可以存放在 SSD 或 HDD 硬盘或者对象存储中。 - -在以下几种场景中建议使用 SSD 作为数据存储: +Doris 部署时数据可以存放在 SSD 或 HDD 硬盘或者对象存储中。在以下几种场景中建议使用 SSD 作为数据存储: -- 大规模数据量下的高并发点查场景 +- 大规模数据量下的高并发点查场景。 -- 大规模数据量下的高频数据更新场景 +- 大规模数据量下的高频数据更新场景。 **文件系统** @@ -70,7 +69,7 @@ ext4 和 xfs 文件系统均支持。 **网卡** -Doris 在进行计算过程涉及将数据分片分发到不同的实例上进行并行处理,会导致一定的网络资源开销。为了最大程度优化 Doris 性能并降低网络资源开销,强烈建议在部署时选用万兆网卡(10 Gigabit Ethernet,即 10GbE)或者更快网络。 +Doris 在计算过程中会将数据分片分发到不同实例进行并行处理,这会产生一定的网络资源开销。为最大程度优化 Doris 性能并降低网络资源开销,强烈建议在部署时选用万兆网卡(10 Gigabit Ethernet,即 10GbE)或更快网络。 ### 服务器建议配置 @@ -83,8 +82,7 @@ Doris 支持运行和部署在 x86-64 架构的服务器平台或 ARM64 架构 | Frontend | 8 核 + | 8 GB+ | SSD 或 SATA,10 GB+ | 千兆/万兆网卡 | 1 | | Backend | 8 核 + | 16 GB+ | SSD 或 SATA,50 GB+ | 千兆/万兆网卡 | 1 | -:::tip -说明 +:::tip 说明 - 在验证测试环境中,可以将 FE 与 BE 部署在同一台服务器上 @@ -94,7 +92,7 @@ Doris 支持运行和部署在 x86-64 架构的服务器平台或 ARM64 架构 - **多个 FE 所在服务器的时钟必须保持一致,最多允许 5 秒的时钟偏差** -- 测试环境也可以仅使用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。 +- 测试环境也可以仅使用一个 BE 进行测试。实际生产环境中,BE 实例数量直接决定整体查询延迟。 ::: **生产环境** @@ -104,24 +102,23 @@ Doris 支持运行和部署在 x86-64 架构的服务器平台或 ARM64 架构 | Frontend | 16 核 + | 64 GB+ | SSD 或 RAID 卡,100GB+ | 万兆网卡 | 1 | | Backend | 16 核 + | 64 GB+ | SSD 或 SATA,100G+ | 万兆网卡 | 3 | -:::tip -说明 +:::tip 说明 -- 在生产环境中,如果 FE 与 BE 混布,需要注意资源争用问题,建议元数据存储与数据存储分盘存放 +- 在生产环境中,如果 FE 与 BE 混布,需要注意资源争用问题,建议元数据存储与数据存储分盘存放。 -- BE 节点可以配置多块硬盘存储,在一个 BE 实例上绑定多块 HDD 或 SSD 盘 +- BE 节点可以配置多块硬盘存储,在一个 BE 实例上绑定多块 HDD 或 SSD 盘。 -- 集群的性能与 BE 节点的资源有关,BE 节点越多,Doris 性能越好。通常情况下在 10 - 100 台机器上可以充分发挥 Doris 的性能 +- 集群性能与 BE 节点资源有关,BE 节点越多,Doris 性能越好。通常情况下,在 10 - 100 台机器上可以充分发挥 Doris 的性能。 ::: ### 硬盘空间计算 -在 Doris 集群中,FE 主要用于元数据存储,包括元数据 edit log 和 image。BE 的磁盘空间主要用于存放数据,需要根据业务需求计算。 +在 Doris 集群中,FE 主要用于元数据存储,包括元数据 Edit Log 和 Image。BE 的磁盘空间主要用于存放数据,需要根据业务需求计算。 | 组件 | 磁盘空间说明 | | ------ | ------------------------------------------------------------ | | FE | 元数据一般在几百 MB 到几 GB,建议不低于 100GB | -| BE | Doris 默认 LZ4 压缩方式进行存储,压缩比在 0.3 - 0.5 左右磁盘空间需要按照总数据量 * 3(3 副本)计算需要预留出 40% 空间用作后台 compaction 以及临时数据的存储 | +| BE | Doris 默认使用 LZ4 压缩方式存储,压缩比在 0.3 - 0.5 左右。磁盘空间需按照总数据量 * 3(3 副本)计算,并预留出 40% 空间用于后台 Compaction 及临时数据存储。| | Broker | 如需部署 Broker,通常情况下可以将 Broker 节点与 FE / BE 节点部署在同一台机器上 | ### Java 版本 @@ -146,7 +143,7 @@ Doris 的所有进程都依赖 Java。 swapoff -a ``` -**永久关闭**,使用 Linux root 账户,注释掉 /etc/fstab 中的 swap 分区,然后重启即可彻底关闭 swap 分区。 +**永久关闭**,使用 Linux root 账户,注释掉 `/etc/fstab` 中的 swap 分区,然后重启即可彻底关闭 swap 分区。 ```Plain # /etc/fstab @@ -157,14 +154,15 @@ tmpfs /tmp tmpfs nodev,nosuid 0 0 /dev/sda3 /home ext4 defaults,noatime 0 2 ``` -:::caution -不建议使用设置 vm.swappiness = 0 的方式,因为这个参数在不同的 Linux 内核版本会有不同的语义,很多情况下不能完全关闭 swap。 +:::caution 注意 +不建议使用设置 `vm.swappiness = 0` 的方式,因为这个参数在不同的 Linux 内核版本会有不同的语义,很多情况下不能完全关闭 swap。 ::: ### 检测和关闭系统防火墙 如果发现端口不同,可以试着关闭防火墙,确认是否是本机防火墙造成。如果是防火墙造成,可以根据配置的 Doris 各组件端口打开相应的端口通信。 + ```sql sudo systemctl stop firewalld.service sudo systemctl disable firewalld.service @@ -191,13 +189,13 @@ vi /etc/security/limits.conf * hard nofile 1000000 ``` -:::caution +:::caution 注意 当前用户需要退出当前 Session,并重新登录进入才能生效 ::: -### 修改虚拟内存区域数量为 +### 修改虚拟内存区域数量 -修改虚拟内存区域至少 2000000 +修改虚拟内存区域至少为 2000000 ```sql sysctl -w vm.max_map_count=2000000 @@ -216,127 +214,123 @@ echo never > /sys/kernel/mm/transparent_hugepage/defrag ### 端口规划 -Doris 各个实例直接通过网络进行通讯,其正常运行需要网络环境提供以下的端口。管理员可以根据实际环境自行调整 Doris 的端口: +Doris 的各个实例通过网络进行通信,其正常运行需要网络环境提供以下端口。管理员可以根据实际环境自行调整 Doris 的端口配置: -| 实例名称 | 端口名称 | 默认端口 | 通信方向 | 说明 | -| -------- | ---------------------- | -------- | -------------------------- | ---------------------------------------------------- | -| BE | be_port | 9060 | FE --> BE | BE 上 thrift server 的端口,用于接收来自 FE 的请求 | -| BE | webserver_port | 8040 | BE <--> BE | BE 上的 http server 的端口 | -| BE | heartbeat_service_port | 9050 | FE --> BE | BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳 | -| BE | brpc_port | 8060 | FE <--> BE,BE <--> BE | BE 上的 brpc 端口,用于 BE 之间通讯 | -| FE | http_port | 8030 | FE <--> FE,Client <--> FE | FE 上的 http server 端口 | -| FE | rpc_port | 9020 | BE --> FE,FE <--> FE | FE 上的 thrift server 端口,每个 fe 的配置需要保持一致 | -| FE | query_port | 9030 | Client <--> FE | FE 上的 MySQL server 端口 | -| FE | edit_log_port | 9010 | FE <--> FE | FE 上的 bdbje 之间通信用的端口 | -| Broker | broker_ipc_port | 8000 | FE --> Broker,BE --> Broker | Broker 上的 thrift server,用于接收请求 | +| 实例名称 | 端口名称 | 默认端口 | 通信方向 | 说明 | +| -------- | ---------------------- | -------- | -------------------------- | ----------------------------------------------------- | +| BE | be_port | 9060 | FE -> BE | BE 上 Thrift Server 的端口,用于接收来自 FE 的请求 | +| BE | webserver_port | 8040 | BE <-> BE | BE 上的 HTTP Server 端口 | +| BE | heartbeat_service_port | 9050 | FE -> BE | BE 上的心跳服务端口(Thrift),用于接收来自 FE 的心跳 | +| BE | brpc_port | 8060 | FE <-> BE,BE <-> BE | BE 上的 BRPC 端口,用于 BE 之间的通信 | +| FE | http_port | 8030 | FE <-> FE,Client <-> FE | FE 上的 HTTP Server 端口 | +| FE | rpc_port | 9020 | BE -> FE,FE <-> FE | FE 上的 Thrift Server 端口,每个 FE 的配置需保持一致 | +| FE | query_port | 9030 | Client <-> FE | FE 上的 MySQL Server 端口 | +| FE | edit_log_port | 9010 | FE <-> FE | FE 上的 bdbje 通信端口 | +| Broker | broker_ipc_port | 8000 | FE -> Broker,BE -> Broker | Broker 上的 Thrift Server 端口,用于接收请求 | ### 节点数量规划 -**FE 节点数量** - -FE 节点主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。 +**FE** **节点数量** -对于生产集群,一般至少需要部署 3 节点 FE 的高可用环境。FE 节点分为两种角色: +FE 节点主要负责用户请求的接入、查询解析规划、元数据管理及节点管理等工作。 -- Follower 节点参与选举操作,当 Master 节点宕机后,会选择一个可用的 Follower 节点成为新的 Master; +对于生产集群,一般建议部署至少 3 个节点的 FE 以实现高可用环境。FE 节点分为以下两种角色: -- Observer 节点仅从 Leader 节点同步元数据,不参与选举。可以横向扩展以提供元数据的读服务的扩展性。 +- Follower 节点:参与选举操作,当 Master 节点宕机时,会选择一个可用的 Follower 节点成为新的 Master。 +- Observer 节点:仅从 Leader 节点同步元数据,不参与选举,可用于横向扩展以提升元数据的读服务能力。 -通常情况下,建议部署 3 个 Follower 节点。在高并发的场景中,可以通过扩展 Observer 节点提高集群的连接数。 +通常情况下,建议部署至少 3 个 Follower 节点。在高并发的场景中,可以通过增加 Observer 节点的数量来提高集群的连接数。 **BE 节点数量** -BE 节点负责数据的存储与计算。在生产环境中,一般会使用 3 副本存储数据,建议部署至少 3 个 BE 节点。 +BE 节点负责数据的存储与计算。在生产环境中,为了数据的可靠性和容错性,通常会使用 3 副本存储数据,因此建议部署至少 3 个 BE 节点。 -BE 节点可以横向扩容,通过扩展 BE 节点的数量,可以提高查询的性能与并发能力。 - -## 4 安装集群 +BE 节点支持横向扩容,通过增加 BE 节点的数量,可以有效提升查询的性能和并发处理能力。 ### 部署 FE Master 节点 **创建元数据路径** -FE 元数据通常不超过 10GB,建议与 BE 节点数据存储在不同的硬盘上。 - -在解压安装包时,会默认附带 doris-meta 目录,建议可以创建独立的元数据目录并创建该目录到 doris-meta 的软连接。**生产环境强烈建议单独指定目录不要放在 Doris 安装目录下,最好是单独的磁盘(如果有 SSD 最好),测试开发环境可以使用默认配置** +FE 元数据通常不超过 10GB,建议将其存储在与 BE 节点数据存储不同的硬盘上,以避免潜在的 I/O 竞争。 -```sql -## 选择独立于 BE 数据的硬盘,创建 FE 的元数据目录 -mkdir -p <doris_meta_created> +在解压 Doris 安装包时,会默认附带 `doris-meta` 目录。建议创建一个独立的元数据目录,并建立该目录到 `doris-meta` 的符号链接。对于生产环境,强烈建议单独指定元数据目录,并避免将其放置在 Doris 安装目录下,最好是使用单独的磁盘(如果可能的话,使用 SSD)。测试和开发环境可以使用默认配置。 -## 创建 FE 的元数据目录软连接 +```Shell +# 选择独立于 BE 数据存储的硬盘,创建 FE 的元数据目录 +mkdir -p <doris_meta_created> + +# 创建 FE 元数据目录的符号链接 ln -s <doris_meta_original> <doris_meta_created> ``` **修改 FE 配置文件** -FE 的配置文件在 FE 部署路径下的 conf 目录中,启动 FE 节点前需要修改 `conf/fe.conf`。 +FE 的配置文件位于 FE 部署路径下的 `conf` 目录中。在启动 FE 节点之前,需要修改 `conf/fe.conf` 文件。 1. 修改 FE 元数据目录 - 在配置文件中,`meta_dir` 指定元数据的存放位置。`meta_dir` 默认放在 FE 的安装路径下。 - - 如果创建了 FE 元数据目录的软连接,无需配置该选项。 + 在配置文件中,`meta_dir` 参数指定了元数据的存放位置。默认情况下,`meta_dir` 位于 FE 的安装路径下。如果已创建了 FE 元数据目录的符号链接,则无需配置此选项。 2. 绑定集群 IP - - 在多网卡的环境中,需要显示配置 priority_networks 选项。 - ```sql + 在多网卡环境中,需要显式配置 `priority_networks` 选项,以指定 FE 使用的 IP 地址。 + + ```Shell priority_networks = 10.1.3.0/24 ``` - 这是一种 CIDR 的表示方式,该配置会指定 FE 使用的 IP。在配置 FQDN 的环境中,可以忽略该选项。 + 这是一种 CIDR 表示方式,用于指定 FE 监听的网段。在配置使用 FQDN 的环境中,可以忽略此选项。 3. 调整 FE 内存 - 在 fe.conf 中,默认 Java 最大堆内存为 8GB,建议生产环境调整至 16G 以上。在 `JAVA_OPTS` 参数中指定 `-Xmx` 选项可以调整 Java 最大堆内存。 + 在 `fe.conf` 文件中,默认 Java 最大堆内存设置为 8GB。对于生产环境,建议将其调整至 16GB 以上,以提高性能。可以通过修改 `JAVA_OPTS` 参数中的 `-Xmx` 选项来调整 Java 最大堆内存。 - ```TypeScript - JAVA_OPTS="-Xmx16384m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE" + ```Shell + JAVA_OPTS="-Xmx16384m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE" ``` -4. 修改 Doris 大小写敏感参数 `lower_case_table_names` +4. 修改 Doris 大小写敏感参数 - 在 Doris 中默认表名大小写敏感。如果有对大小写不敏感的需求,需要在集群初始化时进行设置。表名大小写敏感在集群初始化完成后就无法再进行修改。详细参见 [变量](../../query/query-variables/variables) 文档中关于 `lower_case_table_names` 的介绍。 + Doris 默认对表名大小写敏感。如果需要对大小写不敏感,请在集群初始化时设置 `lower_case_table_names` 参数。请注意,一旦集群初始化完成,表名大小写敏感设置将无法更改。有关详细信息,请参阅 [变量](../query/query-variables/variables) 文档中的 `lower_case_table_names` 部分。 **启动 FE 进程** -通过以下命令可以启动 FE 进程 +使用以下命令启动 FE 进程: -```shell +```Shell bin/start_fe.sh --daemon ``` -FE 进程启动进入后台执行。日志默认存放在 `log/` 目录下。如启动失败,可以通过查看 `log/fe.log` 或者 log/fe.out 查看错误信息 +FE 进程将在后台启动,日志默认存放在 `log/` 目录下。如果启动失败,请检查 `log/fe.log` 或 `log/fe.out` 文件以获取错误信息。 **检查 FE 启动状态** -通过 MySQL Client 可以链接 Doris 集群。初始化用户为 `root`,密码为空。 +通过 MySQL Client 连接 Doris 集群,初始化用户为 `root`,密码为空。 ```sql mysql -uroot -P<fe_query_port> -h<fe_ip_address> ``` -链接到 Doris 集群后,可以通过 `show frontends` 命令查看 FE 的状态,通常要确认以下几项 +连接到 Doris 集群后,使用 `show frontends` 命令查看 FE 的状态。通常需要确认以下几项: + +- `Alive` 为 `true` 表示节点存活。 -- Alive 为 true 表示节点存活 +- `Join` 为 `true` 表示节点已加入集群,但不一定表示当前仍在集群内(可能已失联)。 -- Join 为 true 表示节点加入到集群中,但不代表当前还在集群内(可能已失联) +- `IsMaster` 为 `true` 表示当前节点为 Master 节点。 -- IsMaster 为 true 表示当前节点为 Master 节点 ### 部署 FE 集群(可选) -在生产集群中,建议至少部署 3 个 Follower 节点。在部署过 FE Master 节点后,需要再部署两个 FE Follower 节点。 +在生产环境中,建议至少部署 3 个 Follower 节点以提高系统的可用性和容错性。在成功部署 FE Master 节点后,接下来需要部署另外两个 FE Follower 节点。 **创建元数据目录** -参考部署 FE Master 节点,创建 doris-meta 目录 +参考部署 FE Master 节点,创建 `doris-meta` 目录 **修改 FE Follower 节点配置文件** -参考部署 FE Master 节点,修改 FE 配置文件。通常情况下,可以直接复制 FE Master 节点的配置文件。 +参考部署 FE Master 节点,对 FE Follower 节点的配置文件进行修改。通常情况下,可以直接复制 FE Master 节点的配置文件作为起点。 **在 Doris 集群中注册新的 FE Follower 节点** @@ -349,24 +343,24 @@ mysql -uroot -P<fe_query_port> -h<fe_ip_address> ## 注册 FE Follower 节点 ## fe_edit_log_port 可以从 fe.conf 中查看,默认为 9010 ## 在 MySQL Client 中执行 ALTER SYSTEM 语句 -ALTER SYSTEM ADD FOLLOWER "<fe_ip_address>:<fe_edit_log_port>" +ALTER SYSTEM ADD FOLLOWER "<fe_ip_address> : <fe_edit_log_port>"; + ``` -如果要添加 observer 节点,可以使用 `ADD OBSERVER` 命令 +如果要添加 Observer 节点,可以使用 `ADD OBSERVER` 命令 ```sql ## 注册 FE observer 节点,在 MySQL Client 中执行 ALTER SYSTEM 语句 ALTER SYSTEM ADD OBSERVER "<fe_ip_address>:<fe_edit_log_port>" ``` -:::caution -注意 +:::caution 注意 1. FE Follower(包括 Master)节点的数量建议为奇数,建议部署 3 个组成高可用模式。 2. 当 FE 处于高可用部署时(1 个 Master,2 个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力 -3. 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下 +3. 通常,一个 FE 节点可以管理 10-20 个 BE 节点。建议整个集群中的 FE 节点总数不超过 10 个。 ::: **启动 FE Follower 节点** @@ -377,20 +371,20 @@ ALTER SYSTEM ADD OBSERVER "<fe_ip_address>:<fe_edit_log_port>" bin/start_fe.sh --helper <helper_fe_ip>:<fe_edit_log_port> --daemon ``` -其中,helper_fe_ip 为当前 FE 集群中任一存活的节点。`--heper` 参数只应用于第一次启动 FE 时同步元数据,后续重启 FE 的操作不需要指定。 +其中,helper_fe_ip 为当前 FE 集群中任一存活的节点。`--helper` 参数只应用于第一次启动 FE 时同步元数据,后续重启 FE 的操作不需要指定。 -**判断 follower 节点状态** +**判断 Follower 节点状态** -与判断 FE master 节点状态的方式相同,添加注册 FE follower 节点后需要通过 `show frontends` 命令查看 FE 节点状态。与 Master 状态不同,`IsMaster` 的状态应为 false。 +与判断 FE Master 节点状态的方式相同,添加注册 FE Follower 节点后需要通过 `show frontends` 命令查看 FE 节点状态。与 Master 状态不同,`IsMaster` 的状态应为 false。 ### 部署 BE **创建数据目录** -BE 进程应用于数据的计算与存储。数据目录默认放在 `be/storage` 下。在生产环境中,通常使用独立的硬盘来存储数据,将 BE 数据与 BE 的部署文件置于不同的硬盘中。BE 支持数据分布在多盘上以更好的利用多块硬盘的 I/O 能力。 +BE 进程负责数据的计算与存储。默认情况下,数据目录位于 `be/storage` 下。在生产环境中,建议使用独立的硬盘来存储数据,并将 BE 数据与 BE 的部署文件分开存放在不同的硬盘上。BE 支持数据分布在多个硬盘上,以充分利用多块硬盘的 I/O 能力。 ```sql -## 在每一块数据硬盘上创建 BE 数据存储目录 +# 在每一块数据硬盘上创建 BE 数据存储目录 mkdir -p <be_storage_root_path> ``` @@ -400,94 +394,93 @@ BE 的配置文件在 BE 部署路径下的 conf 目录中,启动 FE 节点前 1. 配置 Java 环境 -从 1.2 版本开始 Doris 支持 Java UDF 函数,BE 依赖于 Java 环境。需要预先配置操作系统 `JAVA_HOME` 环境变量,或者在 BE 配置文件中指定 Java 环境变量。 + 从 1.2 版本开始,Doris 支持 Java UDF 函数,因此 BE 依赖于 Java 环境。需要预先在操作系统中配置 JAVA_HOME 环境变量,或者在 BE 配置文件中指定 Java 环境变量。 -```sql -## 修改 be/conf/be.conf 的 Java 环境变量 -JAVA_HOME = <your-java-home-path> -``` + ```sql + ## 修改 be/conf/be.conf 的 Java 环境变量 + JAVA_HOME = <your-java-home-path> + ``` 2. 配置 BE 存储路径 -如需修改 BE 的存储路径,可以修改 storage_root_path 参数。在多路径之间使用英文分号 `;` 分隔 **(最后一个目录不要加分号)。** + 如需修改 BE 的存储路径,可以修改 `storage_root_path` 参数。在多路径之间使用英文分号 `;` 分隔 **(最后一个目录不要加分号)。** -**冷热数据分级存储** + **冷热数据分级存储** -Doris 支持冷热数据分级存储,将冷数据存储在 HDD 或对象存储中,热数据存储在 SSD 中。 + Doris 支持冷热数据分级存储,将冷数据存储在 HDD 或对象存储中,热数据存储在 SSD 中。 -可以通过路径区别节点内的冷热数据存储目录,HDD(冷数据目录)或 SSD(热数据目录)。如果不需要 BE 节点内的冷热机制,那么只需要配置路径即可,无需指定 medium 类型;也不需要修改 FE 的默认存储介质配置。 + 可以通过路径区别节点内的冷热数据存储目录,HDD(冷数据目录)或 SSD(热数据目录)。如果不需要 BE 节点内的冷热机制,那么只需要配置路径即可,无需指定 Medium 类型;也不需要修改 FE 的默认存储介质配置。 -在使用冷热数据分离功能时,需要在 `storage_root_path` 中使用 `medium` 选项。 + 在使用冷热数据分离功能时,需要在 `storage_root_path` 中使用 `medium` 选项。 -```sql -## 在 storage_root_path 中使用 medium 指定磁盘类型 -## /home/disk1/doris,medium:HDD: 表示该目录存储冷数据; -## /home/disk2/doris,medium:SSD: 表示该目录存储热数据; -storage_root_path=/home/disk1/doris,medium:HDD;/home/disk2/doris,medium:SSD -``` + ```sql + ## 在 storage_root_path 中使用 medium 指定磁盘类型 + ## /home/disk1/doris,medium:HDD:表示该目录存储冷数据; + ## /home/disk2/doris,medium:SSD:表示该目录存储热数据; + storage_root_path=/home/disk1/doris,medium:HDD;/home/disk2/doris,medium:SSD + ``` -:::caution -**注意:** + :::caution 注意 -1. 当指定存储路径的存储类型时,至少设置一个路径的存储类型为 HDD; + 1. 当指定存储路径的存储类型时,至少设置一个路径的存储类型为 HDD; -2. 如未显示声明存储路径的存储类型,则默认全部为 HDD; + 2. 如果未明确声明存储路径的存储类型,则默认所有路径均为 HDD。 -3. 指定 HDD 或 SSD 存储类型与物理存储介质无关,只为区分存储路径的存储类型,即可以在 HDD 介质的盘上标记某个目录为 SSD; + 3. 指定 HDD 或 SSD 存储类型与物理存储介质无关,仅用于区分存储路径的存储类型。例如,可以在 HDD 介质上标记某个目录为 SSD。 -4. 存储类型 HDD 和 SSD 关键字须大写。 -::: + 4. 存储类型 HDD 和 SSD 的关键字必须大写。 + ::: 3. 绑定集群 IP -在多网卡的环境中,需要显示配置 priority_networks 选项。在配置 FQDN 的环境中,可以忽略该选项。 + 在多网卡的环境中,需要显示配置 `priority_networks` 选项。在配置 FQDN 的环境中,可以忽略该选项。 -```sql -priority_networks = 10.1.3.0/24 -``` + ```sql + priority_networks = 10.1.3.0/24 + ``` -**在 Doris 中注册 BE 节点** + **在 Doris 中注册 BE 节点** -在启动新的 BE 节点前,需要先在 FE 集群中注册新的 BE 节点。 + 在启动新的 BE 节点前,需要先在 FE 集群中注册新的 BE 节点。 -```sql -## 链接任一存活的 FE 节点 -mysql -uroot -P<fe_query_port> -h<fe_ip_address> + ```sql + ## 链接任一存活的 FE 节点 + mysql -uroot -P<fe_query_port> -h<fe_ip_address> -## 注册 BE 节点 -## be_heartbeat_service_port 可以从 be.conf 中查看,默认为 9050 -## 在 MySQL Client 中执行 ALTER SYSTEM 语句 -ALTER SYSTEM ADD BACKEND "<be_ip_address>:<be_heartbeat_service_port>" -``` + ## 注册 BE 节点 + ## be_heartbeat_service_port 可以从 be.conf 中查看,默认为 9050 + ## 在 MySQL Client 中执行 ALTER SYSTEM 语句 + ALTER SYSTEM ADD BACKEND "<be_ip_address>:<be_heartbeat_service_port>" + ``` -**启动 BE 进程** + **启动 BE 进程** -通过以下命令可以启动 BE 进程 + 通过以下命令可以启动 BE 进程 -```sql -bin/start_be.sh --daemon -``` + ```sql + bin/start_be.sh --daemon + ``` -BE 进程启动进入后台执行。日志默认存放在 `log/` 目录下。如启动失败,可以通过查看 `log/be.log` 或者 `log/be.out` 查看错误信息 + BE 进程启动进入后台执行。日志默认存放在 `log/` 目录下。如果启动失败,请检查 `log/be.log` 或 `log/be.out` 文件以获取错误信息。 -**查看 BE 启动状态** + **查看 BE 启动状态** -在链接到 Doris 集群后,通过 show backends 命令查看 BE 的状态。 + 在链接到 Doris 集群后,通过 show backends 命令查看 BE 的状态。 -```sql -## 链接 Doris 集群 -mysql -uroot -P<fe_query_port> -h<fe_ip_address> + ```sql + ## 链接 Doris 集群 + mysql -uroot -P<fe_query_port> -h<fe_ip_address> -## 查看 BE 状态,在 MySQL Client 中执行 show 命令 -show backends; -``` + ## 查看 BE 状态,在 MySQL Client 中执行 show 命令 + show backends; + ``` -通常情况下需要注意以下几项状态: + 通常情况下需要注意以下几项状态: -- Alive 为 true 表示节点存活 + - Alive 为 true 表示节点存活 -- TabletNum 表示该节点上的分片数量,新加入的节点会进行数据均衡,TabletNum 逐渐趋于平均 + - TabletNum 表示该节点上的分片数量,新加入的节点会进行数据均衡,TabletNum 逐渐趋于平均。 ### 验证集群正确性 @@ -502,42 +495,42 @@ mysql -uroot -P<fe_query_port> -h<fe_ip_address> **检查 Doris 安装版本** -通过 show frontends 与 show backends 命令可以查看数据库版本情况。 - -```TypeScript -## 查看 FE 各实例的版本,在 MySQL Client 中执行 show 命令 -show frontends \G +通过 `show frontends` 与 `show backends` 可以查看数据库各实例的版本信息。 -## 查看 BE 各实例的版本,在 MySQL Client 中执行 show 命令 +```sql +-- 查看 FE 各实例的版本 +show frontends \G + +-- 查看 BE 各实例的版本 show backends \G ``` **修改 Doris 集群密码** -在创建 Doris 集群后,系统会自动创建 `root` 用户,并默认密码为空。建议在创建集群后为 `root` 用户重置一个新密码。 +在创建 Doris 集群时,系统会自动创建一个名为 `root` 的用户,并默认设置其密码为空。为了安全起见,建议在集群创建后立即为 `root` 用户设置一个新密码。 -```TypeScript -## 确认当前用户为 root,在 MySQL Client 中查看当前用户 -select user(); -+------------------------+ -| user() | -+------------------------+ -| 'root'@'192.168.88.30' | -+------------------------+ - -## 修改 root 用户密码,在 MySQL Client 中执行 set password 命令 +```sql +-- 确认当前用户为 root +select user(); ++------------------------+ +| user() | ++------------------------+ +| 'root'@'192.168.88.30' | ++------------------------+ + +-- 修改 root 用户密码 SET PASSWORD = PASSWORD('doris_new_passwd'); ``` **创建测试表并插入数据** -在新创建的集群中,可以创建表并插入数据以验证集群正确性。 +为了验证集群的正确性,可以在新创建的集群中创建一个测试表,并插入一些数据。 -```TypeScript -## 创建测试数据库,在 MySQL Client 中执行 create database 语句 +```sql +-- 创建测试数据库,在 MySQL Client 中执行 create database 语句 create database testdb; -## 创建测试表,在 MySQL Client 中执行 create table 语句 +-- 创建测试表,在 MySQL Client 中执行 create table 语句 CREATE TABLE testdb.table_hash ( k1 TINYINT, @@ -551,8 +544,8 @@ DISTRIBUTED BY HASH(k1) BUCKETS 32; Doris 兼容 MySQL 协议,可以使用 insert 语句插入数据。 -```TypeScript -## 插入部分测试数据,在 MySQL Client 中执行 insert into 语句 +```sql +-- 插入部分测试数据,在 MySQL Client 中执行 insert into 语句 INSERT INTO testdb.table_hash VALUES (1, 10.1, 'AAA', 10), (2, 10.2, 'BBB', 20), @@ -560,7 +553,7 @@ INSERT INTO testdb.table_hash VALUES (4, 10.4, 'DDD', 40), (5, 10.5, 'EEE', 50); -## 验证插入数据正确性,在 MySQL Client 中执行 select 语句 +-- 验证插入数据正确性,在 MySQL Client 中执行 select 语句 SELECT * from testdb.table_hash; +------+-------+------+------+ | k1 | k2 | k3 | k4 | @@ -577,29 +570,29 @@ SELECT * from testdb.table_hash; ### 什么是 priority_networks? -Doris 进程监听 IP 的 CIDR 格式表示的网段。如果部署的机器只有一个网段,可以不用配置。如果有两个或多个网段,务必做配置。 +`priority_networks` 是 Doris 进程监听 IP 的 CIDR 格式表示的网段。如果部署的机器只有一个网段,则无需配置此参数。若存在两个或多个网段,则必须进行配置。 -这个参数主要用于帮助系统选择正确的网卡 IP 作为自己的监听 IP。比如需要监听的 IP 为 192.168.0.1,则可以设置 priority_networks=192.168.0.0/24,系统会自动扫描机器上的所有 IP,只有匹配上 192.168.0.0/24 这个网段的才会去作为服务监听地址。这个参数也可以配置多个 CIDR 网段,比如 priority_networks = 10.10.0.0/16; 192.168.0.0/24。 +此参数的主要作用是帮助系统在选择监听 IP 时,能够自动匹配到正确的网卡 IP。例如,若需要监听的 IP 为 `192.168.0.1`,则可设置 `priority_networks=192.168.0.0/24`。系统会自动扫描所有 IP,并仅将匹配到 `192.168.0.0/24` 网段的 IP 作为服务监听地址。此外,该参数支持配置多个 CIDR 网段,使用逗号分隔,如 `priority_networks = 10.10.0.0/16, 192.168.0.0/24`。 :::tip -**为什么采用 priority_networks 来配置监听地址段,为啥不直接在配置文件中设置监听的 IP 地址?** +**为什么采用 priority_networks 配置监听地址段,而不直接在配置文件中设置监听 IP 地址?** -主要的原因是 Doris 作为一个分布式集群,同样的配置文件会在多个节点上部署,为了部署和更新等维护的方便性,尽量所有节点的配置文件一致。采用这种配置监听地址网段,然后启动的时候,依据这个网段去找到合适的监听 IP,这样就解决了每个机器在这个配置上都可以使用一个值的需求了。 +主要原因在于 Doris 作为分布式集群,其配置文件需在多个节点上保持一致,以便于部署和更新。通过配置监听地址网段,并在启动时自动匹配合适的监听 IP,可确保各节点配置的一致性,简化管理。 ::: ### 新的 BE 节点需要手动添加到集群 -BE 节点启动后,还需要通过 MySQL 协议或者内置的 Web 控制台,向 FE 发送命令,将启动的这个 BE 节点加入到集群。 +BE 节点启动后,需通过 MySQL 协议或内置的 Web 控制台,向 FE 发送命令,以将该 BE 节点加入集群。 :::tip -FE 如何知道这个集群有哪些 BE 节点组成? +**FE 如何知道这个集群有哪些 BE 节点组成?** -Doris 作为一个分布式数据库,一般拥有众多 BE 节点,Doris 采用通过向 FE 发送添加 BE 节点的命令来添加相应的 BE,这个不同于 BE 节点自己知道 FE 节点的地址,然后主动汇报连接的方式。采用主动添加,FE 主动连接 BE 的方式,可以给集群管理带来更多益处,比如确定集群到底有哪些节点组成,比如可以主动下掉一个无法连接上的 BE 节点。 +Doris 作为一个分布式数据库,一般拥有众多 BE 节点,Doris 采用通过向 FE 发送添加 BE 节点的命令来添加相应的 BE,这个不同于 BE 节点自己知道 FE 节点的地址,然后主动汇报连接的方式。采用主动添加,FE 主动连接 BE 的方式,可以给集群管理带来更多益处,比如确定集群到底有哪些节点组成,比如可以主动移除一个无法连接上的 BE 节点。 ::: -### 如何快速检测 FE 启动成功 +### 如何快速检测 FE 启动成功? -可以通过下面的命令来检查 Doris 是否启动成功 +可通过执行以下命令检查 Doris 是否启动成功: ```shell # 重试执行下面命令,如果返回"msg":"success",则说明已经启动成功 @@ -609,15 +602,13 @@ server1:apache-doris/fe doris$ curl http://127.0.0.1:8030/api/bootstrap ### Doris 提供内置的 Web UI 吗? -Doris FE 内置 Web UI。用户无须安装 MySQL 客户端,即可通过 Web UI 来完成诸如添加 BE/FE 节点,以及运行其它 SQL 查询。 - -在浏览器中输入 http://fe_ip:fe_port, 比如 http://172.20.63.118:8030,打开 Doris 内置的 Web 控制台。 +是的,Doris FE 内置 Web UI。用户无须安装 MySQL 客户端,即可通过 Web UI 来完成诸如添加 BE/FE 节点,以及运行其它 SQL 查询等操作。 -内置 Web 控制台,主要供集群 root 账户使用,默认安装后 root 账户密码为空。 +在浏览器中输入 http://fe_ip:fe_port, 例如 http://172.20.63.118:8030,即可打开 Doris 内置的 Web 控制台。该控制台主要供集群 root 账户使用,默认安装后 root 账户密码为空。  -比如,在 Playground 中,执行如下语句,可以完成对 BE 节点的添加。 +在 Playground 中,可执行如下语句添加 BE 节点: ```sql ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port"; @@ -625,10 +616,10 @@ ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";  -:::tip -Playground 中执行这种和具体数据库/表没有关系的语句,务必在左侧库栏里随意选择一个数据库,才能执行成功,这个限制,稍后会去掉。 +:::tip 提示 +在 Playground 中执行与具体数据库/表无关的语句时,需在左侧库栏中任意选择一个数据库才能成功执行。此限制将在后续版本中移除。 ::: ### 通过 Web UI 无法修改 root 密码 -当前内置的 Web 控制台,还不能执行 SET 类型的 SQL 语句,所以,在 Web 控制台,当前还不能通过执行 SET PASSWORD FOR 'root' = PASSWORD('your_password') `类似语句来修改 root 的密码,可以通过 MySQL Client 来修改 root 账户的密码。 +当前内置的 Web 控制台尚不支持执行 SET 类型的 SQL 语句,因此无法通过 Web UI 修改 root 密码。如需修改 root 账户密码,请使用 MySQL Client 执行相关命令。 \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org