hive集成MySql数据库

来源:互联网 发布:淘宝7天下架什么意思 编辑:程序博客网 时间:2024/05/05 14:24

前提假设本地已经安装好,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 0