首页 > 解决方案 > 如何通过ambari将组路由到特定的纱线队列?

问题描述

我可以使用 ambari 成功地将用户路由到特定队列。我用于用户的语法是:

u:hive:prod

但是,我无法为一个团队做这件事。

我用于组的语法是:

g:datascience:dev

在边缘节点上,我有一个名为datascience包含用户的组scientist

$ groups scientist
scientist : scientist datascience

当我向该用户发送直线命令时(例如insert into default.routingtest values (0, "test")),我收到以下错误消息:

信息:由于 org.apache.hadoop.yarn.exceptions.YarnException 导致 Dag 提交失败:用户科学家提交的应用程序 application_1592385599162_0001 失败原因:在 org.apache.hadoop.yarn.server.resourcemanager.placement 找不到用户科学家的组.UserGroupMappingPlacementRule.getPlacementForApp(UserGroupMappingPlacementRule.java:210) 在 org.apache.hadoop.yarn.server.resourcemanager.placement.PlacementManager.placeApplication(PlacementManager.java:67) 在 org.apache.hadoop.yarn.server.resourcemanager.RMAppManager .placeApplication(RMAppManager.java:791) 在 org.apache.hadoop.yarn.server.resourcemanager.RMAppManager.createAndPopulateNewRMApp(RMAppManager.java:368) 在 org.apache.hadoop.yarn.server.resourcemanager.RMAppManager.submitApplication(RMAppManager .java:320) 在 org.apache.hadoop.yarn.api.impl.pb.service.ApplicationClientProtocolPBServiceImpl.submitApplication(ApplicationClientProtocolPBServiceImpl.java: 277) 在 org.apache.hadoop.yarn.proto.ApplicationClientProtocol$ApplicationClientProtocolService$2.callBlockingMethod(ApplicationClientProtocol.java:563) 在 org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:524) 在org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1025) 在 org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:876) 在 org.apache.hadoop.ipc。 javax 的 java.security.AccessController.doPrivileged(Native Method) 的 Server$RpcCall.run(Server.java:822)。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.爪哇:2682)

是什么导致了这个错误,我该如何解决?

标签: hadoophadoop-yarn

解决方案


问题是用户和组不存在于集群的所有机器上。确保用户和组确实存在于所有机器上。


推荐阅读