11.2.2 配置MySQL存储Hive元数据

Hive提供了多种RDBMS来存储Hive的元数据,包括Derby、MySQL等。相信有很多用户对MySQL还是比较熟悉的。因此,本节我们将Hive默认的元数据存储容器由Derby修改为MySQL。该过程包括两个步骤:Hive的配置及MySQL的配置。下面介绍具体操作。

(1)Hive的配置

首先需要对Hive的配置文档进行修改,即$HIVE_HOME/conf/hive-site.xml。与Derby类似,首先需要对连接字符串、驱动、数据库用户名及密码参数进行配置,如下所示:


<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>

……

<configuration>

<property>

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

<value>true</value>

</property>

<property>

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

<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=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>hive</value>

</property>

<property>

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

<value>hive</value>

</property>

……

</configuration>


另外,需要下载MySQL的JDBC驱动包,这里使用的是“mysql-connector-java-5.1.11-bin.jar”,将其复制到$HIVE_HOME/lib目录下即可。

(2)MySQL的配置

首先需要安装MySQL,使用如下命令:


sudo apt-get install mysql-server


执行该命令将自动下载并安装MySQL[1]。此外,还可以下载MySQL安装包进行安装,此部分内容不是本书的重点,大家可以自行查阅相关资料。

MySQL安装完成后,只拥有root用户。下面我们创建Hive系统的用户权限,步骤如下所示:


//1.创建用户

CREATE USER'hive'@'%'IDENTIFIED BY'hive';

//2.赋予权限

GRANT ALL PRIVILEGES ON.TO'hive'@'%'WITH GRANT OPTION;

//3.强制写出

flush privileges;


此外,为了使远程用户可以访问MySQL,需要修改“/etc/mysql/my.cnf”文件,将bind-address一行注释掉,该参数绑定本地用户访问。

如下所示:


Instead of skip-networking the default is now to listen only on

localhost which is more compatible and is not less secure.

bind-address=127.0.0.1


配置完成后,使用如下命令重启MySQL数据库:


sudo/etc/ini.d/mysql restart


上述配置完成后便可以像之前一样运行Hive了。

[1]在不同版本的Linux中该命令有一定的区别,要视具体的Linux版本而定。