hive-3.1.2分布式搭建:
一、上传解压配置环境变量
在官网或者镜像站下载驱动包
华为云镜像站地址:
hive:Index of apache-local/hive/hive-3.1.2
mysql驱动包:Index of mysql-local/Downloads/Connector-J
# 1、解压
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/soft/# 2、重名名
mv apache-hive-3.1.2-bin hive-3.1.2# 3、配置环境变量
vim /etc/profile# 4、在最后增加配置
export HIVE_HOME=/usr/local/soft/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin# 5、使环境变量生效
source /etc/profile
二、修改配置文件
1、进入hive配置文件所在目录
cd /usr/local/soft/hive-3.1.2/conf
2.创建hive-site.xml配置文件
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<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://master:3306/hive?useSSL=false&createDatabaseIfNotExist=true&characterEncoding=utf8&useUnicode=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
<property>
<name>hive.querylog.location</name>
<value/>
</property>(同上)
<property>
<name>hive.exec.local.scratchdir</name>
<value/>
</property>(同上)
<property>
<name>hive.downloaded.resources.dir</name>
<value/>
</property>
</configuration><property>
<name>hive.txn.xlock.iow</name>
<value>true</value>
</property>
3.创建log4j.properties配置文件
vim log4j.properties
# 将日志级别改成WARN,避免执行sql出现很多日志
log4j.rootLogger=WARN,CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n%
三、上传mysql驱动
将mysql驱动包上传到hive的lib目录下
mysql-connector-java-8.0.29.jar
四、将hadoop的jline-0.9.94.jar的jar替换成hive的版本
cp /usr/local/soft/hive-3.1.2/lib/jline-2.12.jar /usr/local/soft/hadoop-3.1.1/share/hadoop/yarn/lib/
五、初始化hive元数据库
初始化hive的元数据(表结构)到mysql中:
schematool -dbType mysql -initSchema
六、启动hive元数据服务
后台启动元数据服务
nohup hive --service metastore &
Hive的三种交互方式:
1)第一种交互方式
shell交互Hive,用命令hive启动一个hive的shell命令行,在命令行中输入sql或者命令来和Hive交互
1.服务端启动metastore服务(后台启动):nohup hive --service metastore >/dev/null &
或nohup hive --service metastore &
2.进入命令:hive
3.退出命令行:quit; 或 ctrl+c
2)第二种交互方式
Hive启动为一个服务器,对外提供服务,其他机器可以通过客户端通过协议连接到服务器,来完成访问操作,这是生产环境用法最多的
1.服务端启动元数据服务:
nohup hive --service metastore &
2.服务端启动hiveserver2服务:
nohup hive --service metastore >/dev/null &
或 nohup hiveserver2 &3.需要稍等一下,启动服务需要时间:可以监控nohup.out文件查看是否启动完成
4.在客户端beeline1)先执行: beeline ,再执行: !connect jdbc:hive2://master:10000
2)或者直接执行: beeline -u jdbc:hive2://master:10000 -n root
退出命令行:!exit 或ctrl+c
3)第三种交互方式
不进入hive中,直接在linux中使用 –e 参数来直接执行hql的语句
举例1:bin/hive -e "show databases;"
使用 –f 参数通过指定文本文件来执行hql的语句(编写sql脚本执行)
hive -f hive.sql
sql文本文件:
vim hive.sql
create database bigdata29;
use bigdata29;create table test1
(
id bigint,
name string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
show tables;举例2:hive -f hive.sql