前言
Hive一个执行在Hadoop集群之上的Sql引擎工具,它提供类似Sql的编写方式进行对Hadoop HDFS上的文件进行查询统计。接下来我们将安装配置Hive及简单使用
准备安装文件
以下为大家准备了安装文件,也可以自己到网上下载
准备文件 | 下载地址 |
---|---|
apache-hive-1.2.2-bin.tar | 链接: https://pan.baidu.com/s/1dlUjcLjemTcm7jnc0HDiwQ 提取码: typ4 |
mysql-connector-java-5.1.43(Hive 连接mysql的驱动包) | 链接: https://pan.baidu.com/s/1dlUjcLjemTcm7jnc0HDiwQ 提取码: typ4 |
mysql 通过yum的方式安装 | yum安装 |
Hadoop 必须提前安装好 | Hive的数据是存储在Hadoop HDFS分布式文件系统中 |
Mysql安装
mysql通过yum安装的方式安装默认版本即可,hive仅仅只是把表结构的元数据信息存储在mysql中。按照以下步骤100%可以成功(Centos7)
1 | [root@master201 Soft]# yum list mysql |
Hive安装
上传文件至服务器master201然后解压配置环境变量
1
2
3
4
5
6
7[root@master201 conf]# tar -xvf apache-hive-2.1.1-bin.tar.gz
[root@master201 conf]# vi /etc/profile
export HIVE_HOME=/home/lishijia/Soft/apache-hive-1.2.2-bin
export PATH=$PATH:$HIVE_HOME/bin
[root@master201 conf]# source /etc/profile修改hive-site.xml配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21[root@master201 conf]# vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</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>Lishijia~1Q</value>
</property>
</configuration>修改hive-env.sh配置文件
1
2
3
4
5
6
7
8
9[root@master201 conf]# vi /home/lishijia/Soft/apache-hive-1.2.2-bin/conf/hive-evn.sh
export JAVA_HOME=/home/lishijia/Soft/jdk1.8.0_144
#Hadoop安装路径
export HADOOP_HOME=/home/lishijia/Soft/hadoop-2.7.2
#Hive安装路径
export HIVE_HOME=/home/lishijia/Soft/apache-hive-1.2.2-bin
#Hive配置文件路径
export HIVE_CONF_DIR=/home/lishijia/Soft/apache-hive-1.2.2-bin/conf上传Mysql 驱动包放置到Hive lib目录
1
[root@master201 Soft]# mv /home/lishijia/Soft/mysql-connector-java-5.1.43.jar /home/lishijia/Soft/apache-hive-1.2.2-bin/lib/
删除$HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.94.jar
1
需要删除此文件,要不然在运行hive的时候会报错(环境Jar包冲突导致)
修改日志文件
1
2复制出一个日志文件
[root@master201 conf]# cp hive-log4j.properties.template hive-log4j.properties
Hive简单使用
在master201输入hive命令进入sql命令控制台
Hive命令行输出不显示列名,或者显示的列名带表名
1
2
3
4set hive.cli.print.header=true;
控制不显示表名
set hive.resultset.use.unique.column.names=false;创建数据库
1
2
3
4
5
6
7
8
9hive> create database lishijia;
hive> show databases;
OK
default
lishijia
Time taken: 0.049 seconds, Fetched: 2 row(s)
hive> use lishijia;
OK
Time taken: 0.05 seconds创建表(默认内部表,删除表hdfs数据同步删除)
1
hive> create table st_article(sentence string) ROW FORMAT DELIMITED lines terminated by '\n';
导入数据(本地数据)
1
hive> load data local inpath '/home/lishijia/Documents/hive/the_man_of_property.txt' into table st_article;
查询数据
1
hive> select * from st_article limit 10;
查看数据文件存放目录
以下的/user/hive/warehouse目录是默认的,也可以在hive-site.xml当中指定
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17[root@master201 hive]# hadoop fs -ls /
Found 3 items
drwxr-xr-x - root supergroup 0 2018-10-07 21:16 /lishijia
drwx------ - root supergroup 0 2018-10-11 22:57 /tmp
drwxr-xr-x - root supergroup 0 2018-10-11 23:00 /user
[root@master201 hive]# hadoop fs -ls /user/hive/
Found 1 items
drwxr-xr-x - root supergroup 0 2018-10-11 23:12 /user/hive/warehouse
[root@master201 hive]# hadoop fs -ls /user/hive/warehouse
Found 1 items
drwxr-xr-x - root supergroup 0 2018-10-11 23:11 /user/hive/warehouse/lishijia.db
[root@master201 hive]# hadoop fs -ls /user/hive/warehouse/lishijia.db
Found 1 items
drwxr-xr-x - root supergroup 0 2018-10-11 23:11 /user/hive/warehouse/lishijia.db/st_article
[root@master201 hive]# hadoop fs -ls /user/hive/warehouse/lishijia.db/st_article
Found 1 items
-rwxr-xr-x 2 root supergroup 632209 2018-10-11 23:11 /user/hive/warehouse/lishijia.db/st_article/the_man_of_property.txt外部表创建(外部表,删除表hdfs数据照样保留)
1
2
3create external table st_article_ext(sentence string)
row format delimited fields terminated by '\n'
stored as textfile location '/lishijia/input/the_man_of_property.txt';Hive创建分区表(hdfs存储会根据dt字段创建不同的目录)
1
2
3create table st_article_partion(sentence string)
partitioned by(dt string)
row format delimited fields terminated by '\n';
总结
以上完成了mysql hive的安装,以及hive的基本使用方法。