• 【大数据技术】搭好的集群使用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

  • 相关阅读:
    C语言程序设计实验指针(一)
    什么是 java 序列化?什么情况下需要序列化?
    flutter项目常用组件
    MySQL入门第三天——数据表的约束
    问题越古老,解决方案存在的时间就越长
    IDEA 28 个天花板技巧 + 12 款神级插件,生产力起飞...
    基于java Swing编写扫雷游戏设计实现(已调试)
    N皇后-力扣
    jQuery的class操作/一些方法
    〖Python 数据库开发实战 - MySQL篇㉕〗- 数据更新操作 - UPDATE 语句
  • 原文地址:https://blog.csdn.net/u011762522/article/details/126552525