配置Spark加载第三方jar包,用于注册UDF或者扩展SparkSQL
本章节仅适用于MRS 3.5.0-LTS及之后版本。
配置场景
用户可能经常会自定义UDF或者使用一些自定义jar扩展Spark能力,针对这种第三方jar需要在Spark启动前指定好第三方类加载路径。
前提条件
准备好自定义jar包,并上传到客户端节点。本操作以“spark-test.jar”为例,上传到客户端节点“/tmp”目录下。
配置参数
- 以客户端安装用户,登录安装客户端的节点,执行如下命令:
cd {客户端安装目录}
source bigdata_env
如果集群已启用Kerberos认证(安全模式),执行以下命令进行用户认证。集群未启用Kerberos认证(普通模式)无需执行用户认证。
kinit 组件业务用户
- 执行如下命令上传jar包到HDFS中,例如上传到HDFS自定义路径“hdfs://hacluster/tmp/spark/JAR”
hdfs dfs -put /tmp/spark-test.jar /tmp/spark/JAR/
- 在Spark客户端的“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”配置文件中进行设置,修改如下参数:
参数
参数值
spark.jars
Jar包路径,例如:hdfs://hacluster/tmp/spark/JAR/spark-test.jar
- 登录FusionInsight Manager系统,选择“集群 > 服务 > Spark > 配置 > 全部配置 >JDBCServer(角色) > 自定义”,在“custom”中添加如下参数,并重启JDBCServer服务。
参数
参数值
spark.jars
Jar包路径,例如:hdfs://hacluster/tmp/spark/JAR/spark-test.jar
- 验证jar包已经被加载,执行结果无“ClassNotFoundException”报错,则表示正常。