什么是Hive?

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

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

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

(3)使用MapReduce计算

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

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

初识Hive

Hive架构

初识Hive

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迟延比较高,优势在于处理大数据,对于处理小数据没有优势。

相关文章:

  • 2021-09-21
  • 2021-10-08
  • 2022-01-10
  • 2021-10-20
  • 2021-03-30
  • 2021-07-17
猜你喜欢
  • 2021-10-22
  • 2022-12-23
  • 2021-06-14
  • 2021-12-18
  • 2021-06-23
相关资源
相似解决方案