Go...
Go...
文章目录
一、 什么是Hive
二、 Hive的优缺点
2.1 优点
2.2 缺点
三、 Hive架构原理
3.1 用户接口:Client
3.2 元数据:Metastore
3.3 结合Hadoop
3.4 驱动器:Driver
四、 Hive和数据库比较
4.1 查询语言
4.2 数据更新
4.3 执行延迟
4.4 数据规模
一、 什么是Hive
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
本质是:将HQL转化成MapReduce程序:
(1)Hive处理的数据存储在HDFS (2)Hive分析数据底层的实现是MapReduce (3)执行程序运行在Yarn上
大部分SQL语句都封装了MR程序(类SQL),之所以封装成SQL是因为基本程序员都会这玩意。
基于MR处理: 开发者—>分析需求—>编写MR—>得到结果 基于Hive处理: 开发者—>分析需求—>编写SQL—>Hive将SQL转化成MR—>得到结果
二、 Hive的优缺点
2.1 优点
(1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。 (2)避免了去写MapReduce,减少开发人员的学习成本。 (3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。 (4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。 (5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
2.2 缺点
1)Hive的HQL表达能力有限 (1)迭代式算法无法表达,表达能力有限(复杂的逻辑算法不好封装) (2)数据挖掘方面不擅长,由于MapReduce数据处理流程的限制(比较慢,因为底层的缺点也都还在),效率更高的算法却无法实现