hive mysql 集成_hive集成MySql数据库

前提假设本地已经安装好,hadoop、hive、MySql。目前hadoop、hive我是安装在本地机器的Linux虚拟机上。MySql安装在本地机器上(win7)。

1、在Hive的conf目录下的文件“hive-site.xml”中增加如下配置:

hive.metastore.local

true

javax.jdo.option.ConnectionURL

jdbc:mysql://数据库IP地址:3306/hive?characterEncoding=UTF-8

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName

数据库用户名

javax.jdo.option.ConnectionPassword

数据库密码

2、将mysql的驱动包(mysql-connector-java-5.1.28.jar)放在hive安装目录Lib下(/usr/local/soft/hive/hive-0.14.0/lib)

此时就应该配置好了。但是在运行期间可能会报错:Host '****' is not allowed to connect to this MySQL server

这个表示你的MySql帐号不允许从远程登陆,也就是不允许从虚拟机连接到MySql上。

解决方式:登录本地MySql数据库:其中有一个mysql的database(数据库默认的),先查看一下user表的数据,如图:

0818b9ca8b590ca3270a3433284dd417.png

在上图的Hosts列提示:只允许本地IP访问这个数据库

此时user表中增加一条数据即可,数据中的Host列是需要访问这个mysql的IP(即虚拟机的IP)。

增加数据后需要执行:flush privileges;(将一些Mysql配置重新加载到内存中,不用重新数据库了)即可。

sql如下:

insert into `User`

select '192.168.80.100',User,Password,Select_priv,Insert_priv,

Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,

Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv,

Show_db_priv,Super_priv,Create_tmp_table_priv,Lock_tables_priv,Execute_priv,

Repl_slave_priv,Repl_client_priv,Create_view_priv,Show_view_priv,

Create_routine_priv,Alter_routine_priv,Create_user_priv,Event_priv,

Trigger_priv,Create_tablespace_priv,ssl_type,ssl_cipher,x509_issuer,

x509_subject,max_questions,max_updates,max_connections,

max_user_connections,plugin,authentication_string,password_expired

from user where host='localhost'

3、安装好了,测试是否成功

1) 在hive命令行创建一个表 create table hive_mysql (id int,name string);

2)在插入一些数据 insert into table hive_mysql values(1,'aaa');

3)此时会发现mysql的hive数据库中会增加一些表。如 表:columns_v2描述了一些 id 和name类型的一个表。

此时说明安装成功

如果在建表是出现:Specified key was too long; max key length is 767 bytes

执行 alter database hive character set latin1; 即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值