【发布时间】:2016-10-12 05:14:35
【问题描述】:
我一直在尝试使用 hadoop 中的资源管理器 api 来提交作业(如 http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Writeable_APIs 中给出的那样)。
当我尝试从任何用户(比如 hadoop)提交作业时,它会以用户身份 - webuser 提交,并且应用程序失败并显示一条消息,
org.apache.hadoop.security.AccessControlException: 用户 webuser 不能 提交申请到队列...
当我查看 hadoop 的配置文件时,我没有看到任何关于 webuser 的提及。也没有可用的本地网络用户。
这个用户是从哪里接上来的? 如何以原始用户身份通过资源管理器提交作业并继续申请?
感谢您提供有关此问题的任何指导。谢谢!
edit 1 - 为调用添加输入。 申请被接受。
{
"application-id": "application_1476245592339_0001",
"application-name": "rm-mr-test",
"queue": "default",
"am-container-spec": {
"commands": {
"command": "hadoop jar /usr/hdp/2.3.0.0-2557/hadoop-mapreduce/hadoop-mapr educe-examples.jar teragen 100 /tmp/rm-api-test/1"
},
"unmanaged-AM": false,
"max-app-attempts": 2,
"resource": {
"memory": 2250,
"vCores": 8
},
"application-type": "MAPREDUCE",
"keep-containers-across-application-attempts": false
}
}
【问题讨论】:
-
@KrishnaChaitanyaReddy,这是用于获取/更改应用程序的队列。我在这里错过了什么吗?你能解释一下吗?
-
尝试使用 "queue": "root.default"
-
队列不是这里的问题。问题是应用程序以未配置的网络用户身份提交。
标签: hadoop hadoop2 resourcemanager