
# 创建HetuEngine计算实例
#### 操作场景
本章节指导用户创建新的HetuEngine计算实例。计算实例创建成功后，停止集群前需手动先停止计算实例。重启集群后，如果要使用集群中的计算实例，需要手动启动计算实例。
#### 前提条件
- 已创建用于访问HetuEngine WebUI界面的用户，如**hetu_user** ，用户创建具体操作请参考[创建HetuEngine权限角色](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1714.html)。
- 已在待操作集群创建所需租户。具体操作请参考[添加MRS租户](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0305.html)。请确保修改HetuEngine计算实例配置时，对应的租户有足够的内存和CPU资源。
  - 创建HetuEngine计算实例时必须使用"叶子租户"类型的租户，只有叶子租户的队列才能提交Yarn任务。
  
  - 为了避免资源竞争带来的不确定性因素，建议为HetuEngine使用的租户创建独立资源池。
   
 
- HetuEngine计算实例启动依赖Python3，需确保集群所有节点已安装Python3，并在"/usr/bin/"目录下添加Python软链接，可参考[HetuEngine计算实例启动失败报错Python不存在](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24807.html)。
- HetuEngine服务处于正常运行状态。
#### 创建HetuEngine计算实例操作步骤
1. 使用**hetu_user** 登录MRS集群Manager。
   
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> HetuEngine"，进入HetuEngine服务页面。
3. 在"概览"页签下的"基本信息"区域单击"HSConsole WebUI"后的链接，进入HSConsole界面。
4. 选择"计算实例 \> 创建配置"，参考如下配置计算实例。 
   1. 配置"基本配置"，参数配置请参考[表1]。
       表1基本配置说明 
      | 参数          | 描述                                                                                                            | 取值样例                                                      |
      |:---|:---|:---|
      | 所属租户        | 实例所属租户，新建计算实例只能选择无计算实例的租户。                                                                                    | 在"所属租户"下拉列表中选取。                                           |
      | 实例部署超时时间(秒) | 通过Yarn Service部署启动计算实例的超时时间。从启动计算实例开始计时，当超过该时间后，如果计算实例仍在"创建中"或"启动中"，则该计算实例状态会显示为"错误"，同时会停止Yarn上正在创建或启动中的计算实例。 | 默认值：300 取值范围：1\~2147483647 |
      | 实例数量        | 在当前所属租户下创建的计算实例个数。                                                                                            | 默认值：1                                                     |
         
      
   
   2. 配置"Coordinator容器资源配置"，参数配置请参考[表2]。
       表2Coordinator容器资源配置参数说明 
      | 参数       | 描述                                                                                                                       | 取值样例                                                      |
      |:---|:---|:---|
      | 容器内存(MB) | Yarn分配给计算实例Coordinator的单个Container的内存大小，单位：MB。                                                                           | 默认值：5120 取值范围：1\~2147483647 |
      | vcore    | Yarn分配给计算实例Coordinator的单个Container的CPU(vcore)数量。                                                                         | 默认值：1 取值范围：1\~2147483647     |
      | 数量       | Yarn分配给计算实例Coordinator的Container的数量。                                                                                     | 默认值：2 取值范围：1\~3             |
      | JVM      | 登录Manager界面，选择"集群 \> 服务 \> HetuEngine \> 配置"，在"全部配置"页签搜索"extraJavaOptions"，"coordinator.jvm.config"参数文件内该参数的值即为JVM的参数取值。 | -                                                         |
         
      
   
   3. 配置"Worker容器资源配置"，参数配置请参考[表3]。
       表3Worker容器资源配置参数说明 
      | 参数       | 描述                                                                                                                              | 取值样例                                                      |
      |:---|:---|:---|
      | 容器内存(MB) | Yarn分配给计算实例Worker的单个Container的内存大小，单位：MB。                                                                                       | 默认值：10240 取值范围：1\~2147483647 |
      | vcore    | Yarn分配给计算实例Worker的单个Container的CPU(vCore)数量。                                                                                     | 默认值：1 取值范围：1\~2147483647    |
      | 数量       | Yarn分配给计算实例Worker的Container的数量。                                                                                                 | 默认值：2 取值范围：1\~256          |
      | JVM      | 登录FusionInsight Manager，选择"集群 \> 服务 \> HetuEngine \> 配置"，在"全部配置"页签搜索"extraJavaOptions"，"worker.jvm.config"参数文件内该参数的值即为JVM的参数取值。 | -                                                         |
         
      
   
   4. 配置"高级配置"参数，参数配置请参考[表4]。
       表4高级配置参数说明 
      | 参数       | 描述                                                                                                                                                                              | 取值样例 |
      |:---|:---|:---|
      | 查询内存占比   | 节点查询内存占jvm内存的比例，默认值0.7。当参数等于0时计算功能关闭，且JVM配置中-Xmx值需满足大于或者等于Coordinator或者Worker配置的memory.heap-headroom-per-node与query.max-memory-per-node之和。                                      | 0.7  |
      | 是否开启动态伸缩 | 若开启动态伸缩，可以在不重启实例的情况下，增加或者减少Worker数量；开启后可能会影响实例性能。多实例模式下，无法开启动态伸缩功能。开启动态伸缩参数介绍见[配置HetuEngine Worker节点数量](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2320.html)章节。 | -    |
      | 是否开启维护实例 | 如果要启动物化视图的自动刷新能力，必须存在一个被设置为维护实例的计算实例，且全局唯一。存在多个计算实例时，仅有一个计算实例用作维护实例。                                                                                                            | -    |
         
      
   
   5. 配置"自定义配置"参数。用户可以添加自定义参数到指定的参数文件中。单击"参数文件"下拉列表选择指定的参数文件：
      - 单击"增加"可以增加自定义配置参数。
      
      - 单击"删除"可以删除已增加的自定义配置参数。
      
      - 可通过选择"参数文件"为"resource-groups.json"来配置资源组机制，资源组配置参数请参考[表5]，详细说明请参考[配置HetuEngine资源组](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1732.html)。
         表5资源组配置参数说明 
        | 参数             | 描述                                            | 取值样例                                                                                                                                                                                         |
        |:---|:---|:---|
        | resourcegroups | 集群的资源管理组配置，参数文件下拉列表要选择"resource-groups.json"。 | ``` { "rootGroups": [{ "name": "global", "softMemoryLimit": "100%", "hardConcurrencyLimit": 1000, "maxQueued": 10000, "killPolicy": "no_kill" }], "selectors": [{ "group": "global" }] } ``` |
           
        
      
      
      ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
      - 对于"自定义配置"中的"coordinator.config.properties"、"worker.config.properties"、"log.properties"和"resource-groups.json"参数文件，用户配置自定义参数后，如果该自定义参数名称在指定的参数文件中已经存在，那么会使用自定义参数值替换参数文件中原有参数的值。如果不存在，则添加自定义参数到指定的参数文件中。
      
      - killPolicy：当查询提交给Worker后，如果总内存使用量超过softMemoryLimit，可选择一种策略终止正在运行的查询，策略如下所示：
        - no_kill（默认值）：不终止查询。
        
        - recent_queries：根据执行顺序的倒序终止查询。
        
        - oldest_queries：根据执行顺序终止查询。
        
        - finish_percentage_queries：根据查询执行百分比终止查询。执行百分比最小的查询将首先被终止。
        
        - high_memory_queries：根据内存使用量终止查询。具有较高内存使用量的查询将首先被终止，以便在查询终止次数最少的情况下，释放更多内存。当两个查询的内存使用量都在限制的10%以内，则进度慢（执行的百分比）的查询被终止，同时两个查询在完成百分比方面的差异在5%以内，则内存使用量大的查询被终止。
         
        
   
   6. 确定配置完成后是否立即启动实例：
      - 是，配置完成后立即启动实例。
      
      - 否，配置完成后需手动启动实例。
       
   
   
   
   
