
# 提交Spark任务到新增Task节点
#### 应用场景
MRS集群可以通过增加Task节点，提升计算能力，集群Task节点主要用于处理数据，不存放持久数据。
本章节指导用户通过租户资源绑定新增的Task节点，并提交Spark任务到新增的Task节点。
#### 方案架构
租户是MRS大数据平台的核心概念，使传统的以用户为核心的大数据平台向以多租户为核心的大数据平台转变，更好的适应现代企业多租户应用环境，如[图1]所示。
图1以用户为核心的平台和以多租户为核心的平台   
![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002127111041.png "点击放大")
对于以用户为核心的大数据平台，用户直接访问并使用全部的资源和服务。
- 用户的应用可能只用到集群的部分资源，资源利用效率低。
- 不同用户的数据可能存放在一起，难以保证数据安全。
对于以租户为核心的大数据平台，用户通过访问租户来使用需要的资源和服务。
- 按照应用需求分配和调度出需要的资源，由租户来统一使用，资源利用效率高。
- 用户通过分配不同的角色获得使用不同租户资源的权限，以保障访问安全。
- 不同的租户之间数据隔离，以保证数据安全。
 
#### 约束与限制
创建并购买一个包含Spark组件的MRS集群，详情可参考[创建MRS集群](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0513.html)。
#### 操作流程
本实践操作流程如下所示：
1. [步骤一：添加Task节点]：为已有的MRS集群新增Task节点组。
2. [步骤二：添加资源池]：通过管理控制台将新增的节点配置为租户资源池。
3. [步骤三：添加租户]：新创建一个租户。
4. [步骤四：队列配置]：修改租户对应的资源队列配置及资源分布策略，将其与新资源池绑定。
5. [步骤五：创建用户]：新创建一个MRS集群用户并绑定租户。
6. [步骤六：使用spark-submit提交任务]：使用指定的队列运行作业任务。
7. [步骤七：删除Task节点]：释放资源。
 
 #### 步骤一：添加Task节点
1. 在MRS集群的集群详情页面，选择"节点管理"页签，单击"新增节点组"，进入"新增节点组"页面。
2. 根据需求配置参数。
   表1新增节点组参数说明 
   | 参数名称      | 描述                   |
   |:---|:---|
   | 节点规格      | 选择节点组内主机的规格类型。       |
   | 节点数量      | 设置新增节点组内的节点数量。       |
   | 系统盘       | 设置新增节点的系统盘的规格与容量。    |
   | 数据盘/数据盘数量 | 设置新增节点的数据盘的规格与容量及数量。 |
   | 部署角色      | 添加"NodeManager"角色。   |
      
   
3. 单击"确定"。
 
 #### 步骤二：添加资源池
1. 在集群详情页，单击"租户管理"。
2. 单击"资源池"页签。
3. 单击"添加资源池"。
4. 在"添加资源池"设置资源池的属性。 
   - "名称"：填写资源池的名称，例如"test1"。
   
   - "资源标签"：填写资源池的标签。例如"1"。
   
   - "可用主机"：选择[步骤一：添加Task节点]添加的节点。
   
   
   
   
5. 单击"确定"保存。
 
 #### 步骤三：添加租户
1. 在集群详情页，单击"租户管理"。
2. 单击"添加租户"，打开添加租户的配置页面，参见以下表格内容为租户配置属性（以MRS 3.x版本集群为例）。 
   表2租户参数一览表 
   | **参数名**     | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 名称          | 例如：tenant_spark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 租户类型        | 选择"叶子租户"。当选中"叶子租户"时表示当前租户为叶子租户，无法再添加子租户。当选中"非叶子租户"时表示当前租户可以再添加子租户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 计算资源        | 选择"Yarn"，系统将自动在Yarn中以租户名称创建任务队列。计算资源不选择"Yarn"时，系统不会自动创建任务队列。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 配置模式        | 计算资源选择"Yarn"时，"配置模式"可选"基础"或"高级"。 - 基础：需配置"默认资源池容量 (%)"，配置当前租户在"default"资源池中使用的计算资源百分比。  - 高级：需配置如下参数。 - 权重：资源分配权重，取值范围从0到100。租户资源占比=租户权重/同级别租户总权重之和。  - 最小资源：保证租户能获得的资源（有抢占支持）。取值可以是父租户资源的百分比或绝对值。当租户作业量比较少时，资源会自动借给其他租户，当租户能使用的资源不满足最小资源时，可以通过抢占来要回之前借出的资源。  - 最大资源：租户最多能使用的资源，租户不能得到比最大资源设定更多的资源。取值可以是父租户资源的百分比或绝对值。  - 预留资源：租户最多能使用的资源，租户不能得到比最大资源设定更多的资源。取值可以是父租户资源的百分比或绝对值。     |
   | 默认资源池容量 (%) | 配置当前租户在"default"资源池中使用的计算资源百分比，例如"20%"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 存储资源        | 选择"HDFS"，第一次创建租户时，系统自动在HDFS根目录创建"/tenant"目录。存储资源不选择"HDFS"时，系统不会在HDFS中创建存储目录。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 文件/目录数上限    | 例如：100000000000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 存储空间配额      | 配置当前租户使用的HDFS存储空间配额。最小值为"1"，最大值为父租户的全部存储配额。单位为MB或GB。例如：50000，单位为MB。此参数值表示租户可使用的HDFS存储空间上限，不代表一定使用了这么多空间。如果参数值大于HDFS物理磁盘大小，实际最多使用全部的HDFS物理磁盘空间。 说明： 为了保证数据的可靠性，HDFS中每保存一个文件则自动生成1个备份文件，即默认共2个副本。HDFS存储空间表示所有副本文件在HDFS中占用的磁盘空间大小总和。例如"存储空间配额"设置为"500MB"，则实际只能保存约500/2=250MB大小的文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 存储路径        | 例如："tenant/spark_test"，系统默认将自动在"/tenant"目录中以租户名称创建文件夹。例如租户"spark_test"，默认HDFS存储目录为"tenant/spark_test"。第一次创建租户时，系统自动在HDFS根目录创建"/tenant"目录。支持自定义存储路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 服务          | 配置当前租户关联使用的其他服务资源，支持HBase。单击"关联服务"，在"服务"选择"HBase"。在"关联类型"选择"独占"表示独占服务资源，选择"共享"表示共享服务资源。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 描述          | 配置当前租户的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
      
   
   
