Hadoop 从spark连接时,配置单元权限被拒绝错误

Hadoop 从spark连接时,配置单元权限被拒绝错误,hadoop,apache-spark,hive,Hadoop,Apache Spark,Hive,我正在从Spark连接到Hive metastore,并执行一个“createexternaltable”语句。我得到这个错误 org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(消息:java.security.AccessControlException:Permission 拒绝:用户=配置单元,访问=写入, inode=“/user/mike/test”:mike:users:drwxr-xr-x 配置单元模拟在

我正在从Spark连接到Hive metastore,并执行一个“createexternaltable”语句。我得到这个错误

org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(消息:java.security.AccessControlException:Permission 拒绝:用户=配置单元,访问=写入, inode=“/user/mike/test”:mike:users:drwxr-xr-x

配置单元模拟在Hive-site.xml中设置为true

hive.server2.enable.doAs=true

但仍然出现错误。如何修复?这是我的代码段,我正在从用户“mike”执行它

from pyspark import SparkContext
from pyspark.sql import HiveContext

sc = SparkContext(appName="PythonSQL")
sqlContext = HiveContext(sc)
sqlContext.sql("create external table ... location '/user/mike/test')

请使用命令ls-la检查您提到的错误中的配置单元和文件夹的所有者权限,如果不是hadoop,请使用sudo chown-R提供权限……。命令问题是spark使用“配置单元”用户连接到配置单元,它应该作为运行spark应用程序的用户连接,您可以尝试吗他的命令“hadoop fs-chmod 777/user/mike/test”并重新执行您的工作并检查pls。如果上述命令不起作用,请尝试此命令“sudo chown-R用户名:hadoop/user/mike/test”。在我的情况下,用户名是hduser,因此我的命令类似于“sudo chown-R hduser:hadoop/user/mike/test”在向所有用户授予对文件夹/user/mike/test的写入权限后,它工作正常。我正在从mike用户帐户执行spark应用程序。但是spark正在以“hive”用户而不是“mike”的身份连接到配置单元。mike用户具有对/user/mike/test文件夹的读写权限,但配置单元用户没有。这就是问题所在。如何连接到h作为执行spark应用程序的用户,来自spark的ive?