hive升级测试记录
2015-09-24 16:10
405 查看
一.hive升级记录
1.备份hive元数据库
mysqldump -uhive_T -p1234455 -h192.168.0.1 hive > hive-0.10.sql
2.将备份的hive数据库导入到一个新的数据库,用来做升级测试的库。
mysql -uhive_T -p1234455 -h192.168.0.1 --database hive_0_14_test < hive-0.10.sql
3.登录mysql,将hive0.14安装包中的scripts/metastore/upgrade/mysql 执行升级脚本。
use hive_0_14_test;
source $HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-0.10.0-to-0.11.0.mysql.sql;
source $HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-0.11.0-to-0.12.0.mysql.sql;
source $HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-0.12.0-to-0.13.0.mysql.sql;
source $HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-0.13.0-to-0.14.0.mysql.sql;
ps:(1).我是在本地mysql客户端远程连接执行的,需要将相关的脚本中的*.sql脚本中的路径指定到相关的实际路径,例如
将upgrade-0.11.0-to-0.12.0.mysql.sql脚本中的SOURCE 013-HIVE-3255.mysql.sql语句更改为实际的路径
source $HIVE_HOME/scripts/metastore/upgrade/mysql/013-HIVE-3255.mysql.sql
(2).在执行upgrade-0.13.0-to-0.14.0.mysql.sql时,需要将019-HIVE-7784.mysql.sql中的语句
CREATE INDEX PCS_STATS_IDX ON PART_COL_STATS (DB_NAME,TABLE_NAME,COLUMN_NAME,PARTITION_NAME) USING BTREE;
改为
CREATE INDEX PCS_STATS_IDX USING BTREE ON PART_COL_STATS (DB_NAME,TABLE_NAME,COLUMN_NAME,PARTITION_NAME) ;
这个我怀疑是mysql版本的问题
4.替换hive客户端为hive0.14版本,并修改相应的配置文件。
二.hive升级后测试记录
测试方法:找一个hive0.10的入口机和已经升级到0.14的入口机指向同一个升级后的元数据库。
测试内容:表的创建、删除、数据加载、表查询在这两个版本中的测试
1.表创建
create external table testhive (
id int,
name string
)
partitioned by (dt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
2.数据加载
alter table testhive add partition (dt='test') location '/tmp/testhive'
3.测试sql
select * from testhive;
select id,count(*) from testhive group by id;
4.表删除
drop table testhive;
测试结果:
以上测试在hive0.10以及hive0.14客户端连接同一个升级后的hive元数据库,在这连个版本中均可以成功运行,并且在一个版本中创建数据表后在另一个版本中也可以看到。
1.备份hive元数据库
mysqldump -uhive_T -p1234455 -h192.168.0.1 hive > hive-0.10.sql
2.将备份的hive数据库导入到一个新的数据库,用来做升级测试的库。
mysql -uhive_T -p1234455 -h192.168.0.1 --database hive_0_14_test < hive-0.10.sql
3.登录mysql,将hive0.14安装包中的scripts/metastore/upgrade/mysql 执行升级脚本。
use hive_0_14_test;
source $HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-0.10.0-to-0.11.0.mysql.sql;
source $HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-0.11.0-to-0.12.0.mysql.sql;
source $HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-0.12.0-to-0.13.0.mysql.sql;
source $HIVE_HOME/scripts/metastore/upgrade/mysql/upgrade-0.13.0-to-0.14.0.mysql.sql;
ps:(1).我是在本地mysql客户端远程连接执行的,需要将相关的脚本中的*.sql脚本中的路径指定到相关的实际路径,例如
将upgrade-0.11.0-to-0.12.0.mysql.sql脚本中的SOURCE 013-HIVE-3255.mysql.sql语句更改为实际的路径
source $HIVE_HOME/scripts/metastore/upgrade/mysql/013-HIVE-3255.mysql.sql
(2).在执行upgrade-0.13.0-to-0.14.0.mysql.sql时,需要将019-HIVE-7784.mysql.sql中的语句
CREATE INDEX PCS_STATS_IDX ON PART_COL_STATS (DB_NAME,TABLE_NAME,COLUMN_NAME,PARTITION_NAME) USING BTREE;
改为
CREATE INDEX PCS_STATS_IDX USING BTREE ON PART_COL_STATS (DB_NAME,TABLE_NAME,COLUMN_NAME,PARTITION_NAME) ;
这个我怀疑是mysql版本的问题
4.替换hive客户端为hive0.14版本,并修改相应的配置文件。
二.hive升级后测试记录
测试方法:找一个hive0.10的入口机和已经升级到0.14的入口机指向同一个升级后的元数据库。
测试内容:表的创建、删除、数据加载、表查询在这两个版本中的测试
1.表创建
create external table testhive (
id int,
name string
)
partitioned by (dt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
2.数据加载
alter table testhive add partition (dt='test') location '/tmp/testhive'
3.测试sql
select * from testhive;
select id,count(*) from testhive group by id;
4.表删除
drop table testhive;
测试结果:
以上测试在hive0.10以及hive0.14客户端连接同一个升级后的hive元数据库,在这连个版本中均可以成功运行,并且在一个版本中创建数据表后在另一个版本中也可以看到。
相关文章推荐
- jz2440的中断处理流程
- 这些基础却重要的面向对象概念,你还记得多少
- EIRGP配置实验
- Eclipse+NDK+adt+cdt开发环境问题解决
- 浅谈Android中的“Context”以及“上下文”和“环境”的思考
- C++ atof函数
- ListView如何实现单选,默认选中一条。
- 适配ios6,ios7等注意问题
- mac下安装 Lua
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- 模式匹配
- poj_3250 单调栈
- java 使用simpleDateFormat格式化日期 时间
- ExpandEnvironmentStrings函数的第二个参数的使用要注意
- 自定义添加View
- shell的本地变量和环境变量
- C# 将PPT文件转换成PDF文件
- oracle表空间操作
- java获得一个目录下的所有文件,和固定后缀的文件
- Do you know the longest English word?