HDFS用户的配置单元查询失败



如果我自己运行配置单元外壳,我可以查询表。

但是如果我使用sudo -u hdfs hive 运行hive-shell

然后我的所有查询都失败了,并显示错误消息

Application application_1447966350718_10654 failed 2 times due to AM Container for appattempt_1447966350718_10654_000002 exited with exitCode: -1000
For more detailed output, check application tracking page:http://vtdevana-cloudera11.dealer.ddc:8088/proxy/application_1447966350718_10654/Then, click on links to logs of each attempt.
Diagnostics: Application application_1447966350718_10654 initialization failed (exitCode=255) with output: main : command provided 0
main : user is nobody
main : requested yarn user is hdfs
Can't create directory /yarn/nm/usercache/hdfs/appcache/application_1447966350718_10654 - Permission denied
Did not create any app directories
Failing this attempt. Failing the application.

我应该怎么做才能使用hdfs用户查询hive?

"/yarn/nm/usercache/hdfs/appcache/application_1447966350718_10654"是本地文件系统上的路径。

在您的yarn-site.xml中,有一个配置参数:yarn.nodemanager.local-dirs

该参数的描述为:

要存储的目录列表中的本地化文件。应用程序的本地化文件目录将在中找到:${yarn.nodemanager.local-dirs}/usercache/${user}/appcache/application_${appid}。单个容器的工作目录,称为container_${contid},将是的子目录。

因此,在您的情况下,此参数已设置为:

yarn.nodemanager.local-dirs=/yarn/nm/ 

因此,当您尝试以用户hdfs的身份执行配置单元查询时,它会尝试在本地文件系统中创建以下文件夹,但由于权限不足,操作失败:

${yarn.nodemanager.local-dirs}/usercache/${user}/appcache/application_${appid} 

被翻译成

/yarn/nm/usercache/hdfs/appcache/application_1447966350718_10654

"${yarn.nodemanager.local-dirs}"替换为"/yarn/nm"
"${user}"替换为"hdfs"
"${appid}"替换为"1447966350718_10654"

为了解决这个问题,您需要向所有用户授予对顶级文件夹的写入权限:/yarn/nm/

相关内容

  • 没有找到相关文章

最新更新