您的位置:首页 > 数据库 > MySQL

hive集成MySql数据库

2015-01-27 15:38 302 查看
前提假设本地已经安装好,hadoop、hive、MySql。目前hadoop、hive我是安装在本地机器的Linux虚拟机上。MySql安装在本地机器上(win7)。

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

<property>

<name>hive.metastore.local</name>

<value>true</value>

</property>

<property>

<name>javax.jdo.option.ConnectionURL</name>

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

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>数据库用户名</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>数据库密码</value>

</property>

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表的数据,如图:



在上图的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; 即可

参考资料:/article/1407287.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: