在这篇文章中,我们会安装配置Hive,并且把Hive的元数据库配置在mysql上面。

Hive安装配置

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

下载&安装

1
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.4/apache-hive-2.3.4-bin.tar.gz

解压到/opt/module/目录

1
tar -zxvf tar -zxvf apache-hive-2.3.4-bin.tar.gz  -C ../module/hive-2.3.4

配置环境变量

1
vim /etc/profile

插入以下内容

1
2
3
##HIVE_HOME
export HIVE_HOME=/opt/module/hive-2.3.4
export PATH=$PATH:$HIVE_HOME/bin

刷新环境
1
source /etc/profile

配置Hive

切换到Hive/conf目录中

1
cp hive-env.sh.template hive-env.sh

在hive-env.sh文件中添加hadoop路径以及hive的conf路径
1
2
HADOOP_HOME=/opt/module/hadoop-2.7.7
export HIVE_CONF_DIR=/opt/module/hive-2.3.4

安装MySQL数据库

hive默认自带的derby数据库,但是在这种模式下,hive只能打开一个。所以我们把hive的元数据库搭建在MySQL上面

下载安装

解压mysql rpm-bundle tar包

1
2
mkdir mysql
tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar -C mysql

  • 开始安装mysq
    一定要按照下面的顺序来安装,否则会安装不成功:
    1
    2
    3
    4
    5
    rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

    配置

  • 启动mysql服务,并且设置为开机启动
    1
    2
    systemctl start mysqld
    systemctl enable mysqld
  • 查看root用户初始密码,并且登录MySQL
    1
    2
    grep password /var/log/mysqld.log
    mysql -uroot -p
  • 修改MySQL的密码长度以及安全性要求
    因为MySQL有长度以及安全性的要求,所以需要对此作出修改
    1
    2
    set global validate_password_policy=0; 
    set global validate_password_length=1;
  • 修改root密码
    1
    set password = password('123456');
  • 设置远程登录权限
    1
    2
    grant all privileges on *.* to 'root'@'%' identified by '12345678';
    flush privileges;
    到这里MySQL就配置完成了。

配置Hive的MySQL元数据库

在hive/conf目录中新增hive-site.xml文件并且插入以下内容

1
cp hive-default.xml.template hive-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop101:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>

下载mysql-connector-java

https://dev.mysql.com/downloads/connector/j/5.1.html 中下载mysql-connector-java,并且把该文件拉到../hive/lib目录中

初始化元数据库

1
schematool -dbType mysql -initSchema


在这里遇到一个比较坑的就是官方文档是在hive/bin目录执行上面的命令的,但我在执行这条命令之后就遇到这个报错:

卡了好久,切换到hive/conf目录再执行这条命令居然成功了- - ,不知道是不是一个bug

启动Hive

在启动hive之前需要先启动hadoop的dfs

启动dfs

切换到hadoop的sbin目录

1
./start-dfs.sh

启动Hive

1
hive


一个简单的测试:

1
show databases;

Hive 常见属性配置

Hive 数据仓库位置配置

  • Default 数据仓库的最原始位置是在 hdfs 上的:/user/hive/warehouse 路径下
  • 在仓库目录下,没有对默认的数据库 default 创建文件夹。如果某张表属于 default数据库,直接在数据仓库目录下创建一个文件夹。
  • 修改 default 数据仓库原始位置(将 hive-default.xml.template 如下配置信息拷贝到hive-site.xml 文件中)
    1
    2
    3
    4
    5
    <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
    </property>

查询后信息显示配置

在 hive-site.xml 文件中添加如下配置信息,就可以实现显示当前数据库,以及查询表的头信息配置。

1
2
3
4
5
6
7
8
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>

重新启动 hive,对比配置前后差异

  • 配置前:

  • 配置后:

Hive 运行日志信息配置

Hive 的 log 默认存放在/tmp/atguigu/hive.log 目录下(当前用户名下)
修改 hive 的 log 存放日志到/opt/module/hive/logs

  • 修改/opt/module/hive/conf/hive-log4j.properties.template 文件名称为hive-log4j.properties
  • 在 hive-log4j.properties 文件中修改 log 存放位置
    1
    hive.log.dir=/opt/module/hive/logs

到这里,Hive的安装配置就完成啦!