0%

hive-安装与配置

介绍hive的安装,使用 mysql 做 hive 的元数据库

准备

我的版本:

hadoop 2.7.7

hive 2.3.6

mysql 8.0.16

先装好mysql(做hive的元数据库) 和 hadoop

配置 Hive

修改 hive-env.sh

修改apache-hive-2.3.6-bin/conf下的hive-env.sh,加上hadoop路径

HADOOP_HOME=/usr/local/hadoop-2.7.7
export HIVE_CONF_DIR=/usr/local/apache-hive-2.3.6-bin/conf

创建 hive-site.xml

apache-hive-2.3.6-bin/conf下创建hive-site.xml

<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?useSSL=false</value>
<description>metadata is stored in a MySQL server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>MySQL JDBC driver class</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>user name for connecting to mysql server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>你的密码</value>
<description>password for connecting to mysql server</description>
</property>
</configuration>

添加 java连接 mysql 的jar包

apache-hive-2.3.6-bin/lib下添加 java 连接 mysql 的jar包(要对应mysql版本)。

我的是mysql-connector-java-8.0.15.jar

配置 mysql

配置远程登录权限(这个我没配,记着备用)

# 切换成mysql库
use mysql;
# 查询用户信息
select User,Host,authentication_string from user;
# 设置远程登录权限
grant all privileges on *.* to 'root'@'%' identified by 'xxxxxxxx' with grant option;
# 刷新配置信息
flush privileges;
# 退出
exit

建 metastore 表

表的名字与之前hive-site.xml中配置的目录名一样

<value>jdbc:mysql://localhost:3306/metastore?useSSL=false</value>
create database metastore

开始使用

初始化mysql元数据库(首次使用时)

bin/schematool -dbType mysql -initSchema

使用hive

➜  apache-hive-2.3.6-bin bin/hive
Logging initialized using configuration in file:/usr/local/apache-hive-2.3.6-bin/conf/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive >