突然想起来之前写过一篇关于将hive元数据库从默认的本地derby更改为绑定到远程mysql的文章,在云笔记里面翻了一下发现还真在,现在分享给各位~~
环境:
操作系统:Centos6.5 mysql:5.6 hive:0.13.1 hadoop:1.2.1
一、配置mysql
1. 安装mysql(参照《centos mysql安装与配置(非默认安装)》)
2. mysql中创建hive元数据库,名为hive mysql>create database hive;
3. 对Hadoopuser授权<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPgoKPHA+16LS4qOstMu0prXEw9zC67HY0Ou6zWhpdmUtc2l0ZS54bWwg1tBqYXZheC5qZG8ub3B0aW9uLkNvbm5lY3Rpb25QYXNzd29yZLXEw9zC69K71sI8L3A+CjxwPjxpbWcgc3JjPQ=="https://www.cppentry.com/upload_files/article/57/1_yh4zi__.png" alt="\"> 二、安装配置hive
1. 安装hive

重命名为hive

2. 配置hive
配置hive环境变量:
#vim /etc/profile

修改并保存完后记得source一下
#source /etc/profile
复制一份hive-env.sh.template 模板重命名为hive-env.sh,并修改内容:
#cp hive-env.sh.template hive-env.sh
#vim hive-env.sh

修改hadoop_home为hadoop安装路径
复制一份hive-default.xml.template重命名为hive-site.xml
#cp hive-default.xml.template hive-site.xml
#vim hive-site.xml

更改hive-site.xml中以下内容:


注意:
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore
标红位置是使用的mysql数据库名字,所以一定要赋予mysql用户对hive的全部权限。

这里是配置登录到mysql的用户名和密码,是之前在mysql中设置好并赋予了足够权限的。
添加hive安装目录下lib目录下缺少的mysql-connector-java-5.1.34.tar.gz 包。
下载地址:http://ftp.jaist.ac.jp/pub/mysql/Downloads/Connector-J/

(之前把该文件放入了sqoop目录下,所以直接从那儿进行copy)
切换进hvie目录,启动元数据服务进程
hive#./bin/hive --service metastore

新建一个连接或终端,进入hive:

成功!接下来就可以使用hive进行操作了。
关于
WARN conf.HiveConf: DEPRECATED: hive.metastore.ds.retry.* no longer has any effect. Use hive.hmshandler.retry.* instead
解决方法:
将hive下配置文件hive-site.xml中hive.metastore.ds.retry有关的配置替换为hive.hmshandler.retry


然后就不会有这个warning了。
??