CDH-HIVE-METASTORE 升级的坑

环境:CDH5.7.0 版本+ centos 6.8   metastore 数据库为mysql 5.1.17

任务:升级 mysql 5.1.17 到mysql 5.7.9 

 

mysql 跨大版本升级,需先备份mysql 原来的数据文件,一般情况下  mysql 数据文件物理位置: /var/lib/mysql  

(或者查找  find /  -name   *.ibd) 就能找到路径

1:下载mysql 版本  mysql-5.7.9-1.el6.x86_64.rpm-bundle.tar  ,解压并把里面的rpm包 全部放入yum 源 rpm集中存放地

2:关闭CDH 集群(页面管理台), 在管理节点关闭scm服务,关闭mysql 服务

service cloudera-scm-server stop

service mysqld stop

3: 为稳妥,用rpm 卸载命令,将mysql5.1.17的包一个一个卸载    

rpm -e  --nodeps   xxxxxx(通过yum list |grep  mysql5.1.17 查看多少包)

4: 安装mysql5.7.9

 yum install mysql  mysql-*

5:启动mysql 到此位置启动CDH 将报错,hive连接数据库  某某表不存在

需执行操作 :mysql_upgrade  -uroot  -p  passwd

此时 再连hive 会报 NestedThrowablesStackTrace:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1

(更详细说明 http://www.th7.cn/db/mysql/201703/229084.shtml)     

6:下载 mysql-connector-java 5.1.46(高于mysql-connector-java 5.1.22的都可以)

解压缩 并提取 mysql-connector-java 5.1.46-bin.jar  到任意路径下  比如 /mnt/

执行: ln  -s   /mnt/mysql-connector-java 5.1.46-bin.jar   /usr/share/java/mysql-connector-java.jar

(提前删除  /user/share/java/ 中的mysql-connector-java 相关包和链接)

7:升级完毕 ,重启scm 服务,链接hive 回归正常

posted @ 2018-04-12 14:40  牛牛吃不饱  阅读(1302)  评论(0编辑  收藏  举报