Apache - Hive环境部署与快速入门

2020-08-05 22:47:45 浏览数 (1)

  • Title : Apache-Hive
  • Author: Titan

1. 什么是Hive

Hive:由 Facebook 开源用于解决海量结构化日志的数据统计。 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。 也就是说,Hive提供了一种类SQL的HQL语言,方便你进行编写一些数据处理的东西,最终将 HQL 转化成 MapReduce 程序

2. Hive的安装记录

Hive的安装相对Hadoop来说比较容易,这里使用的是hive-1.2.2版本

首先:将 apache-hive-1.2.2-bin.tar.gz 上传到机器中并解压

修改/opt/module/hive/conf 目录下的 hive-env.sh.template 名称为 hive-env.sh

配置 hive-env.sh 文件,在下面加入以下配置:

代码语言:javascript复制
export HADOOP_HOME=/opt/hadoop-2.10.0
export HIVE_CONF_DIR=/opt/apache-hive-1.2.2-bin/conf

启动Hadoop集群,然后在 hive安装目录下的bin目录中,运行hive二进制文件,即可启动hive。

3. Hive的基本操作

(1)启动 hive bin/hive

(2)查看数据库 hive> show databases;

(3)打开默认数据库 hive> use default;

(4)显示 default 数据库中的表 hive> show tables;

(5)创建一张表 hive> create table student(id int, name string);

(6)显示数据库中有几张表 hive> show tables;

(7)查看表的结构 hive> desc student;

(8)向表中插入数据 hive> insert into student values(1000,"ss");

(9)查询表中数据 hive> select * from student;

(10)退出 hive hive> quit;

4. 将数据导入Hive中

(1) 将本地文件数据导入到Hive中

  • 创建一个student.txt文件,内容如下(每行数据以制表符分割)
代码语言:javascript复制
1	Titan
2	Goodman
3	Mike
4	Workman
5	Walkman
  • 显示当前的所有数据库

hive> show databases;

  • 使用 default 数据库

hive> use default;

  • 创建 student 表, 并声明文件分隔符 't'

hive> create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't';

  • 加载student.txt 文件到 student 数据库表中

load data local inpath 'student.txt' into table student;

  • Hive 查询结果
代码语言:javascript复制
hive> SELECT * FROM student;
OK
1       Titan
2       Goodman
3       Mike
4       Workman
5       Walkman

(2) 将HDFS中的数据导入到Hive中

将HDFS中的数据导入到Hive中和上述本地数据的导入方式并无太大差异。

  • 将数据文件上传到HDFS中:hdfs dfs put student.txt /
  • 将HDFS中的数据导入到Hive中,只需要将 load语句的local删去即可:load data inpath '/student.txt' into table student;

上面两种方式的区别:

本地文件导入到Hive采用的是copy的方式,即源文件将复制一份到HDFS中的hive相应目录,而直接导入HDFS中的数据文件,Hive将修改数据块的元数据,更改其存储路径,类似于“移动”。

0 人点赞