- Hive 官网地址:http://hive.apache.org
- 文档查看地址:https://cwiki.apache.org/confluence/display/Hive/GettingStarted
- 下载地址:http://archive.apache.org/dist/hive
- github 地址:https://github.com/apache/hive
- 把 apache-hive-3.1.2-bin.tar.gz 上传到 linux 的/opt/software 目录下
- 解压 apache-hive-3.1.2-bin.tar.gz 到/opt/module/目录下面
tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
- 修改 apache-hive-3.1.2-bin.tar.gz 的名称为 hive-3.1.2
mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive-3.1.2
- 修改/etc/profile.d/my_env.sh,添加环境变量
sudo vim /etc/profile.d/my_env.sh
- 添加内容
#HIVE_HOME export HIVE_HOME=/opt/module/hive-3.1.2 export PATH=$PATH:$HIVE_HOME/bin
- 解决日志 Jar 包冲突
mv $HIVE_HOME/lib/log4j-slf4j-impl2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak
- 初始化元数据库
bin/schematool -dbType derby -initSchema
- 启动 Hive
bin/hive
- 使用 Hive
hive> show databases; hive> show tables;
由于 Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与其他客户端共享数据,所以我们需要将 Hive 的元数据地址改为 MySQL
2. Hive 元数据配置到 MySQ 2.1 拷贝驱动将 MySQL 的 JDBC 驱动拷贝到 Hive 的 lib 目录下
cp /opt/software/mysql-connector-java5.1.37.jar $HIVE_HOME/lib2.2 配置 metastore 到 MySQL
- 在$HIVE_HOME/conf目录下新建hive-site.xml 文件
vim $HIVE_HOME/conf/hive-site.xml
添加如下内容:javax.jdo.option.ConnectionURL jdbc:mysql://hadoop102:3306/metastore?useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 000000 hive.metastore.schema.verification false hive.metastore.event.db.notification.api.auth false hive.metastore.warehouse.dir /user/hive/warehouse - 登陆 MySQL
mysql -uroot -p000000
- 新建 Hive 元数据库
mysql> create database metastore; mysql> quit;
- 初始化 Hive 元数据库
schematool -initSchema -dbType mysql -verbose
- 在 hive-site.xml 文件中添加如下配置信息
hive.metastore.uris thrift://hadoop102:9083 - 启动 metastore
hive --service metastore
- 启动hive
bin/hive
- 作用:
- 客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。
-
在 hive-site.xml 文件中添加如下配置信息
hive.server2.thrift.bind.host hadoop102 hive.server2.thrift.port 10000 -
启动 hiveserver2
bin/hive --service hiveserver2
-
启动 beeline 客户端
bin/beeline -u jdbc:hive2://hadoop102:10000 -n codecat
-
DataGrip 通过jdbc 连接 hive
Hive 的 log 默认存放在/tmp/codecat/hive.log 目录下(当前用户名下),修改 hive 的 log 存放日志到/opt/module/hive/logs
- 修改/opt/module/hive-3.1.2/conf/hive-log4j2.properties.template 文件名称为hive-log4j2.properties
mv hive-log4j2.properties.template hivelog4j2.properties
- 在 hive-log4j2.properties 文件中修改 log 存放位置,默认位置/tmp/${user.name}
#property.hive.log.dir=${sys:java.io.tmpdir}/${sys:user.name} property.hive.log.dir=/opt/module/hive-3.1.2/logs
在 hive-site.xml 中加入如下两个配置
hive.cli.print.header true hive.cli.print.current.db true



