Hive

数据仓库

Hive是建立在Hadoop HDFS上的数据仓库基础架构

Hive可以用来进行数据提取转化加载(ETL)

Hive定义了见到那的类似SQL查询语言,称为HQL它允许熟悉SQL的用户查询数据

Hive允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作

Hive是SQL解析引擎,他将SQL语句转移成M/R Job然后在Hadoop执行

Hive的表其实就是HDFS的目录/文件

Hive的体系节后

Hive的元数据:Hive将元数据存储在数据库中(metastore),支持mysql,derby等数据库。

Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

一条HQL语句如何在hive中进行查询的?

解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询记录存储在HDFS中,并在随后有MapReduce调用执行

hive>quit

hive --service cli >exit

Ctrl+L 或者!clear清屏

show tables 查看数据仓库中的表

show functions 查看数据仓库中的内置函数

查看表结构:desc 表名

查看HDFS上的文件:dfs -ls目录

执行操作系统的命令:!命令

dfs -lsr /user递归查看hdfs /user下的文件

执行HQL语句

select *** from ***

执行SQL的脚本

source SQL文件

hive -S静默模式,直接输出结果,不产生调试信息

hive -e 'show tables';

hive -S -e 'select * from test1';

Web界面方式:

hive --service hwi 

通过浏览器来访问:http://<IP地址>:9999/hwi/

远程服务启动方式:

hive --service hiveserver

Hive的数据类型

内部表创建表和加载数据分开完成

外部表只是一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个外部表时,仅删除该链接

桶表(Buckeet Table)

桶表是对数据进行哈希取值,然后放到不同的文件中进行存储。

物化视图,可以存数据,Hive不支持,oracle,mysql支持

 

posted @ 2018-08-18 20:32  hotMemo  阅读(195)  评论(0编辑  收藏  举报