Hive 配置元数据数据库 MySQL

Hive 默认使用 Derby 作为存储元数据存储,作为在测试环境中使用。

生产环境中,Hive 可以使用 MySQL、PostgreSQL 作为元数据存储。

创建用户

登录 MySQL

mysql -uroot -p  

创建 Hive 用户

CREATE USER 'hive' IDENTIFIED BY 'secret';  

用户授权

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';  
FLUSH PRIVILEGES;  

创建数据库

CREATE DATABASE hive;  

修改配置文件

重命名 conf/hive-default.xml.template 为 conf/hive-site.xml

编辑 conf/hive-site.xml 文件,修改以下数据库配置信息:

  • javax.jdo.option.ConnectionURL 数据库 URL
  • javax.jdo.option.ConnectionDriverName JDBC Driver
  • javax.jdo.option.ConnectionUserName 用户名
  • javax.jdo.option.ConnectionPassword 密码
<property>  
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://127.0.0.1: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>hive</value>
</property>  
<property>  
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>secret</value>
</property>  

下载 MySQL Driver

wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.39.tar.gz && tar -zxf mysql-connector-java-5.1.39.tar.gz  
cp mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar $HIVE_HOME/lib/  

初始化数据库

schematool -initSchema -dbType mysql