
# MRS集群部署方案说明
MRS当前提供的"分析集群"、"流式集群"和"混合集群"采用固定模板进行部署集群的进程，无法满足用户自定义部署管理角色和控制角色在集群节点中的需求。
如需自定义集群部署方式，可在创建集群时的"集群类型"选择"自定义"，实现用户自主定义集群的进程实例在集群节点中的部署方式（**MRS 3.x及之后版本支持创建自定义拓扑集群**）。
自定义集群可实现以下功能：
- 管控分离部署，管理角色和控制角色分别部署在不同的Master节点中。
- 管控合设部署，管理角色和控制角色共同部署在Master节点中。
- 组件分开部署，避免资源争抢。
 #### 集群部署类型说明
表1MRS集群部署类型 
| 常用模板  | 说明                                                                                                                                          | 节点数量范围                                                                                                                                                                                                                                 |
|:---|:---|:---|
| 管控合设  | 管理角色和控制角色共同部署在Master节点中，数据实例合设在同一节点组。该部署方式适用于100个以下的节点，可以减少成本。                                                                              | - Master节点数量大于等于3个，小于等于11个。  - 节点组数量总和小于等于10个，非Master节点组中节点数量总和小于等于10000个。    |
| 管控数合设 | 生产环境或商用环境不推荐使用此场景。 管理节点、控制节点和数据节点合并部署时，集群性能和可靠性都会产生较大影响。 如节点数量满足需求，建议将数据节点单独部署。 | - Master节点数量大于等于3个，小于等于100个。  - 节点组数量总和小于等于10个。                         |
| 管控分设  | 管理角色和控制角色分别部署在不同的Master节点中，数据实例合设在同一节点组。该部署方式适用于100-500个节点，在高并发负载情况下表现更好。                                                                   | - Master节点数量大于等于5个，小于等于11个。  - 节点组数量总和小于等于10个，非Master节点组中节点数量总和小于等于10000个。   |
| 数据分设  | 管理角色和控制角色分别部署在不同的Master节点中，数据实例分设在不同节点组。该部署方式适用于500个以上的节点，可以将各组件进一步分开部署，适用于更大的集群规模。                                                         | - Master节点数量大于等于9个，小于等于11个。  - 节点组数量总和小于等于10个，非Master节点组中节点数量总和小于等于10000个。    |
   
#### 服务角色选择说明
MRS系统由多种服务按照一定的逻辑架构组合而成，每个服务包含一个或多个角色，每个角色可以部署一个或多个实例。
- 服务：服务对外表现为集群提供的组件业务能力，集群中的每个组件对应一个服务名，提供一种服务。
- 角色：角色是服务的组成要素，每个服务由一个或多个角色组成，服务通过角色安装到节点（即服务器）上，保证服务正常运行。
- 实例：当一个服务的角色安装到节点上，即形成一个实例。每个服务有各自对应的角色实例。
对MRS集群组件的选择取决于您的集群所要处理的数据和运行的任务，例如考虑以下问题：
- **内存需求**：任务运行通常占用多少内存资源？这将影响Spark、Flink等内存计算组件的实例规格选择。
- **CPU需求**：任务是否占用大量CPU资源？这将影响计算密集型组件（如Spark）的核数配置。
- **存储需求**：待处理的数据是否占用集群内存储空间？这将影响HDFS存储容量和HBase集群规模的规划。
- **并发规模**：同时接入的用户或任务数量是多少？这将影响HiveServer2、JDBCServer等服务的实例数量配置。
 
 #### 服务角色部署规则说明
MRS集群支持的各服务的部署原则如[MRS集群部署方案说明](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0121.html)所示。
- A依赖于B（服务级）：若集群中部署A服务，需要提前部署B服务，B为A提供基础能力。
- A关联于B（服务级）：A服务与B服务在业务进行中会产生数据交互，不存在部署上的依赖关系。
- A与B共机部署（角色级）：若集群中部署A角色，需要同时部署B角色，且A与B需要部署在相同的节点上。
 表2MRS集群角色部署规则 
