HADOOP学习笔记(三):hive

Hive 简介

1、Hive 由 Facebook 实现并开源

2、是基于 Hadoop 的一个数据仓库工具

3、可以将结构化的数据映射为一张数据库表

4、并提供 HQL(Hive SQL)查询功能

5、底层数据是存储在 HDFS 上

6、Hive的本质是将 SQL 语句转换为 MapReduce 任务运行

7、使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。

Hive的架构

Hive中表的分类

  • 内部表
  • 外部表
  • 分区表
  • 桶表
内部表:什么是内部表需要对比外部表来看
•删表时数据和表一起删除
 
外部表
•数据已经存在于HDFS
•外部表只是走一个过程,加载数据和创建表同时完成,不会移动到数据仓库目录中,仅仅是和数据建立了一个连接
•删表数据不会删除数据
 
内部表外部表区分:
在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!而内部表表则不一样;在删除内部表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!
 
分区表
•在Hive Select查询中,一般会扫描整个表内容,会消耗很多时间做没必要的工作。 分区表指的是在创建表时,指定partition的分区空间。扫描时可以只扫描某一个分区的数据
  •分区表存储时分局所设立的分区分别存储数据(分区字段就是一个文件夹的标识)
 
桶表
  •对于每一个表(table)或者分区,Hive可以进一步组织成桶,也就是说捅是更为细粒度的数据范困划分。
  •桶表是对指定的分桶的列进行哈希运算,运算结果模(%)分桶的数量然后把数据根据运算结果分别放入这几个桶中

Hive的常用表操作

Hive创建表的方式

1、使用create命令创建一个新表
例如:create table if not exists db_web_data.track_log(字段) 
partitioned by (date string,hour string) 
row format delimited fields terminated by '\t';
2、把一张表的某些字段抽取出来,创建成一张新表
例如:create table backup_track_log as select * from db_web_data.track_log;
尖叫提示:会复制属性以及属性值到新的表中
3、复制表结构
例如:create table like_track_log like db_web_data.track_log;
尖叫提示:不会复制属性值,只会复制表结构。

Hive表导入数据方式

1、本地导入
load data local inpath 'local_path/file' into table 表名称 ;
2、HDFS导入
load data inpath 'hdfs_path/file' into table 表名称 ;
3、覆盖导入
load data local inpath 'path/file' overwrite into table 表名称 ;
load data inpath 'path/file' overwrite into table 表名称 ;
4、查询导入
create table track_log_bak as select * from db_web_data.track_log;
5、insert导入--常用
** 追加-append-默认方式
insert into table 表名 select * from track_log;
** 覆盖-overwrite-显示指定-使用频率高
insert overwrite table 表名 select * from track_log;

Hive表导出数据方式

1、本地导出
例如:insert overwrite local directory "/home/admin/Desktop/1/2" row format delimited fields terminated by '\t' select * from db_hive_demo.emp ;
尖叫提示:会递归创建目录
2、HDFS导出
例如:insert overwrite diretory "path/" select * from staff;
3、Bash shell覆盖追加导出
例如:$ bin/hive -e "select * from staff;"  > /home/z/backup.log
4、Sqoop

参考: https://www.cnblogs.com/qingyunzong/category/1191578.html

  

posted @ 2018-10-11 14:37  gloomysun  阅读(291)  评论(0编辑  收藏  举报