3. 单击"确定"保存，完成租户添加。 
   保存配置需要等待一段时间，界面右上角弹出提示"租户创建成功。"，租户成功添加。
   ![](https://support.huaweicloud.com/bestpractice-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 创建租户时将自动创建租户对应的角色、计算资源和存储资源。
   
   - 新角色包含计算资源和存储资源的权限。此角色及其权限由系统自动控制，不支持通过"角色管理"进行手动管理。
   
   - 使用此租户时，请创建一个系统用户，并分配Manager_tenant角色以及租户对应的角色。
    
   
   
 
 #### 步骤四：队列配置
1. 在集群详情页，单击"租户管理"。
2. 单击"队列配置"页签。
3. 在租户队列表格，指定租户队列的"操作"列，单击"修改"。 
   ![](https://support.huaweicloud.com/bestpractice-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 在"租户管理"页签左侧租户列表，单击目标的租户，切换到"资源"页签，单击![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000001181244198.png)也能打开修改队列配置页面（仅适用于MRS 3.x之前版本）。
   
   - 一个队列只能绑定一个非default资源池。
    
   默认资源标签选择[步骤二：添加资源池]时填写的标签，其他参数请根据实际情况填写。
   
   
4. 单击"确定"。

5. 在集群详情页，单击"租户管理"。
6. 单击"资源分布策略"页签，资源池选择[步骤二：添加资源池]创建的资源池。
7. 在租户tenant_spark"操作"列，单击"修改"。 
   - 权重：20
   
   - 最小资源：20
   
   - 最大资源：80
   
   - 预留资源：10
   
   
   
   
8. 单击"确定"。
 
 #### 步骤五：创建用户
1. 登录FusionInsight Manager管理界面，具体请参考[访问FusionInsight Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0129.html)。
2. 选择"系统 \> 权限 \> 用户"，单击"添加用户"。 
   - 用户名：spark_test
   
   - 用户类型：人机
   
   - 用户组：hadoop、hive
   
   - 主组：hadoop
   
   - 角色：tenant_spark
   
   
   
   
3. 单击"确定"，完成用户添加。
 
 #### 步骤六：使用spark-submit提交任务
1. 使用root用户登录客户端节点，执行如下命令： 
   **cd** *客户端安装目录*
   **source bigdata_env**
   **source Spark2x/component_env**
   安全集群（开启kerberos认证）执行命令**kinit spark_test**，普通模式（关闭kerberos认证）无需执行。
   输入密码，完成认证（第一次登录需要修改密码）。
   
   
2. 使用认证后的用户提交Spark作业任务。 
   **cd Spark2x/spark/bin**
   **sh spark-submit --queue tenant_spark --class org.apache.spark.examples.SparkPi --master yarn-client ../examples/jars/spark-examples_\*.jar**
   
   
 
 #### 步骤七：删除Task节点
1. 在集群详情页面，单击"节点管理"页签。
2. 在Task节点组的"操作"列，选择"缩容"。
3. 缩容类型选择"指定节点缩容"，勾选需要缩容的节点。 
   ![](https://support.huaweicloud.com/bestpractice-mrs/public_sys-resources/note_3.0-zh-cn.png)
   当节点处于关机、失联、未知、已隔离、故障状态时，可以指定节点缩容。
   
   
4. 勾选"我已经阅读上述信息，并了解具体影响。"，并单击"确定"。
 
