文章目录
1. 概念
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL).
其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,说白了hive可以理解为一个将SQL转换为MapReduce的任务的工具,甚至更进一步可以说hive就是一个MapReduce的客户端.
2. Hive与Hadoop的关系
Hive利用HDFS存储数据,利用MapReduce查询分析数据.
运行步骤:
1.客户端发出SQL
2.Hive处理,转换成MapReduce
3.提交任务到Hadoop
4.MapReduce运行
3. Hive中的命令
3.1 创建数据库并指定hdfs存储位置
create database myhive2 location ‘/myhive2’;
3.2 修改数据库
可以使用alter database 命令来修改数据库的一些属性。但是数据库的元数据信息是不可更改的,包括数据库的名称以及数据库所在的位置
alter database myhive2 set dbproperties(‘createtime’=‘20210611’);
3.3 查看数据库信息
查看基本信息:
desc database myhive2;
查看详细信息:
desc database extended myhive2;
3.4 创建表并指定字段之间的分隔符
create table if not exists stu2(id int ,name string) row format delimited fields terminated by ‘\t’ stored as textfile location ‘/user/stu2’;
4. Hive中的四种表结构
4.1 内部表
删除表同时会删除HDFS上的数据
4.2 外部表
删除表HDFS上的数据保留(测试发现删除所在库数据会没)
4.3 分区表
按条件将数据放在HDFS上的不同目录中
4.4 分桶表
先创建普通表,然后依据普通表创建分桶表,分桶表主要用来采样.分桶表实质就是把HDFS上存储的某文件分成多份另外存储.