
# 配置Spark加载第三方jar包，用于注册UDF或者扩展SparkSQL
#### 操作场景
用户可能经常会自定义UDF或者使用一些自定义jar扩展Spark能力，针对这种第三方jar需要在Spark启动前指定好第三方类加载路径。
#### 约束与限制
本章节仅适用于MRS 3.5.0-LTS及之后版本。
#### 前提条件
准备好自定义jar包，并上传到客户端节点。本操作以"spark-test.jar"为例，上传到客户端节点"/tmp"目录下。
#### 配置参数
1. 安装Spark客户端。 
   详细操作请参考[安装MRS客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2127.html)。
   
   
2. 以客户端安装用户，登录安装客户端的节点，执行如下命令： 
   进入客户端安装目录
   ```
   cd {客户端安装目录}
   ```
   配置环境变量
   ```
   source bigdata_env
   ```
   如果集群已启用Kerberos认证（安全模式），执行以下命令进行用户认证。集群未启用Kerberos认证（普通模式）无需执行用户认证。
   ```
   kinit 组件业务用户
   ```
   
   
3. 执行如下命令上传jar包到HDFS中，例如上传到HDFS自定义路径"hdfs://hacluster/tmp/spark/JAR" 
   ```
   hdfs dfs -put /tmp/spark-test.jar /tmp/spark/JAR/
   ```
   
   
4. 在Spark客户端的"*{客户端安装目录}* /Spark/spark/conf/spark-defaults.conf"配置文件中进行设置，修改如下参数：
   
   
   | **参数**     | 参数值                                                     |
   |:---|:---|
   | spark.jars | Jar包路径，例如：hdfs://hacluster/tmp/spark/JAR/spark-test.jar |
      
   
   
5. 登录FusionInsight Manager系统，选择"集群 \> 服务 \> Spark \> 配置 \> 全部配置 \>JDBCServer（角色） \> 自定义"，在"custom"中添加如下参数，并重启JDBCServer服务。 
   
   | **参数**     | 参数值                                                     |
   |:---|:---|
   | spark.jars | Jar包路径，例如：hdfs://hacluster/tmp/spark/JAR/spark-test.jar |
      
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002062085208.png "点击放大")
   
   
6. 验证jar包已经被加载，执行结果无"ClassNotFoundException"报错，则表示正常。
 
