1、背景:
进入spark集群,cd/spark,执bin/spark-sql,报错
image.png
2、解决方法
2.1、是hive元数据的问题,进入spark/conf/hive-site.xml,找到mysql的配置信息
2.2、进入mysql,切换到hive所使用的DB
2.3、 select * from VERSION;
image.png
2.4、保留第一条记录,其他记录全部删除
delete from VERSION where VER_ID != 1;
3、问题原因
异常是因为在启动hive命令时会检查hive源数据中有一张VERSION表,如果元数据版本信息获取不到(原因可能是元数据库异常||网络异常||短期内作业量较多操作都会造成查询不到版本信息),这种情况下会判断hive.metastore.schema.verification属性是true还是false,为true时直接抛出MetaException,为false时打出warn警告然后插入一条version数据(这种情况下会造成多条version记录后面的作业会受影响)
4、彻底解决
4.1、hive安装好后将hive-site.xml中hive.metastore.schema.verification设置为true,version获取不到时报出异常,不去插入version信息,这样本作业执行失败不会影响下游作业;
4.2开启metastore服务,hive统一连接metastore,由守护进程启动metastore,避免大量hive脚本初始化元数据信息时获取不到版本信息;
4.3、优化hive元数据库;