• 【大数据技术】搭好的集群使用Spark-SQL连接Hive后,无法再次正常使用hive查询数据


    【大数据技术】搭好的集群使用Spark-SQL连接Hive后,无法再次正常启动hive并查询数据

    背景&现象

    以前一直正常使用的hadoop+hive集群,在使用spark-sql 连接hive后,hive可正常启动但无法正常查询数据
    在这里插入图片描述

    排查分析

    1、查看hadoop集群及hive进程是否正常

    此时,查看进程都是正常的,hadoop集群正常,hive进程也是正常的
    在这里插入图片描述

    2、分析报错信息,找出直接原因:hive metastore服务未能成功启动

    在这里插入图片描述
    “ SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient ”
    分析这个报错原因,知这是因为hive的metastore服务未能启动成功导致的,故新开一个terminal,尝试手动启动 ,启动命令“ ./bin/hive --service metastore & ”

    3、手动启动hive metastore服务失败,发现是VERSION表内容异常

    在这里插入图片描述
    发现“MetaException(message:Hive Schema version 2.3.0 does not match metastore’s schema version 1.2.0 Metastore is not upgraded or corrupt)” ,发现是schema版本不一致导致metastore 服务启动失败

    然后参阅网上的资料发现在hive的元数据里有一张表VERSION,其SCHEMA_VERSION值已经被修改为1.2.0 ,此内容与hive安装版本里的schema不一致,故启动是失败
    在这里插入图片描述

    4、修改元数据表VERSION

    此时因前面报错信息里说是2.3.0,所以将SCHEMA_VERSION更新成2.3.0,切勿随意填写或用hive的版本
    update VERSION set SCHEMA_VERSION = ‘2.3.0’ where VER_ID = 1 ;
    在这里插入图片描述

    5、重新启动hive ,故障排除

    hive可启动成功,并且成功读取到数据
    在这里插入图片描述

    总结

    这个集群之前只安装了hive,一直正常使用,近段时间按照部署里SparkSQL,并且使用sparkSQL连接了hive元数据,即在sparkSQL里读取hive表并跑任务,此时spark会修改元数据里VERSION 表的版本信息,再启动hive,就会启动metastore服务失败,即本文所述的问题。

    参考了:
    https://www.it610.com/article/1297546101867487232.htm
    https://blog.csdn.net/qq_39579408/article/details/86526757

  • 相关阅读:
    音频傅里叶变换(基于开源kissffs)
    【Day18】多态(理解与应用)
    【C++数据结构】B树概念及其实现(详解)
    自学网络安全的三个必经阶段(含路线图),小白必看
    【UiPath】解决办法:There are no Unattended runtimes configured on this machine.
    k8s-helm部署应用 19
    [论文阅读] 颜色迁移-N维pdf迁移
    玄子Share-服务器硬件及RAID配置实战
    从零开始使用webpack搭建一个react项目
    [附源码]计算机毕业设计springboot疫情管理系统
  • 原文地址:https://blog.csdn.net/u011762522/article/details/126552525