spark 读取 hive 报错:Permission denied: user=xxx, access=EXECUTE, inode="/tmp":root:supergroup:drwx 作者:马育民 • 2026-04-19 23:07 • 阅读:10003 # 描述错误 在windows编写代码,运行程序,读取hdfs上的hive数据,使用的windows的用户。 在读取时,需要向 HDFS 的 `/tmp` 目录下写数据,该目录只认 `root` 用户。 所以导致权限问题,报错如下: ``` Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: org.apache.hadoop.security.AccessControlException: Permission denied: user=mym, access=EXECUTE, inode="/tmp":root:supergroup:drwx------ ``` ### 解决方式一 在要执行的文件 **点右键**,如按下图点击: [](https://www.malaoshi.top/upload/0/0/1GW3A6Kv8C4e.png) [](https://www.malaoshi.top/upload/0/0/1GW3A6M2C8Hq.png) 在上图红框处加上下面配置,表示以 `root` 用户运行: ``` HADOOP_USER_NAME=root ``` ### 解决方式二 如果【解决方式一】不行,一般是工程的问题,重新创建工程 ### 解决方式三 如果上面方式 **都不行**,在第一行加上下面代码: ``` System.setProperty("HADOOP_USER_NAME", "root") ``` 原文出处:http://malaoshi.top/show_1GW3A69mFvus.html