| 服务名称         | 依赖关系                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 角色名称                    | 角色业务部署建议                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| OMSServer    | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | OMSServer               | 部署在Master节点上，不支持修改。                                                                                                                                                                                                                                                                                                    |
| ClickHouse   | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | CHS（ClickHouseServer）   | 所有节点均可部署。 角色实例部署数量范围：2\~256，必须为偶数个。                                                                                                                                                                                                                                                     |
| ClickHouse   | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | CLB（ClickHouseBalancer） | 所有节点均可部署。 角色实例部署数量范围：2\~256。                                                                                                                                                                                                                                                              |
| Doris        | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | FE                      | 只能部署在Master节点上。 角色实例部署数量范围：1\~3，步长为2。 **单个FE节点仅适用于测试或实验环境，生产业务运行时建议至少部署3个FE节点。**                                                                                                                                                                          |
| Doris        | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | BE                      | 所有节点均可部署。 角色实例部署数量范围：3\~200。                                                                                                                                                                                                                                                              |
| Doris        | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | DBroker                 | （可选）所有节点均可部署。 角色实例部署数量范围：0\~200。                                                                                                                                                                                                                                                          |
| Flink        | - 依赖ZooKeeper  - 依赖KrbServer  - 依赖DBService  - 依赖Hadoop                                                                                                                                                                                                                         | FR(FlinkResource)       | 所有节点均可部署。 角色实例部署数量范围：1\~10000。                                                                                                                                                                                                                                                            |
| Flink        | - 依赖ZooKeeper  - 依赖KrbServer  - 依赖DBService  - 依赖Hadoop                                                                                                                                                                                                                         | FS(FlinkServer)         | 所有节点均可部署。 角色实例部署数量范围：0、2。                                                                                                                                                                                                                                                                  |
| Flume        | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | MS(MonitorServer)       | 只能部署在Master节点上。 角色实例部署数量范围：1\~2。                                                                                                                                                                                                                                                          |
| Flume        | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | F(Flume)                | 所有节点均可部署。 角色实例部署数量范围：1\~10000。                                                                                                                                                                                                                                                            |
| Guardian     | - 依赖Hadoop  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                            | TS(TokenServer)         | 所有节点组均可部署。 角色实例部署数量范围：2\~100。 **只有对接OBS的场景下才需要安装Guardian组件。**                                                                                                                                                                                              |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | NN(NameNode)            | 只能部署在Master节点上。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                           |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | ZKFC（Zkfc）              | 只能部署在Master节点上。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                              |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | HFS（HttpFS）             | 只能部署在Master节点上。 角色实例部署数量范围：0\~10。                                                                                                                                                                                                                                                         |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | JN(JournalNode)         | 只能部署在Master节点上。 角色实例部署数量范围：3\~60，步长为2。                                                                                                                                                                                                                                                      |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | DN(DataNode)            | 所有节点均可部署。 角色实例部署数量范围：3\~10000。                                                                                                                                                                                                                                                          |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | RM(ResourceManager)     | 只能部署在Master节点上。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                            |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | NM(NodeManager)         | 所有节点均可部署。 角色实例部署数量范围：3\~10000。                                                                                                                                                                                                                                                              |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | JHS(JobHistoryServer)   | 只能部署在Master节点上。 角色实例部署数量范围：1\~2。                                                                                                                                                                                                                                                           |
| Hadoop       | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | TLS(TimelineServer)     | 只能部署在Master节点上。 角色实例部署数量范围：0\~2。                                                                                                                                                                                                                                                         |
| HBase        | - 依赖Hadoop  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                   | HM(HMaster)             | 只能部署在Master节点上。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                            |
| HBase        | - 依赖Hadoop  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                   | TS(ThriftServer)        | 所有节点均可部署。 角色实例部署数量范围：0\~10000。                                                                                                                                                                                                                                                              |
| HBase        | - 依赖Hadoop  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                   | RT(RESTServer)          | 所有节点均可部署。 角色实例部署数量范围：0\~10000。                                                                                                                                                                                                                                                          |
| HBase        | - 依赖Hadoop  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                   | RS(RegionServer)        | 所有节点均可部署。 角色实例部署数量范围：3\~10000。                                                                                                                                                                                                                                                             |
| HBase        | - 依赖Hadoop  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                   | TS1(Thrift1Server)      | 所有节点均可部署。 角色实例部署数量范围：0\~10000。 **若集群安装了Hue服务并且需要在Hue WebUI使用HBase，HBase服务需安装此实例。**                                                                                                                                                                      |
| HBase        | - 依赖Hadoop  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                   | MC(MetricController)    | 只能部署在Master节点上。 角色实例部署数量范围：0\~2，步长为 2。 该角色实例仅适用于MRS 3.3.0及之后版本，可选部署。用于提供HBase热点自愈功能，且必须部署主备模式双主机，并与HMaster角色共节点。                                                                                                                                              |
| HetuEngine   | - 依赖Hadoop  - 依赖DBService  - 依赖Hive  - 依赖ZooKeeper  - 依赖KrbServer  - 依赖Yarn  - 依赖HDFS   | HSB(HSBroker)           | 所有节点均可部署。 角色实例部署数量范围： - MRS 3.3.0之前版本：2\~10000。  - MRS 3.3.0及之后版本：2\~50。               |
| HetuEngine   | - 依赖Hadoop  - 依赖DBService  - 依赖Hive  - 依赖ZooKeeper  - 依赖KrbServer  - 依赖Yarn  - 依赖HDFS   | HSC(HSConsole)          | 所有节点均可部署。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                                    |
| HetuEngine   | - 依赖Hadoop  - 依赖DBService  - 依赖Hive  - 依赖ZooKeeper  - 依赖KrbServer  - 依赖Yarn  - 依赖HDFS   | HSF(HSFabric)           | 所有节点均可部署。 角色实例部署数量范围： - MRS 3.3.0之前版本：1\~10000。  - MRS 3.3.0及之后版本：1\~50。                              |
| HetuEngine   | - 依赖Hadoop  - 依赖DBService  - 依赖Hive  - 依赖ZooKeeper  - 依赖KrbServer  - 依赖Yarn  - 依赖HDFS   | QAS                     | 仅适用于MRS 3.2.0-LTS.1及以后版本，所有节点均可部署。 角色实例部署数量范围： - MRS 3.3.0之前版本：0\~2。  - MRS 3.3.0及之后版本：1\~2。   |
| Hive         | - 依赖Hadoop  - 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                     | MS(MetaStore)           | 只能部署在Master节点上。 角色实例部署数量范围：2\~10。                                                                                                                                                                                                                                                          |
| Hive         | - 依赖Hadoop  - 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                     | WH（WebHCat）             | 只能部署在Master节点上。 角色实例部署数量范围：1\~10。                                                                                                                                                                                                                                                          |
| Hive         | - 依赖Hadoop  - 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                     | HS(HiveServer)          | 只能部署在Master节点上。 角色实例部署数量范围：2\~80。                                                                                                                                                                                                                                                         |
| Impala       | - 依赖Hadoop  - 依赖Hive  - 依赖DBService  - 依赖ZooKeeper                                                                                                                                                                                                                                   | StateStore              | 只能部署在Master节点上。 角色实例部署数量范围：1。                                                                                                                                                                                                                                                            |
| Impala       | - 依赖Hadoop  - 依赖Hive  - 依赖DBService  - 依赖ZooKeeper                                                                                                                                                                                                                                   | Catalog                 | 只能部署在Master节点上。 角色实例部署数量范围：1。                                                                                                                                                                                                                                                             |
| Impala       | - 依赖Hadoop  - 依赖Hive  - 依赖DBService  - 依赖ZooKeeper                                                                                                                                                                                                                                   | Impalad                 | 所有节点均可部署。 角色实例部署数量范围：1\~10000。                                                                                                                                                                                                                                                            |
| JobGateway   | - 依赖Hadoop  - 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                      | JS(JobServer)           | 只能部署在Master节点组。 角色实例部署数量范围：2\~10。                                                                                                                                                                                                                                                         |
| JobGateway   | - 依赖Hadoop  - 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                      | JB(JobBalancer)         | 所有节点组均可部署。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                                   |
| Kafka        | - 依赖DBService  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                             | B(Broker)               | 所有节点均可部署。 角色实例部署数量范围：3\~10000。                                                                                                                                                                                                                                                         |
| Kafka        | - 依赖DBService  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                             | KafkaUI                 | 所有节点均可部署。 角色实例部署数量范围：0\~2。                                                                                                                                                                                                                                                               |
| Kafka        | - 依赖DBService  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                             | MM(MirrorMaker)         | 所有节点均可部署。 角色实例部署数量范围：0\~1000。 该实例仅适用于MRS 3.3.0及之后版本。                                                                                                                                                                                                       |
| Kudu         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | KuduMaster              | 只能部署在Master节点上。 角色实例部署数量范围：1\~3。                                                                                                                                                                                                                                                         |
| Kudu         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | KuduTserver             | 所有节点均可部署。 角色实例部署数量范围：3\~10000。                                                                                                                                                                                                                                                          |
| LDMS         | 依赖Yarn、Hive、HDFS、ZooKeeper、KrbServer、DBService、Spark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | LDMSServer              | 所有节点均可部署。 角色实例部署数量范围：1\~2。                                                                                                                                                                                                                                                                 |
| Loader       | - 依赖Hadoop  - 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                   | LS(LoaderServer)        | 只能部署在Master节点上。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                               |
| MemArtsCC    | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | CCWK(CCWorker)          | 建议部署在Core节点。 角色实例部署数量范围：2\~9999。                                                                                                                                                                                                                                                          |
| MemArtsCC    | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | CCSC(CCSidecar)         | 建议部署在Core节点，与CCWorker部署在相同节点。 角色实例部署数量范围：2\~9999。                                                                                                                                                                                                                                        |
| MemArtsStore | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | StoreWorker             | 建议部署在Core节点。 角色实例部署数量范围：3\~5000。                                                                                                                                                                                                                                                           |
| MemArtsStore | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | StoreSidecar            | 不能单独部署，必须与StoreWorker和StoreMaster部署在相同节点上。                                                                                                                                                                                                                                                                             |
| MemArtsStore | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | StoreClientProxy        | （可选）所有节点均可部署。与Yarn的NodeManager部署在相同节点上。 角色实例部署数量范围：0\~10000。                                                                                                                                                                                                                              |
| MemArtsStore | 依赖ZooKeeper                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | StoreMaster             | 建议部署在Master节点组，不能与StoreWorker部署在同一节点。 角色实例部署数量范围：2\~3。                                                                                                                                                                                                                                  |
| Oozie        | - 依赖Hadoop  - 依赖DBService  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                  | O(oozie)                | 只能部署在Master节点上。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                              |
| Presto       | 依赖Hive                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | PCD(Coordinator)        | 只能部署在Master节点上。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                           |
| Presto       | 依赖Hive                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | PWK(Worker)             | 所有节点均可部署。 角色实例部署数量范围：1\~10000。                                                                                                                                                                                                                                                             |
| Ranger       | 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | RA(RangerAdmin)         | 只能部署在Master节点上。 角色实例部署数量范围：1\~2。                                                                                                                                                                                                                                                           |
| Ranger       | 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | USC(UserSync)           | 只能部署在Master节点上。 角色实例部署数量范围：1。                                                                                                                                                                                                                                                             |
| Ranger       | 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | PSC(PolicySync)         | 只能部署在Master节点上。 角色实例部署数量范围：0\~2。                                                                                                                                                                                                                                                            |
| Ranger       | 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | TSC（TagSync）            | 所有节点均可部署。 角色实例部署数量范围：0\~1。                                                                                                                                                                                                                                                               |
| Ranger       | 依赖DBService                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | RK(RangerKMS)           | 只能部署在Master节点上。 角色实例部署数量范围：0\~2。                                                                                                                                                                                                                                                         |
| Spark        | - 依赖Hadoop  - 依赖Hive  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                | JS(JDBCServer)          | 只能部署在Master节点上。 角色实例部署数量范围：2\~10。                                                                                                                                                                                                                                                          |
| Spark        | - 依赖Hadoop  - 依赖Hive  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                | JH(JobHistory)          | 只能部署在Master节点上。 角色实例部署数量范围：2。                                                                                                                                                                                                                                                            |
| Spark        | - 依赖Hadoop  - 依赖Hive  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                | SR(SparkResource)       | 只能部署在Master节点上。 角色实例部署数量范围：2\~50。                                                                                                                                                                                                                                                         |
| Spark        | - 依赖Hadoop  - 依赖Hive  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                                | IS(IndexServer)         | 只能部署在Master节点上。 角色实例部署数量范围：2\~10，步长为2。                                                                                                                                                                                                                                                 |
| Sqoop        | 依赖Hadoop                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | SC(SqoopClient)         | 所有节点均可部署。 角色实例部署数量范围：1\~10000。                                                                                                                                                                                                                                                            |
| Tez          | - 依赖Hadoop  - 依赖DBService  - 依赖ZooKeeper                                                                                                                                                                                                                                                                                           | TUI(TezUI)              | 只能部署在Master节点上。 角色实例部署数量范围：1\~2。                                                                                                                                                                                                                                                         |
| ZooKeeper    | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | QP(quorumpeer)          | 只能部署在Master节点上。 角色实例部署数量范围：3\~9，步长为2。                                                                                                                                                                                                                                                      |
   
