Hive概念

1、Hive

1.1 理解:

基于Hadoop的一个数据仓库工具,将结构化的数据文件映射成一张表,提供类SQL查询功能。

本质是:将HQL转化成MapReduce程序

Hive概念_第1张图片

1)Hive处理的数据存储在HDFS中,数据库将数据保存在块设备或者本地文件系统中。

2)Hive分析数据底层的实现是MapReduce,数据库通常有自己的执行引擎。例:MySQL的执行引擎:innoDB

Hive概念_第2张图片

 

3)Hive中不建议对数据的改写,所有的数据都是在加载的时候确定好的。

1.2 优缺点

1.2.1优点

1)操作接口采用类SQL语法

2)避免了去写MapReduce

3)执行延迟比较高,实时性低

4)善于处理大数据量,由于Hive的执行延迟高,所以不善于处理小量数据

5)Hive支持用户自定义函数

1.2.2 缺点

1.Hive的HQL表达能力有限

(1)迭代式算法无法表达

(2)数据挖掘方面不擅长

1.2.2 缺点

1.Hive的HQL表达能力有限

(1)迭代式算法无法表达

(2)数据挖掘方面不擅长

2.Hive的效率比较低

(1)Hive自动生成的MapReduce作业

(2)Hive在加载数据时中不对数据进行处理,没有建立索引,Hive要访问数据中满足条件的特定值时,需要暴力扫描整个数据,因此访问延迟较高

1.3Hive 架构

1.3.1 用户接口:Client

  • hive shell 
  • JDBC/ODBC 一种用于执行SQL语句的Java API
  • WebUI(浏览器访问)

1.3.2 元数据:Metastore

表名及所属数据库,表的数据所在目录,列/分区字段、表的类型(是否是外部表)

表的拥有者等。

默认存储在自带的derby数据库(derby数据库只能允许一个会话连接实际开发部署的时候会将hive的元数据修改为保存在mysql中。

1.3.3 Hadoop

存储在HDFS中,使用MapReduce进行计算

1.3.4 驱动器

(1)解析器(SQL Parser):将 SQL字符串==>语法树AST  分析表是否存在、字段是否存在、                                                      SQL语义是否有误

(2)编译器(Physical Plan):将AST编译生成逻辑执行计划。

(3)优化器(Query Optimizer):对逻辑执行计划进行优化。

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

1.4Hive工作流程

https://blog.csdn.net/caoyuan666/article/details/111809855

你可能感兴趣的:(大数据,hive,hadoop,mapreduce)