栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【无标题】

【无标题】

hive

Hive是基于Hadoop的应用程序,受限于Hadoop 的设计,Hive不能提供完整的数据库功能。最大的限制就是Hive不支持行级别的更新、插入或者删除操作。同时,因为MapReduce任务的启动过程需要消耗较长的时间,所有Hive查询延迟比较严重。传统数据库中在秒级别可以完成的查询,在Hive中,即使数据集相对较小,往往也需要执行更长的时间。最后需要说明的是,Hive不支持事务。
在这里插入图片描述
Hive中附带的客户端有三种:CLI(命令行客户端)、HWI(网页客户端)和Thrift Server(编程客户端)。

(1)查看Hadoop版本号,命令如下:

hadoop version

(2)启动Hadoop,命令如下:

 - 启动HDFS:start-dfs.sh
 - 启动Yarn:start-yarn.sh
 - 检查Hadoop进程:jps
Hive中的数据库

(1)创建数据库

CREATE DATAbase school;
CREATE DATAbase 数据库名称;

(2)查看Hive中所包含的数据库

SHOW DATAbaseS;

(3)切换数据库

USE school;
USE 数据库名字;

(4)删除数据库

DROp DATAbase IF EXISTS school CASCADE;
DROP DATAbase IF EXISTS 数据库名 CASCADE;
数据类型长度
TINYINT1byte有符号整数
SMALINT2byte有符号整数
INT4byte有符号整数
BIGINT8byte有符号整数
BOOLEAN布尔类型,true或者false
FLOAT单精度浮点数
DOUBLE双精度浮点数
STRING字符串
TIMESTAMP日期,时间戳或者字符串
ARRAY一组有序字段,类型必须相同
MAP一组无序的键值对
STRUCT一组命名的字段,字段类型可以不同
分隔符
分隔符描述
n行分隔符
^A列分隔符
^BARRAY、MAP、STRUCT中元素之间的分隔符
^CMAP中KEY和VALUE之间的分隔符
装载数据

– 默认导入的是HDFS数据,导入本地数据需要添加LOCAL关键字
–默认导入的是执行追加操作,如果需要执行覆盖操作,需要添加OVERWRITE关键字

外部表

–内部表控制着数据的生命周期,当内部表删除的时候,目录和其中的文件也会被删除
–如果需要和其他系统共享数据,可以创建外部表
–EXTERNAL外部表的关键字,外部表不会在school.db目录下创建子目录
–LOCATION 设置外部表数据文件的位置,外部表不需要导入数据
–LOCATION需要指定为数据文件所在的目录,会把目录中的所有文件加载到表

--内部表:管理数据,创建目录,剪切文件,随着表的删除,表结构.目录和数据文件都删除
--外部表:共享文件,不创建目录,不操作文件,随着表的删除,只删除表结构,不删除数据文件
--在查询操作上,内部表和外部表没有任何区别
分区表

–分区字段也是表中的列,叫做虚拟列(虚拟字段)
–因为他们的值不在数据文件中,需要在导入数据的时候手动添加

LOAD DATA INPATH '/usr/hive/student/student_cs_a1.txt' INTO TABLE student PARTITION (college='cs',clazz='a1');--hdfs上面导入
LOAD DATA INPATH '/usr/hive/student/student_cs_a2.txt' INTO TABLE student PARTITION (college='cs',clazz='a2');
LOAD DATA INPATH '/usr/hive/student/student_ai_b1.txt' INTO TABLE student PARTITION (college='ai',clazz='b1');
聚合函数

常用的Hive的内置聚合函数

返回值类型函数
BIGINTcount(*)
DOUBLEsum(col)
DOUBLEavg(col)
DOUBLEmin(col)
DOUBLEmax(col)

查询学生的总人数

SELECT COUNT(*) FROM student;

查询学生的平均年龄:

SELECt AVG(age) FROM student;

查询学生的最大年龄:

SELECt MAX(age) FROM student;

查询学生的最小年龄:

SELECt MIN(age) FROM student;
排序

查询所有学生信息并按照年龄升序排列

SELECt * FROM student ORDER BY age;
SELECt * FROM student ORDER BY age ASC;

查询所有学生信息并按照年龄降序排列

SELECt * FROM student ORDER BY age DESC;

我们分别使用ORDER BY和SORT BY按照成绩降序排列:

SELECt * FROM score ORDER BY score DESC;
SELECt * FROM score SORT BY score DESC;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/663829.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号