日期:2014-05-16  浏览次数:20681 次

使用MYSQL作为HIVE的METASTORE

?

先确保你已经成功安装了HIVE和MYSQL

在hive-site.xml中添加如下内容,指定METASTORE的地址以及连接方式,hive和mysql的安装不再赘述。

一、在mysql中创建好需要使用的用户比如hadoop

mysql> CREATE USER 'hadoop'@'localhost' IDENTIFIEDBY 'hadoop';

? ? ? ?如果是远程需要把localhost设置为远程的IP或者是%,%意味着在所有机器上可以访问。

二、对该用户赋相应的权限,如:

写道

GRANT ALL PRIVILEGES ON *.* TO'hadoop'@'localhost' WITH

?

? ?在远程机器访问则设置为

?GRANT ALL PRIVILEGES ON *.* TO'hadoop'@'%' WITH

? ?如果考虑到安全策略需要设为为:

? ? GRANT ALL PRIVILEGES ON *.* TO'hadoop'@'10.6.42.101' WITH

? ? 10.6.42.101为需要登录的机器IP。

三、关闭防火墙

? ? linux下使用root用户

? ??$ sudo ufw disable

?

? window下,到我的面板中把防火墙关闭。

四、修改修改配置文件hive-default.xml

? ?<property>

          <name>hive.metastore.local</name>
          <value>true</value>
</property>

<property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>
           jdbc:mysql://localhost:3306/hivecreate?DatabaseIfNotExist=true
          </value>
</property>
<property>
          <name>javax.jdo.option.ConnectionDriverName</name>
          <value>com.mysql.jdbc.Driver</value>
</property>
<property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>Username</value><!--刚才建的mysql中的用户名-->
</property>
<property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>UserPassword</value><!--对应的DB用户密码-->
</property>

????如果mysql和hive不是一台机器,需要修改localhost为安装mysql的IP地址.需要说明是mysql上的database,hivecreate本应该是不需要建立的,但是我在实际安装时,如果没有现在mysql中建,会连接不上。因此可能需要在mysql中事先建database

??mysql>create database hivecreate;

五、下载mysql jdbc driver,将其拷贝至hive安装目录lib文件夹下

六、测试hive

? ?在hive命令下,show tables;

? ?如果执行成功就说明已经成功了。就可以登录mysql,查看hive数据库中的元数据信息