EMR on ACK默认部署在x86架构的节点上,您也可以通过配置将Spark作业运行在Arm虚拟节点(弹性容器实例ECI)上。本文为您介绍如何使用Arm虚拟节点运行Spark作业。
索引
前提条件
EMR和EMR on ACK介绍
EMR:阿里云开源大数据开发平台E-MapReduce(简称EMR),是运行在阿里云平台上的一种大数据处理的系统解决方案。详细信息,请参见什么是E-MapReduce。
EMR on ACK:阿里云EMR on ACK提供了全新构建大数据平台的方式。您可以将开源大数据服务部署在阿里云容器服务ACK上。利用ACK在服务部署和容器应用管理的优势,减少对底层集群资源的运维投入,让您可以更聚焦于大数据任务本身。详细信息,请参见EMR on ACK概述。
操作步骤
在ACK集群中安装虚拟节点。详细信息,请参见方式二:添加Arm架构的虚拟节点。
在EMR on ACK上提交Spark作业。更多信息,请参见提交Spark作业。
方式一:使用CRD方式提交作业
提交作业时,需要添加以下内容:
指定image镜像:本文示例为registry-vpc.cn-hangzhou.aliyuncs.com/emr/spark-py:emr-3.3.1-1.1.7-arm,其中cn-hangzhou需替换为您实际Region的名称。
添加annotations:内容为alibabacloud.com/burst-resource: "eci_only"。
添加nodeSelector:内容为kubernetes.io/arch: arm64。
添加内容示例如下。
方式二:配置Spark Conf
您也可以通过增加Spark Conf来配置image、annotation和nodeSelector,从而实现Arm节点调度。
进入spark-defaults.conf页签。
登录EMR on ACK控制台,单击目标集群操作列的配置。
在配置页签,单击spark-defaults.conf。
配置Spark集群以启用ECI。
单击上方的新增配置项。
在新增配置项对话框中,添加以下配置。
Key
说明
示例值
spark.kubernetes.container.image
Spark镜像。
registry-vpc.cn-hangzhou.aliyuncs.com/emr/spark-py:emr-3.3.1-1.1.7-arm
说明cn-hangzhou需要替换为您实际Region的名称。
spark.kubernetes.driver.annotation.alibabacloud.com/burst-resource
Spark Driver是否使用ECI。
eci_only
spark.kubernetes.driver.node.selector.kubernetes.io/arch
Spark Driver的nodeSelector。
arm64
spark.kubernetes.executor.annotation.alibabacloud.com/burst-resource
Spark Executor是否使用ECI。
eci_only
spark.kubernetes.executor.node.selector.kubernetes.io/arch
Spark Executor的nodeSelector。
arm64
单击确定。
在弹出的对话框中,输入执行原因,单击保存。
生效配置。
单击下方部署客户端配置。
在弹出的对话框中,输入执行原因,单击确定。
在确认对话框中,单击确定。