初识Hive

什么是Hive?

由FaceBook开源用于解决海量结构化日志的俄数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类sql查询功能。

(1)使用HQL作为查询接口。

(2)使用HDFS进行数据存储。

(3)使用MapReduce计算

本质是:将HQL转化成MapR额度测程序。

Hive在Hadoop生态系统中所处的位置:

初识Hive_第1张图片

Hive架构

初识Hive_第2张图片

Client(用户接口)

CLI(hive shell), JDBC/ODBC(java访问hive), WEBUI(浏览器访问hive)

Metastore(元数据)

元数据包括:表名,表所属的数据库(默认是default),表的拥有着,列/分区子段,表的类型(是否是外部表),表的数据所在目录等。

Hadoop

使用HDFS进行存储,使用MapReduce进行计算。

Driver(驱动器)

包含:解析器,编译器,优化器,执行器

解析器:将SQL字符串转换成抽象的语法树AST,这一步一般都是使用第三方工具库完成,如antlr;对AST进行语法分析,比如表是否存在,子段是否存在,SQL语义是否有误。

编译器:将AST编译生成逻辑执行计划。

优化器:对逻辑执行计划进行优化。

执行器:把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/TEZ/Spark;

Hive优点与使用场景

优点

(1)操作接口使用SQL语法,提供快速开放能力。

(2)避免写MapReduce,减少开发人员工作成本。

(3)统一的数据管理,可与Impala/spark等共享数据

(4)易扩展(可扩展集群规模),支持自定义函数。

使用场景

(1)数据的离线处理;如,日志分析,海量结构化数据的离线分析。

(2)Hive的执行迟延比较高,因此Hive常用于对时实行要求不高的数据分析场景。

(3)Hive迟延比较高,优势在于处理大数据,对于处理小数据没有优势。

你可能感兴趣的:(hive,Hive)