文档首页/ MapReduce服务 MRS/ 组件操作指南(安卡拉区域)/ 使用Spark/ Spark常见问题/ Spark使用Ranger场景常见问题/ 使用Ranger鉴权,客户端挂载只读模式下,spark-sql 和spark-submit执行异常
更新时间:2024-11-29 GMT+08:00

使用Ranger鉴权,客户端挂载只读模式下,spark-sql 和spark-submit执行异常

问题

使用Ranger鉴权,客户端挂载只读模式下,spark-sql 和spark-submit执行异常,报错保存sparkSql_Hive_roles.json失败。

可能原因

Spark客户端提交应用时,会读取Ranger最新鉴权策略文件并缓存至本地,更新“$SPARK_HOME/conf/sparkSql_Hive.json与$SPARK_HOME/conf/sparkSql_Hive_roles.json”文件。只读模式下,无法更新客户端配置文件,导致报错。

解决方法

方法一:不使用Ranger鉴权,改为ACL鉴权方式,具体请参考SparkSQL权限管理(安全模式)

方法二:修改策略文件保存地址,并添加修改权限:

通过修改客户端下“/opt/client/Spark/spark/conf/ranger-spark-security.xml”文件中的配置项“ranger.plugin.spark.policy.cache.dir”为客户端以外的目录,且该目录具有Spark的执行权限。

方法三:取消客户端配置文件的只读设置(需要用户自行设置)。