操作系统:CentOS 7
Hive版本:2.3.6
JDK版本:1.8
Mysql版本:5.7
Hadoop版本:2.7.7
安装前准备
确保JDK 正常安装
yum install java-1.8.0-openjdk
创建hive数据库并为其授权
在msyql数据库中创建hive的元数据库
create database hive;
grant all on hive.* to root@'%' identified by 'xxx';
grant all on hive.* to root@'localhost' identified by 'xxx';
flush privileges;
下载
cd /root/Downloads
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz
解压
tar -zxvf apache-hive-2.3.6-bin.tar.gz
移动到安装目录
mv apache-hive-2.3.6 /usr/local/hive
cd /usr/local/hive
修改配置文件
cd conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
修改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>
<!-- ########################### hive的 JDBC连接 ############################ -->
<!-- mysql 连接用户名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- mysql 连接密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>xxx</value>
</property>
<!-- mysql 连接URL 如果hive和mysql在同一服务器上,使用localhost -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive</value>
</property>
<!-- mysql 连接驱动 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
</configuration>
修改hive-env.sh
#Java路径
export JAVA_HOME=/usr/local/jdk1.7.0_80
#Hadoop安装路径
export HADOOP_HOME=/usr/local/hadoop
#Hive安装路径
export HIVE_HOME=/usr/local/hive
#Hive配置文件路径
export HIVE_CONF_DIR=/usr/local/hive/conf
添加mysql驱动包
如果本机有mysql的驱动jar包,就直接拷贝到hive的安装目下的lib目录。
如果没有,从网上下载一个驱动jar包。https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.47
配置hive环境变量
vim /etc/profile
末尾添加如下内容:
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
使环境变量生效:
source /etc/profile
初始化元数据库
schematool -dbType mysql -initSchema
启动hive
直接使用hive命令就可以启动。
测试
本机准备一个数据文件/root/Downloads/student.txt,数据内容:
95002,刘晨,女,19,IS
95017,王风娟,女,18,IS
95018,王一,女,19,IS
95013,冯伟,男,21,CS
95014,王小丽,女,19,CS
95019,邢小丽,女,19,IS
95020,赵钱,男,21,IS
95003,王敏,女,22,MA
95004,张立,男,19,IS
95012,孙花,女,20,CS
95010,孔小涛,男,19,CS
95005,刘刚,男,18,MA
95006,孙庆,男,23,CS
95007,易思玲,女,19,MA
95008,李娜,女,18,CS
95021,周二,男,17,MA
95022,郑明,男,20,MA
95001,李勇,男,20,CS
95011,包小柏,男,18,MA
95009,梦圆圆,女,18,MA
95015,王君,男,18,MA
创建测试数据库
hive (default)> create database test;
使用新的数据库
hive (default)> use test;
创建student表
hive (test)> create table student(id int, name string, sex string, age int, department string) row format delimited fields terminated by ",";
往表中加载数据
hive (test)> load data local inpath "/root/Downloads/student.txt" into table student;
查询数据
hive (test)> select * from student;
OK
student.id student.name student.sex student.age student.department
95002 刘晨 女 19 IS
95017 王风娟 女 18 IS
95018 王一 女 19 IS
95013 冯伟 男 21 CS
95014 王小丽 女 19 CS
95019 邢小丽 女 19 IS
95020 赵钱 男 21 IS
95003 王敏 女 22 MA
95004 张立 男 19 IS
95012 孙花 女 20 CS
95010 孔小涛 男 19 CS
95005 刘刚 男 18 MA
95006 孙庆 男 23 CS
95007 易思玲 女 19 MA
95008 李娜 女 18 CS
95021 周二 男 17 MA
95022 郑明 男 20 MA
95001 李勇 男 20 CS
95011 包小柏 男 18 MA
95009 梦圆圆 女 18 MA
95015 王君 男 18 MA
Time taken: 5.867 seconds, Fetched: 21 row(s)