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
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
相关文章推荐
- spark-sql 集成 hive
- 使用mysql数据库作为Hive的元数据库
- HIVE/HBase集成的一个bug
- Server-U FTP与Mysql数据库集成
- SaprkSql 集成 hive (spark2.0+hive1.22 )
- Hive与HBase集成
- hue与hive集成
- Hive汇总统计数据自动化传输到Mysql数据库
- CentO S下 安装hive 并与本地 mysql 集成
- Spark 2.2.1 集成Hive数据仓库的案例与解读
- hue3.9 集成 hive1.1.0
- Hive学习总结之五:HBase和Hive的集成
- hive与hbase的集成
- spark与hive的集成
- Hive 远程连接 MySQL数据库遇到的问题
- Hive安装 使用主机(win7)上的mysql数据库
- Ubuntu下Hive配置(MySQL数据库的安装方式)
- hive 集成 hbase NoClassDefFoundError: org/apache/htrace/Trace
- 用HiveDB横向切分MySQL数据库
- Hive集成Mysql作为元数据