如何从指定用户的Spark中保存HDFS中的数据

时间:2017-12-11 09:43:58

标签: scala apache-spark hdfs

我想从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进行连接,如何配置为使用具有足够权限的其他用户?

2 个答案:

答案 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