
# 配置Spark对接MemArtsStore
#### 操作场景
本章节介绍如何配置Spark任务中集成MemArtsStore。使用MemArtsStore存储Shuffle Data后，大数据应用不再依赖带本地盘的机型。其次，MemArtsStore提供多副本机制保证Shuffle Data的高可用性，单个节点故障不会导致Shuffle Data丢失。最后，MemArtsStore内部会对相同Partition的数据进行聚合，从而消除小IO问题，提升Shuffle性能。
#### 前提条件
集群已安装Spark，且Spark功能正常。
#### 操作步骤
**修改SparkResource配置**
1. 登录FusionInsight Manager，选择"集群 \> 服务 \> Spark \> 配置 \> 全部配置 \> SparkResource（角色） \> MemArtsStore"。
2. 在参数"spark.shuffle.manager"选择"org.apache.spark.shuffle.mass.MassShuffleManager"。
3. 单击"保存"，在弹窗页面中单击"确定"，保存配置。
4. 单击"实例"，勾选"SparkResource"，选择"更多 \> 滚动重启实例"，重启SparkResource实例。
5. 重新下载安装Spark服务客户端，或者更新已有客户端配置，具体参考[使用MRS客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2126.html)。
**修改Spark JDBCServer配置**
6. 登录FusionInsight Manager，选择"集群 \> 服务 \> Spark \> 配置 \> 全部配置 \> JDBCServer（角色） \> MemArtsStore"。
7. 在参数"spark.shuffle.manager"选择"org.apache.spark.shuffle.mass.MassShuffleManager"。
8. 单击"保存"，在弹窗页面中单击"确定"，保存配置。
9. 单击"实例"，勾选"JDBCServer"，选择"更多 \> 滚动重启实例"，重启JDBCServer实例。
10. 重新下载安装Spark服务客户端，或者更新已有客户端配置，具体参考[使用MRS客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2126.html)。
 
#### 验证配置结果
1. 登录Spark客户端节点，进入客户端目录，执行以下命令（普通模式无需执行用户认证）： 
   ```
   cd {客户端安装目录}
   ```
   ```
   source bigdata_env
   ```
   ```
   source Spark/component_env
   ```
   ```
   kinit <用于认证的业务用户>
   ```
   
   
2. 进入spark-sql客户端： 
   ```
   cd ./Spark/spark/bin
   ```
   ```
   spark-sql --master yarn
   ```
   
   
3. 提交一个SQL作业： 
   ```
   create table test1(name string, num int);
   insert into test1 values("a",1),("b",2),("c",3);
   select name,count(1) from test1 group by name;
   ```
   
   
4. 登录FusionInsight Manager，选择"集群 \> 服务 \> MemArtsStore \> 概览"。
5. 查看图表"Store集群总计每秒写入次数"，在SQL作业运行期间该图表数据有波动，表示对接成功。
 
