
# 使用Ranger时适配第三方JDK
#### 操作场景
当使用Ranger作为spark sql的权限管理服务时，访问RangerAdmin需要使用集群中的证书。如果用户未使用集群中的JDK或者JRE，而是使用第三方JDK时，会出现访问RangerAdmin失败，进而Spark应用程序启动失败的问题。
在这个场景下，需要进行以下操作，将集群中的证书导入第三方JDK或者JRE中。
#### 前提条件
安装集群客户端，具体请参考[安装MRS客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2127.html)，例如安装路径为"/opt/client"。
#### 配置方法
1. 导出集群中的证书：
   
   1. 执行以下命令，切换到客户端安装目录。
      ```
      cd /opt/client
      ```
      
   
   2. 执行以下命令配置环境变量。
      ```
      source bigdata_env
      ```
      
   
   3. 安全模式执行安全认证，普通模式无需执行：
      ```
      kinit 组件业务用户
      ```
      
   
   4. 生成证书文件。
      使用keytool工具从集群客户端JRE的证书库中导出集群根证书。
      ```
      keytool -export -alias fusioninsightsubroot -storepass changeit -keystore /opt/client/JRE/jre/lib/security/cacerts -file fusioninsightsubroot.crt
      ```
      
   
   
   
   
2. 将集群中的证书导入第三方JDK或者JRE中。 
   将[1]中生成的**fusioninsightsubroot.crt**文件复制到第三方JRE节点上，设置好该节点的JAVA_HOME环境变量后，执行以下命令导入证书：
   ```
   keytool -import -trustcacerts -alias fusioninsightsubroot -storepass changeit -file fusioninsightsubroot.crt -keystore MY_JRE/lib/security/cacerts
   ```
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   'MY_JRE'表示第三方JRE安装路径，请自行修改。
   
   
3. 验证证书是否导入成功。 
   执行以下命令查看证书库中的证书列表。如果回显中包含"fusioninsightsubroot"，且证书信息正常，说明证书已成功导入：
   ```
   keytool -list -alias fusioninsightsubroot -storepass changeit -keystore MY_JRE/lib/security/cacerts
   ```
   
   
 
#### 相关文档
- 如果MRS集群证书即将过期，请参考[更换MRS集群证书](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300089.html)更换集群证书。
- 了解如何在Ranger中为Spark表配置访问权限和脱敏策略，具体请参考[添加Spark的Ranger访问权限策略](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1860.html)。
- 了解如何安装和使用Spark客户端，具体请参考[Spark客户端使用实践](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1929.html)。
- 如需了解Spark常用配置参数的含义和用法，具体请参考[Spark常用配置参数](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1931.html)。
 
