Hive 教程
Hive是一个数据仓库解决方案,它是基于 Hadoop 的一个数据仓库框架,提供了类 SQL 查询的能力来查询大数据集。本文会为您介绍Hive的概念、安装、配置、运行和使用方法。
阅读更多:Hive 教程
概念
Hive 是一个数据仓库框架,最初由 Facebook 创造,它建立在 Hadoop 之上,提供了一个数据仓库解决方案。Hive使用类 SQL 语言查询 Hadoop 中的数据,支持 Hadoop 天然分布式存储和计算。Hive利用类 SQL 的查询方式极大地方便了数据仓库的使用。
安装
在开始使用Hive之前,需要先安装配置Hadoop环境。接下来,我们将会安装Hive,以下步骤为Hive的安装步骤:
- 下载Hive压缩包,如:
hive-x.x.x.tar.gz
; -
解压 Hive 压缩文件到本地的
opt
目录下;tar -zxvf hive-x.x.x.tar.gz
- 进入 Hive 根目录,运行
bin/hive
命令启动 Hive;cd hive-x.x.x bin/hive
运行成功后,将进入 Hive 提示符页面。可以执行
hive
命令启动 Hive。
配置
-
修改
conf/hive-site.xml
文件;<configuration> <!-- 添加数据库驱动 --> <property> <name>hive.driver</name> <value>org.apache.hive.jdbc.HiveDriver</value> </property> <!-- 设置默认数据库 --> <property> <name>hive.metastore.uris</name> <value>thrift://localhost:9083</value> </property> </configuration>
- 修改
conf/hive-env.sh
文件;export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
数据库
在hive中顶级的数据单元是 database。在hive中使用database类似于在关系型数据库管理系统中使用schema,不过hive中的database是用来管理table的。
创建数据库
CREATE DATABASE IF NOT EXISTS mydb;
查看已有的数据库
SHOW DATABASES;
切换数据库
USE mydb;
删除数据库
DROP DATABASE IF EXISTS mydb;
表
在Hive中,table是逻辑上的一个概念,它只是元数据的抽象。一个 table 在物理上可以对应于一个或多个文件在 Hadoop 分布式文件系统上的存储。
创建表
创建Hive表时,需要指定表名、字段名、数据类型等相关信息。Hive支持的数据类型包括:TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE、BOOLEAN、STRING。
CREATE TABLE IF NOT EXISTS mytable (
id INT,
name STRING
);
如果是从其他的数据源中导入到Hive中,则在创建表时,需要先创建数据源并指定 CREATE EXTERNAL TABLE。
查看表信息
DESC mytable;
查看所有表
SHOW TABLES;
数据仓库
Hive是一个面向大数据集的数据仓库,它的设计目标是方便用户进行数据分析、查询和数据挖掘等操作。在Hive中,数据仓库的概念是非常重要的。
Hive数据仓库包括了一个数据库的概念,可以让用户方便的分类存储和管理数据。当然,执行HiveQL时也可以使用多个数据库,这样可以更好地组织和传递分析结果。
创建数据仓库
创建一个新的数据仓库非常简单,在使用 CREATE DATABASE 命令时,也可以指定数据仓库在 HDFS 上的位置。
CREATE DATABASE IF NOT EXISTS mydb LOCATION '/user/hive/warehouse/mydb.db';
查看数据仓库
SHOW DATABASES;
删除数据仓库
DROP DATABASE IF EXISTS mydb;
HiveQL
HiveQL是Hive中内置的SQL-like语言,其语法和SQL类似,对于熟悉 SQL 语言的开发人员使用起来较为方便。在HiveQL中支持大多数常规SQL标准语法,包括查询、连接、分组和聚合等操作。除此之外,它还支持扩展 SQL 语言,如MAPREDUCE、JOB、SET 和 ADDFILE 等命令。
查询语法
在 Hive 中,查询语句的语法结构与 SQL 相同。因此,查询语句的中文意思、格式、关键字以及语句顺序等都和 SQL 相同。以下是一个具体的 Hive 查询语句的示例:
SELECT * FROM mytable WHERE id > 10;
连接语法
HiveQL允许多重 join 操作和多种 join 类型,如 inner join、left outer join 等。
SELECT student.name, teacher.name
FROM student
JOIN teacher ON student.tid=teacher.id;
分组和聚合语法
在 Hive 中,可以根据指定的列或表达式对数据进行分组分析。常用的聚合函数有 count、sum、avg 等。
SELECT AVG(score), COUNT(*)
FROM exam
GROUP BY course;
条件语法
在 Hive 中,我们可以使用条件语句来指定特定的行以供查询。
SELECT * FROM exam
WHERE course = 'Math' AND score > 90;
结论
在本文中,我们详细介绍了 Hive 的概念、安装、配置、数据仓库、表、HiveQL 等方面的内容。除此之外,我们还通过具体示例介绍了 Hive 的查询、连接、分组和聚合、条件语法等常用语句的用法。通过本文的学习,您应该能够掌握 Hive 的基本知识,更好地使用 Hive 进行大数据查询和分析。