运行SparkSql作业
用户可将自己开发的程序提交到MRS中,执行程序并获取结果。本章节教您在MRS集群页面如何提交一个新的SparkSql作业。SparkSQL作业用于查询和分析数据,包括SQL语句和Script脚本两种形式,如果SQL语句涉及敏感信息,请使用Spark Script提交。
前提条件
用户已经将运行作业所需的程序包和数据文件上传至OBS系统或HDFS中。
通过界面提交作业
- 登录MRS管理控制台。
- 选择“集群列表 > 现有集群”,选中一个运行中的集群并单击集群名称,进入集群信息页面。
- 若集群开启Kerberos认证时执行该步骤,若集群未开启Kerberos认证,请无需执行该步骤。
在“概览”页签的基本信息区域,单击“IAM用户同步”右侧的“同步”进行IAM用户同步。
- 当IAM用户的用户组的所属策略从MRS ReadOnlyAccess向MRS CommonOperations、MRS FullAccess、MRS Administrator变化时,由于集群节点的SSSD(System Security Services Daemon)缓存刷新需要时间,因此同步完成后,请等待5分钟,等待新修改策略生效之后,再进行提交作业。否则,会出现提交作业失败的情况。
- 当IAM用户的用户组的所属策略从MRS CommonOperations、MRS FullAccess、MRS Administrator向MRS ReadOnlyAccess变化时,由于集群节点的SSSD缓存刷新需要时间,因此同步完成后,请等待5分钟,新修改策略才能生效。
- 单击 ,进入 页签。
- 请单击“添加”,进入添加作业页面,“作业类型”选择“SparkSql”,作业参考表1配置SparkSql作业信息。
表1 作业配置信息 参数
参数说明
作业名称
作业名称,只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。
说明:建议不同的作业设置不同的名称。
SQL类型
SQL查询语句提交类型。
- SQL
- Script
SQL语句
“SQL类型”参数为“SQL”时参数有效,请输入待运行的SQL语句,然后单击“检查”来检查SQL语句的正确性,确保输入语句正确。如果同时需要提交多条语句并执行,使用“;”分隔不同语句。
SQL文件
“SQL类型”参数为“Script”时参数有效,待执行SQL文件的路径,需要满足以下要求。
- 最多为1023字符,不能包含;|&>,<'$特殊字符,且不可为空或全空格。
- 执行程序路径可存储于HDFS或者OBS中,不同的文件系统对应的路径存在差异。
- OBS:以“obs://”开头。示例:obs://wordcount/program/xxx.jar。
- HDFS:以“/user”开头。数据导入HDFS请参考导入数据。
- SparkScript和HiveScript需要以“.sql”结尾,MapReduce需要以“.jar”结尾,Flink和SparkSubmit需要以“.jar”或“.py”结尾。sql、jar、py不区分大小写。
说明:存储在OBS上的文件路径支持以“obs://”开头格式。如需使用该格式提交作业,访问OBS需要配置对应权限。
- 创建集群时开启“OBS权限控制”功能时,可直接使用“obs://”路径,无需单独配置。
- 创建集群时未开启或不支持“OBS权限控制”功能时,请参考访问OBS页面进行配置。
运行程序参数
可选参数,为本次执行的作业配置相关优化参数(例如线程、内存、CPU核数等),用于优化资源使用效率,提升作业的执行性能。
常用运行程序参数如表2。
服务配置参数
可选参数,用于为本次执行的作业修改服务配置参数。该参数的修改仅适用于本次执行的作业,如需对集群永久生效,请参考配置服务参数页面进行修改。
如需添加多个参数,请单击右侧增加,如需删除参数,请单击右侧“删除”。
常用服务配置参数如表3。
命令参考
用于展示提交作业时提交到后台执行的命令。
- 确认作业配置信息,单击“确定”,完成作业的新增。
作业新增完成后,可对作业进行管理。
通过后台提交作业
客户端默认安装路径为“/opt/Bigdata/client”,具体以实际为准。
- 参考创建用户页面,创建一个用于提交作业的用户。
本示例创建一个机机用户,并分配了正确的用户组(hadoop、supergroup)、主组(supergroup)和角色权限(System_administrator、default)。
- 下载认证凭据。
请登录FusionInsight Manager页面选择“系统 > 权限 > 用户”,在新增用户的操作列单击“更多 > 下载认证凭据”。
- 登录Spark客户端所在节点,上传2创建的用户认证凭据到集群的“/opt”目录下,并执行如下命令解压:
tar –xvf MRSTest _xxxxxx_keytab.tar
得到user.keytab和krb5.conf两个文件。
- 在对集群操作之前首先需要执行:
source /opt/Bigdata/client/bigdata_env
cd $SPARK_HOME
- 打开spark-sql命令行,进入spark-sql命令行后可执行SQL语句,执行命令如下:
./bin/spark-sql --conf spark.yarn.principal=MRSTest --conf spark.yarn.keytab=/opt/user.keytab
若需要执行SQL文件,需要上传SQL文件(如上传到“/opt/”目录),上传文件后执行命令如下:
./bin/spark-sql --conf spark.yarn.principal=MRSTest --conf spark.yarn.keytab=/opt/user.keytab -f /opt/script.sql