1.下载hive-1.2.1安装包 http://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
2.将安装包传到集群所有节点上
3.所有节点root用户下
cd /opt/cloudera/parcels/CDH/lib/hive
mkdir lib121
4.所有节点解压 apache-hive-1.2.1-bin.tar.gz
5.所有节点将解压出来hive/lib下所有文件拷贝到lib121
6.Coudera 界面停止Hive服务,如果安装了Hue,Ozzie,Impala先停掉再停掉Hive
6.所有节点修改HIVE_LIB变量 HIVE_LIB= H I V E H O M E / l i b = = > H I V E L I B = {HIVE_HOME}/lib ==> HIVE_LIB= HIVEHOME/lib==>HIVELIB={HIVE_HOME}/lib121
vim /opt/cloudera/parcels/CDH/lib/hive/bin/hive
7.所有节点更新hadoop上jline jar包,并删除老的jlien jar包
ln -s /opt/cloudera/parcels/CDH/lib/hive/lib121/jline-2.12.jar /opt/cloudera/parcels/CDH/lib/hadoop-yarn/lib/jline-2.12.jar
rm -rf /opt/cloudera/parcels/CDH/lib/hadoop-yarn/lib/jline-0.94.jar
8.元数据节点备份MySQL中hive元数据库
mysqldump -uroot -hnode101 -p000000 hive > hive110.sql
9.元数据节点进入mysql
create database hive110 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all privileges on *.* to 'root'@'hserver' identified by 'admin123' with grant option;
flush privileges;
use hive110;
source hive110.sql;
10.元数据节点升级Hive元数据库
升级前查看升级脚本,评估影响,特别是生产环境,根据业务需求更改过元数据的,如果是接手别人的,那就比较苦逼了,每个元数据库表结构都要看一遍。
如果没有动过就直接升级就好
cd /home/dp/apache-hive-1.2.1-bin/scripts/metastore/upgrade/mysql
mysql -uroot -hnode101 -p000000
use hive;
source upgrade-0.13.0-to-0.14.0.mysql.sql;
source upgrade-0.14.0-to-1.1.0.mysql.sql;
source upgrade-1.1.0-to-1.2.0.mysql.sql;
exit;
升级的时候,可能无法打开此脚本,只需将 上述脚本复制到root根目录即可!
错误如下:--------------------------》
一定要升级!!!
升级如下:
11.cloudera 管理界面启动Hive服务
12.任意节点
hive #进入前hive shell界面
如果不进行升级,hive启动时日志可能会报如下错误:
show databases;
use testupdate;
show tables;
select * from test1; #查看是否原来的数据还在
insert into test1 values("AAAA","BBBB","CCCC");
select * from test1;
#hive支持行级操作了!
亲测,bug已经排除完!!!