Metastore启动故障,报user hive does not belong to hive
【摘要】 适用版本6.5.x。问题现象重启Metastore成功,但是Metastore一直处于故障状态。原因分析查看Metastore运行日志,发现Metastore能够正常启动,日志一直在打印“can not create filepath: /user/hive/warehouseUser hive does not belong to hive”。caused by :MetaExceptio...
适用版本
6.5.x。
问题现象
重启Metastore成功,但是Metastore一直处于故障状态。
原因分析
- 查看Metastore运行日志,发现Metastore能够正常启动,日志一直在打印“can not create filepath: /user/hive/warehouseUser hive does not belong to hive”。
caused by :MetaException(message:Can not create filePath: /user/hive/warehouseUser hive does not belong to hive at org.apache.hadoop.hdfs.server.namenode.FSDirAttrOp.setOwner(FSDirAttrOp.java:89) at org.apache.hadoop.hdfs.server.namenode.FSNamesysytem.setOwner(FSNamesystem.java:1927) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.setOwner(NameNodeRpcServer.java:870)
- 此问题为主Namenode sssd服务异常,通过id -Gn hive命令查看会发现“no such user”。
解决方案
参考如下章节恢复sssd服务后,metastore恢复正常。
现象一
- 确认Manager页面是否能够登录,如不能直接跳到最后一步。
- 登录后,查看ldapserver实例是否停止,如果停止,则重新拉起,观察是否恢复正常。如不是,则下一步。
- 观察实例是否异常或服务不用,如果是,则跳到最后一步,不是,则下一步。
- 删除ldap目录下所有文件:rm -f ${BIGDATA_DATA_HOME}/ldapData/ldapserver/data/ *。
- 拷贝配置文件:
cp ${BIGDATA_HOME}/FusionInsight_BASE_6.5.0/install/FusionInsight-ldapserver-2.7.0/ldapserver/local/conf/DB_CONFIG ${BIGDATA_DATA_HOME}/ldapData/ldapserver/data/ 。等待十分钟,观察是否恢复,如还是不能,则下一步。
- 搜集oldap和cldap的日志,联系华为技术支持。
现象二
- 查看/var/log/Bigdata/ldapclient/ldapclient_install.log,确认ldapclient是否安装成功。
- 排查是否安装成功,如果安装失败,按添加节点操作重新添加,安装成功则下一步。
suse系统安装成功标志:
RedHat/CentOS/欧拉系统安装成功标志:
- 排查/tmp和/var目录挂载磁盘是否空间不足(没有挂载则排查根目录),如果空间不足,则清理磁盘,等待十分钟,观察服务是否正常,如不是则下一步。
- 排查/etc/nsswitch.conf配置文件权限和配置内容是否正确,权限是否为644,如不是修改权限,如果内容配置错误,将正常节点上的相对应配置文件拷贝过来,观察服务是否恢复正常,不是则下一步。正确的配置内容如下:
suse系统正确配置:
RedHat/CentOS/欧拉系统正确配置:
- 排查nscd/sssd服务是否正常,按如下步骤修复服务:
RedHat/CentOS/欧拉系统:
- 用root用户rm –rf /var/lib/sss/db/cache_xxx.ldb(xxx根据具体情况确定)。
- ps –ef|grep sssd查看sssd服务,获取pid。
- kill -9 pid,手动停止sssd服务。
- 等待几分钟,等待服务自动拉起,如果无法拉起,则下一步,如果能拉起,跳过第(5)步。
- 查询不到pid,但是无法启动,可以删除/var/run/sssd.pid文件,等待自动拉起。
- 执行/usr/sbin/sss_cache –G。
- 执行/usr/sbin/sss_cache –U。
suse系统:
- ps –ef|grep nscd查看nscd服务,获取pid
- kill -9 pid,手动停止nscd服务
- 执行service nscd start,重启服务
- nscd –i passwd,清理用户缓存
- nscd –i group,清理用户组缓存
现象三
- 显示用户组异常,在正常的节点,用id -G 用户名,查询用户名所属用户组的GID,然后在异常节点上/etc/group文件中是否存在相同GID的用户组,如果存在相同的GID用户组,修改本地用户组GID。
- 用户组显示异常场景模拟:
- 排查/etc/passwd文件,是否存在相同用户名的用户,如果存在,建议修改本地用户的用户名。
- 用户显示异常场景模拟:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)