我们使用的是kerborized cdh集群。在向集群添加用户时,我们通常只将用户添加到网关/边缘节点,就像在任何hadoop发行版集群中一样。但是对于新添加的userid,我们无法执行map reduce/yarn作业并抛出“user not found”异常。
当我研究这个的时候,我发现了一个链接https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/securecontainer.html ,这意味着要在安全集群中执行yarn作业,我们可能需要在所有节点中都有相应的用户,因为安全容器在作业用户的凭据下执行。
因此,我们将相应的userid添加到所有节点中,然后执行作业。如果是这种情况,并且集群有大约100多个节点,那么为每个userid提供用户配置将成为一项乏味的工作。
如果你在项目实施中遇到同样的情况,有人能提出其他有效的方法吗?
1条答案
按热度按时间uidvcgyl1#
有几种方法按难度排序(从简单到痛苦)。
一种是拥有每个人都用来运行作业的job runner用户。
另一种方法是使用配置管理工具定期(1小时-1天)在集群上同步/etc/passwd和/etc/group(chef、puppet),或者使用cron作业来完成。
否则,您可以购买或使用开源linux/unix用户Map服务,如centrify(商业)、vas(商业)、freeipa(免费)或sssd(免费)。
如果有active directory服务器或ldap服务器,请使用hadoop ldap用户Map。
参考文献:
https://community.hortonworks.com/questions/57394/what-are-the-best-practises-for-unix-user-mapping.html
https://www.cloudera.com/documentation/enterprise/5-9-x/topics/cm_sg_ldap_grp_mappings.html