Metastore启动故障,报user hive does not belong to hive

举报
yd_225577686 发表于 2022/12/27 14:12:34 2022/12/27
【摘要】 适用版本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恢复正常。

现象

  1. 确认Manager页面是否能够登录,如不能直接跳到最后一步。
  2. 登录后,查看ldapserver实例是否停止,如果停止,则重新拉起,观察是否恢复正常。如不是,则下一步。
  3. 观察实例是否异常或服务不用,如果是,则跳到最后一步,不是,则下一步。
  4. 删除ldap目录下所有文件:rm -f ${BIGDATA_DATA_HOME}/ldapData/ldapserver/data/ *
  5. 拷贝配置文件:


    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/ 。等待十分钟,观察是否恢复,如还是不能,则下一步。


  6. 搜集oldap和cldap的日志,联系华为技术支持。

现象

  1. 查看/var/log/Bigdata/ldapclient/ldapclient_install.log,确认ldapclient是否安装成功。
  2. 排查是否安装成功,如果安装失败,按添加节点操作重新添加,安装成功则下一步。


    suse系统安装成功标志:

    RedHat/CentOS/欧拉系统安装成功标志:


  3. 排查/tmp和/var目录挂载磁盘是否空间不足(没有挂载则排查根目录),如果空间不足,则清理磁盘,等待十分钟,观察服务是否正常,如不是则下一步。



  4. 排查/etc/nsswitch.conf配置文件权限和配置内容是否正确,权限是否为644,如不是修改权限,如果内容配置错误,将正常节点上的相对应配置文件拷贝过来,观察服务是否恢复正常,不是则下一步。正确的配置内容如下:


    suse系统正确配置:

    RedHat/CentOS/欧拉系统正确配置:


  5. 排查nscd/sssd服务是否正常,按如下步骤修复服务:


    RedHat/CentOS/欧拉系统:

    1. 用root用户rm –rf /var/lib/sss/db/cache_xxx.ldb(xxx根据具体情况确定)。
    2. ps –ef|grep sssd查看sssd服务,获取pid。
    3. kill -9 pid,手动停止sssd服务。
    4. 等待几分钟,等待服务自动拉起,如果无法拉起,则下一步,如果能拉起,跳过第(5)步。
    5. 查询不到pid,但是无法启动,可以删除/var/run/sssd.pid文件,等待自动拉起。
    6. 执行/usr/sbin/sss_cache –G
    7. 执行/usr/sbin/sss_cache –U

    suse系统:

    1. ps –ef|grep nscd查看nscd服务,获取pid
    2. kill -9 pid,手动停止nscd服务
    3. 执行service nscd start,重启服务
    4. nscd –i passwd,清理用户缓存
    5. nscd –i group,清理用户组缓存


现象三

  1. 显示用户组异常,在正常的节点,用id -G 用户名,查询用户名所属用户组的GID,然后在异常节点上/etc/group文件中是否存在相同GID的用户组,如果存在相同的GID用户组,修改本地用户组GID。
  2. 用户组显示异常场景模拟:


    1. 查询hive_test所属用户组和用户组ID。

    1. 在/etc/group文件中修改某个用户组的gid和hive_test的gid相同。


    1. 再次查询。

    1. 修改回来后,再次查询。


  3. 排查/etc/passwd文件,是否存在相同用户名的用户,如果存在,建议修改本地用户的用户名。
  4. 用户显示异常场景模拟:


    1. 查询hive_test。

    2. 修改/etc/passwd文件。

    3. 再次查询。

    4. 修改回来后,查询正常。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。