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版本而定。