Hive第一章--基本概念

1.1什么是hive

hive是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
本 质 是 将 H Q L 转 化 为 M a p R e d u c e 程 序 。 本质是将HQL转化为MapReduce程序。 HQLMapReduce

为什么说hive是基于Hadoop的工具呢?

  1. hive处理的数据存储在HDFS上;
  2. hive分析数据的底层实现默认为MapReduce;
  3. 执行程序运行在yarn上;

1.2hive的优缺点

1.2.1 优点
  1. 操作接口采用类SQL语法,提供快速开发的能力
  2. 避免写MapReduce,减少学习成本
  3. hive的执行延时比较高,因此hive常用于数据分析,对实时性要求不高,吞吐量大的场景
  4. hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
1.2.2 缺点
  1. HQL的表达能力有限,迭代式算法无法表达,且数据挖掘方面不擅长(迭代算法多)
  2. hive的效率比较低
    (1)hive自动生成的MapReduce作业通常情况下不够智能;
    (2)hive调优比较困难,粒度较粗(模版固定);
1.3 hive的架构

在这里插入图片描述
hive主要有四部分组成:SQL Parser解析器、Physical Plan编译器(负责将HQL翻译为MR)、Query Optimizer优化器 、Execution执行器。

元数据(Metastore)包括:表名,表所属的数据库(默认为derby),表的拥有者,列/分区字段,表的类型(是否是外部表),表的数据所在的目录等;

1.4 hive与传统数据库的区别
     hive在加载数据的过程中不会对数据进行任何处理,也没有对数据中的某些key建立
索引。hive要访问数据中满足条件的特定数据时,需要暴力扫描整个数据,或者整个表,
所以访问延时较高,同时MR框架本身具有较高的延迟,这决定了hive不适合在线数据
的查询。由于MapReduce的引入,hive可以并行的访问数据,因此即使没有索引,hive
对大量数据的访问也可体现出优势;

     传统数据库中通常会针对一个或者几个列建立索引,因此对于少量的特定条件的数据
 的访问,数据库有较低的延时,效率较高。      

参考文章:
https://blog.csdn.net/liberty12345678/article/details/84718655

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值