1 安装Hive
下载文件
# wget -P /opt/ https://mirrors.huaweicloud.com/apache/hive/hive-2.3.8/apache-hive-2.3.8-bin.tar.gz
解压缩
# tar -zxvf /opt/apache-hive-2.3.8-bin.tar.gz -C /opt/
修改hive文件夹名字
# mv /opt/apache-hive-2.3.8-bin /opt/hive
配置环境变量
# vim /etc/profile
使环境变量立即生效
# source /etc/profile
2 配置Hive
1.配置hive-env.sh文件
复制模板
# cd /opt/hive/conf
# cp hive-env.sh.template hive-env.sh
编辑文件
# vim /opt/hive/conf/hive-env.sh
在首行添加如下内容
2.配置hive-site.xml文件
正常情况下,应该通过hive-default.xml.template模板文件生成hive-site.xml文件,但是模板文件内容过多,修改较为复杂,因此,可以直接通过命令创建一个空白的hive-site.xml文件,添加需要的配置内容。
创建空白的hive-site.xml文件
# vim /opt/hive/conf/hive-site.xml
直接输入”:set paste”,可以切换为粘贴模式,再按i进入编辑模式,然后单击右键可以把需要的内容粘贴到hive-site.xml文件中,需要特别注意:第一行的内容必须是“<?xml version="1.0"...”,并且前面不能有空行或空格:
需要粘贴的内容
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>root</value></property><property><name>hive.metastore.warehouse.dir</name><value>hdfs://master:8020/hive/warehouse</value></property><property><name>hive.exec.local.scratchdir</name><value>/opt/hive/exec</value></property><property><name>hive.downloaded.resources.dir</name><value>/hive/downloadedsource</value></property><property><name>hive.querylog.location</name><value>/hive/logs</value></property>
</configuration>
3.配置hive的日志目录
设置/opt/hive/log目录为hive的日志保存目录
拷贝文件
# cp /opt/hive/conf/hive-log4j2.properties.template
编辑文件
# vim /opt/hive/conf/hive-log4j2.properties
4.拷贝MySQL的jar包到hive的lib目录下
采用XFTP上传jar到 /opt/hive/lib目录下
5.解决SLF4J文件的重复问题
Hive和Hadoop都使用了SLF4J的jar包,但是版本不同,会造成冲突,可以直接删除hive中的jar包
# rm -f /opt/hive/lib/log4j-slf4j-impl-2.6.2.jar
6.配置MariaDB
进入数据库
# mysql -u root -p
创建数据库
create database hive;
配置权限
grant all on hive.* to root@’master’ identified by ‘hivepwd’; -- 此处的单引号需要修改
使配置生效
flush privileges;
退出MariaDB
exit
7.初始化hive的元数据库
在第一次使用hive之前,需要使用如下命令初始化hive的元数据库,该命令只能执行一次
schematool -dbType mysql -initSchema
3 使用Hive
可以使用命令hive启动hive,注意,Hive启动时会直接访问HDFS,Hive的一些操作会继续MapReduce实现,所以需要保证HDFS和yarn都处于正常的启动状态。
# hive
查询当前所有数据库
show databases;
测试Hive
create database testdb;
use testdb;
create table student(id int, name string);
insert into student values(1, ‘tom’);
select * from student;