hive 是基于 hadoop 的一个数据仓库工具,毕竟我是做数仓这一行的,用 hive 用的还是蛮多的。jdk 和 haodop 在之前的文章 Hadoop安装指南 详细介绍过安装方法,这里就不赘述了。本文记录一下 hive 的安装,采用本地模式安装。
安装环境
ubuntu-20.04.3 LTS
jdk-1.8.0_321
hadoop-2.10.1
apache-hive-2.3.9
安装 hive
在 Apache Hive 官网 下载所需要版本的 hive 安装包,解压到 /usr/local
文件夹中,并在 ~/.bashrc
中设置环境变量。
1
2
3
4
# set hive home
export HIVE_HOME=/usr/local/apache-hive
export CLASSPATH=.:$HIVE_HOME/bin:$CLASSPATH
export PATH=$HIVE_HOME/bin:$PATH
设置 mysql 数据库
1
2
3
CREATE DATABASE hive2 DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON hive2.* TO 'hive'@'%';
修改 hive 配置文件
hive-env.sh
1
2
3
4
5
6
export JAVA_HOME=/usr/local/jdk1.8
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/apache-hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib
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
<configuration>
<property>
<name>system:user.name</name>
<value>hive</value>
</property>
<property>
<name>system:java.io.tmpdir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive2?serverTimezone=Asia/Shanghai</value>
<!-- <value>jdbc:mysql://localhost:3306/hive2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8</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 驱动
下载 mysql 对应的驱动包,放到 $HIVE_HOME/lib
目录中。
驱动下载:
https://dev.mysql.com/downloads/connector/j/
初始化源数据库
1
$HIVE_HOME/bin/schematool -initSchema -dbType mysql
修改编码防止乱码
1
2
3
4
5
6
7
8
9
10
11
12
13
-- utf8
-- utf8_unicode_ci
-- (1)修改表字段注解和表注解
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
-- (2)修改分区字段注解
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
-- (3)修改索引注解
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;