Hive1.2升级到Hive2.3的方法以及相关报错整理

本文详细记录了从Hive1.2.1版本升级至Hive2.3.1版本的全过程,包括配置文件迁移、常见错误排查与解决方法,特别是元数据不匹配的问题及终极解决方案。

实验环境

Ubuntu16.04;
Hive1.2.1(旧);
Hive2.3.1(新);

实际操作

按照之前安装hive1.2的方法,将相关配置文件复制过来,不在赘述。
需要具体步骤的,可以在文章末尾的公众号上回复[hive安装]获得完整版的安装文件以及hive教程。

将hive2.3重新安装一遍就完事了吗?当然不是。
我们发现,安装完启动 hive 命令后,出现如下报错:

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

根据此报错查找,网上所罗列的教程都是进入到 $HIVE_HOME/scripts/metastore/upgrade/mysql目录下启动 mysql 进行升级。

此类解决方案参考文档:

  1. 升级Hive,从1.2.2升级到2.3.6
  2. hive 1.2.1 升级到hive2.3.6

若通过上述 1 2可以解决报错是最好的,如若不然,请看下面终极方案。

终极方案–肯定成功

  1. 命令行执行hive --service metastore判断元数据是否匹配,笔者出现如下报错。
Exception in thread "main" MetaException(message:Hive Schema version 2.3.0 does not match metastore's schema version 1.2.0 Metastore is not upgraded or corrupt)
	at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:83)
	at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:92)
	at org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6883)
	at org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6878)
  1. 进入$HIVE_HOME/scripts/metastore/upgrade/mysql/目录下,手动创建表格,及metastore.
cd $HIVE_HOME/scripts/metastore/upgrade/mysql/ 

< Login into MySQL > 

mysql> drop database IF EXISTS <metastore db name>; 
mysql> create database <metastore db name>; 
mysql> use <metastore db name>; 
mysql> source hive-schema-2.x.x.mysql.sql; 
  1. 再次执行 hive --service metastore
    此时,是不是很酷呢?

**注意:**最后的方法会使得老版本里的元数据丢失。
参考文档–stackoverflow

谈风月之余谈技术
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值