我可以使用ambari成功地将用户路由到特定的队列。我用于用户的语法是:
u:hive:prod
但是,我无法为一个团体做到这一点。
我用于组的语法是:
g:datascience:dev
在边缘节点上,我有一个名为datascience
的组,其中包含用户scientist
$ groups scientist
scientist : scientist datascience
当我与此用户(例如insert into default.routingtest values (0, "test")
(发送直线命令时,我收到以下错误消息:
信息:由于 Dag 提交失败 org.apache.hadoop.yarn.exceptions.YarnException: 未能提交 用户科学家提交的申请application_1592385599162_0001 原因:未找到用户科学家的组 at org.apache.hadoop.yarn.server.resourcemanager.placement.UserGroupMappingPlacementRule.getPlacementForApp(UserGroupMappingPlacementRule.java:210( at org.apache.hadoop.yarn.server.resourcemanager.placement.PlacementManager.placeApplication(PlacementManager.java:67( at org.apache.hadoop.yarn.server.resourcemanager.RMAppManager.placeApplication(RMAppManager.java:791( at org.apache.hadoop.yarn.server.resourcemanager.RMAppManager.createAndPopulateNewRMApp(RMAppManager.java:368( at org.apache.hadoop.yarn.server.resourcemanager.RMAppManager.submitApplication(RMAppManager.java:320( at org.apache.hadoop.yarn.server.resourcemanager.ClientRMService.submitApplication(ClientRMService.java:645( at org.apache.hadoop.yarn.api.impl.pb.service.ApplicationClientProtocolPBServiceImpl.submitApplication(ApplicationClientProtocolPBServiceImpl.java:277( at org.apache.hadoop.yarn.proto.ApplicationClientProtocol$ApplicationClientProtocolService$2.callBlockingMethod(ApplicationClientProtocol.java:563( at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:524( at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1025( at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:876( at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:822( at java.security.AccessController.doPrivileged(Native Method( at javax.security.auth.Subject.doAs(Subject.java:422( at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730( at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2682(
是什么导致了此错误,我该如何解决?
问题是用户和组并不存在于群集的所有计算机上。确保所有计算机上都存在用户和组。