描述错误
在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------
解决方式一
在要执行的文件 点右键,如按下图点击:
在上图红框处加上下面配置,表示以 root 用户运行:
HADOOP_USER_NAME=root
解决方式二
如果【解决方式一】不行,一般是工程的问题,重新创建工程
解决方式三
如果上面方式 都不行,在第一行加上下面代码:
System.setProperty("HADOOP_USER_NAME", "root")

