hive集成MySql数据库

前提假设本地已经安装好,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表的数据,如图:

 

 [aaaa]

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

           参考资料:http://blog.csdn.net/lengzijian/article/details/7045538

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值