我想从Spark保存HDFS中的文件,我只是尝试使用下一行:
df.write.format("com.databricks.spark.csv").save(s"hdfs://hdp.asier.es:8020/assetgroup/$index/1-20170131")
但它会引发下一个错误:
Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=agomez, access=WRITE, inode="/assetgroup/1/1-20170131/_temporary/0":hdfs:hdfs:drwxr-xr-x
很明显,问题是因为它尝试使用user: agomez
进行连接,如何配置为使用具有足够权限的其他用户?
答案 0 :(得分:1)
我解决了在环境变量中定义Hadoop用户名的问题:
HADOOP_USER_NAME=sparkload
答案 1 :(得分:0)
从命令行以用户hdfs登录后,您需要更改HDFS目录/assetgroup
的访问权限:
hdfs dfs –chmod –R 755 /assetgroup
或者您可以向用户提供权限
hadoop fs -chown -R user:agomez /assetgroup