Hive 数据仓库搭建

复制和安装 hive

  1. 将本地apache-hive-3.1.2-bin.tar.gzMySQL驱动压缩包复制进master容器中root目录中
1
2
docker cp /path/to/apache-hive-3.1.2-bin.tar.gz master:/root
docker cp /path/to/mysql-connector-java-5.1.27.zip master:/root
  1. hive解压进/opt/module目录下并且改名, 将jdbc压缩包解压到hive的lib目录下
1
tar zxvf /root/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
1
mv /opt/module/apache-hive-3.1.2-bin /opt/module/hive
1
2
unzip /root/mysql-connector-java-5.1.27.zip -d /opt/module/hive/lib
cp /opt/module/hive/lib/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/

配置 hive

  1. hive的配置文件都存放在${HIVE_HOME}/conf
1
cd /opt/module/hive/conf
  1. 配置文件模板复制成配置文件
1
cp hive-env.sh.template hive-env.sh
  1. 配置hive-env.sh
  • 添加hadoop目录hive配置文件目录的环境变量
1
2
export HADOOP_HOME=/opt/module/hadoop
export HIVE_CONF_DIR=/opt/module/hive/conf
  1. 创建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
23
24
25
26
27
28
29
30
<configuration>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>1234</value>
</property>
</configuration>
  • hive.cli.print.header:是否在 cli 输出中显示表的列名
  • hive.cli.print.current.db:是否在 cli 提示符中显示当前使用的数据库名称
  • javax.jdo.option.ConnectionURL:用于连接元数据数据库的 JDBC URL
  • javax.jdo.option.ConnectionDriverName:数据库连接的驱动名称
  • hive.metastore.warehouse.dir:hive 在 hdfs 的默认数据仓库目录
  • javax.jdo.option.ConnectionUserName:连接元数据数据库时使用的用户名
  • javax.jdo.option.ConnectionPassword:连接元数据数据库时使用的密码
  1. 删除旧版的guava.jar文件,从hadoop中复制新版的guava.jar,这样做为了防止两个版本之间发生冲突
1
2
rm -rf /opt/module/hive/lib/guava-19.0.jar
cp /opt/module/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/hive/lib/

初始化 hive

1
/opt/module/hive/bin/schematool -dbType mysql -initSchema

验证 hive

  1. 进入 Hive 命令行界面
1
/opt/module/hive/bin/hive
  1. 测试 Hive 是否正常工作
1
hive> show databases;
  1. 如果显示如下信息,则表示 Hive 配置成功:
1
2
3
OK
default
Time taken: 0.976 seconds, Fetched: 1 row(s)

参考文章

Hive 3.1.2 启动报错 guava 版本冲突问题解决
Hive详解(02) - Hive 3.1.2安装