我正在检查我的名称节点的日志,我发现了这个:
2016-06-04 03:09:28,843 INFO BlockStateChange (BlockManager.java:computeReplicationWorkForBlocks(1527)) - BLOCK* neededReplications = 0, pendingReplications = 0.
2016-06-04 03:09:28,960 WARN security.UserGroupInformation (UserGroupInformation.java:getGroupNames(1521)) - No groups available for user anonymous
... (x8)
2016-06-04 03:09:29,119 WARN security.UserGroupInformation (UserGroupInformation.java:getGroupNames(1521)) - No groups available for user anonymous
2016-06-04 03:09:29,945 INFO hdfs.StateChange (FSNamesystem.java:completeFile(3503)) - DIR* completeFile: /spark-history/.abde470b-daaa-4dc7-9097-35d778fe3a5a is closed by DFSClient_NONMAPREDUCE_1292395454_1
在这个时刻,群集上没有任何处理,没有人正在处理它。此警告随机出现在日志中。
经过进一步调查,没有用户匿名创建,我一无所知......
你有什么想法可以看吗?这个用户“匿名”是什么?感谢。
答案 0 :(得分:2)
此警告通常表示您的用户未在主机操作系统中为Hadoop集群中的所有节点定义/可见。 Hadoop代码通过查询底层操作系统来确定用户的组成员资格集。如果用户在操作系统层未知,则Hadoop会看到一组空的组成员身份并记录此警告。
典型的解决方法是确保在群集中的所有节点上定义用户,例如通过运行useradd。对于大型生产集群,与集中式LDAP服务器集成显然使其更易于管理。
或者,您可以选择忽略该警告。如果您的应用程序不依赖于任何组的成员资格(例如授予组访问权限的HDFS文件权限),那么您的用例可能是可接受的。
您可以在hdfs-site.xml
有关详细信息,请参阅HDFS permission guide