问题描述
今天在 idea 中写 scala 的代码访问服务器的 HDFS,报访问HDFS的权限问题:Permission denied: user=xxx, access=WRITE, inode="xxxxxxxx"的错误,如下图所示:
问题分析
从报错的内容看,idea将访问服务器的用户名默认为电脑本地的用户名,而远程服务器上并没有这个用户,就更不能操作HDFS了,因此需要修改为服务器上的可以操作HDFS的用户名。
问题解决
在代码的入口进行用户名的配置,
System.setProperty("HADOOP_USER_NAME","root")
一般设置为root就可以,这个看服务器上的具体配置而定。
我的服务器上HDFS是安装在hty用户下的,因此如下图设置。
设置完成之后,重启代码不再报错。