配置Spark对接MemArtsStore
操作场景
本章节介绍如何配置Spark任务中集成MemArtsStore。使用MemArtsStore存储Shuffle Data后,大数据应用不再依赖带本地盘的机型。其次,MemArtsStore提供多副本机制保证Shuffle Data的高可用性,单个节点故障不会导致Shuffle Data丢失。最后,MemArtsStore内部会对相同Partition的数据进行聚合,从而消除小IO问题,提升Shuffle性能。
前提条件
集群已安装Spark,且Spark功能正常。
操作步骤
修改SparkResource配置
- 登录FusionInsight Manager,选择“集群 > 服务 > Spark > 配置 > 全部配置 > SparkResource(角色) > MemArtsStore”。
- 在参数“spark.shuffle.manager”选择“org.apache.spark.shuffle.mass.MassShuffleManager”。
- 单击“保存”,在弹窗页面中单击“确定”,保存配置。
- 单击“实例”,勾选“SparkResource”,选择“更多 > 滚动重启实例”,重启SparkResource实例。
- 重新下载安装Spark服务客户端,或者更新已有客户端配置,具体参考使用MRS客户端。
修改Spark JDBCServer配置
- 登录FusionInsight Manager,选择“集群 > 服务 > Spark > 配置 > 全部配置 > JDBCServer(角色) > MemArtsStore”。
- 在参数“spark.shuffle.manager”选择“org.apache.spark.shuffle.mass.MassShuffleManager”。
- 单击“保存”,在弹窗页面中单击“确定”,保存配置。
- 单击“实例”,勾选“JDBCServer”,选择“更多 > 滚动重启实例”,重启JDBCServer实例。
- 重新下载安装Spark服务客户端,或者更新已有客户端配置,具体参考使用MRS客户端。
验证配置结果
- 登录Spark客户端节点,进入客户端目录,执行以下命令(普通模式无需执行用户认证):
cd {客户端安装目录}source bigdata_env
source Spark/component_env
kinit <用于认证的业务用户>
- 进入spark-sql客户端:
cd ./Spark/spark/bin
spark-sql --master yarn
- 提交一个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; - 登录FusionInsight Manager,选择“集群 > 服务 > MemArtsStore > 概览”。
- 查看图表“Store集群总计每秒写入次数”,在SQL作业运行期间该图表数据有波动,表示对接成功。