5. 单击"确定"，等待实例配置完成。
 
#### 计算实例维护操作注意事项
- 当HetuEngine服务处于重启或者滚动重启过程中，请勿通过HSConsole对HetuEngine计算实例进行"创建"、"启动"、"停止"和"删除"等运维操作。
- 同时处于启动中、创建中、删除中、停止中、扩容中、缩容中或滚动重启中等状态的计算实例个数默认最多为10个，超过10个的计算实例运维操作会在后台进入等待状态。若需要修改并发处理个数，可在Manager界面，选择"HetuEngine \> 配置 \> 全部配置"，搜索并调整参数"hsbroker.event.task.executor.threads"的值。
- HetuEngine计算实例重启注意事项：
  - 当HetuEngine计算实例处于重启或者滚动重启过程中，请勿对HetuEngine服务和HetuEngine WebUI界面的数据源进行变更操作，包括修改配置、重启等操作。
  
  - 如果计算实例只有1个Coordinator或者Worker，请勿对计算实例进行滚动重启。
  
  - 如果Worker的数量大于10个，实例滚动重启的时间可能会超过200分钟，期间请勿做其他运维操作。
  
  - 计算实例滚动重启过程HetuEngine会释放Yarn资源并且重新申请，请保证滚动重启过程中Yarn资源的CPU和内存空闲资源足够启动Worker总数量20%的Worker，及该期间Yarn资源不被其他任务抢占，否则会导致实例滚动重启失败。
    - Yarn资源：登录Manager界面，选择"租户资源 \> 租户资源管理" ，在"资源配额"中查看队列的空余资源信息。
    
    - 单个Worker的CPU和内存资源：使用用于访问HetuEngine WebUI界面的用户登录Manager界面，选择"集群 \> 服务 \> HetuEngine"，在"概览"页签下的"基本信息"区域单击"HSConsole WebUI"后的链接，进入HSConsole界面，单击对应实例所在行"操作"列中的"配置"，在"Worker容器资源配置"中查看容器内存和vcore。
     
  
  - 滚动重启过程中，请保证Yarn队列的Coordinator或者Worker的ApplicationMaster（am）运行平稳。
   
- HetuEngine计算实例重启异常处理：
  - 如果滚动重启期间Yarn队列的Coordinator或者Worker的ApplicationMaster（am）发生重启，可能会导致计算实例发生异常，需要停止计算实例，然后启动计算实例进行恢复。
  
  - 计算实例滚动重启失败后，实例处于亚健康的状态，可能会有Coordinator或者Worker配置不一样或者数量不一样的情况，计算实例的亚健康状态不会自动恢复，需要手动检查确认和恢复，或者再次执行滚动重启操作，或者执行停止计算实例再启动操作。
   
 
#### 计算实例状态说明
计算实例创建成功后，可在"计算实例"页签查看当前已创建的实例信息，包括实例所属租户名、对应实例数量、实例状态和资源总量等，实例状态信息如下：
图1计算实例状态   
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001910156324.png)
- 绿色图标：实例处于运行中或亚健康状态。
- 红色图标：实例故障。
- 灰色图标：实例已停止或待启动。
- 蓝色图标：实例处于其他状态，包括扩容中、缩容中、滚动重启中、创建中、启动中、安全启动中、停止中、安全停机中、删除中、已删除、停止中等。
 
