HIVE学习笔记-1

1、HIVE出现的背景

  • MapReduce 开发难度大,学习成本高(wordCount => Hello World)
  • Hdfs文件没有字段名、没有数据类型,不方便进行数据的有效管理
  • 使用MapReduce框架开发,项目周期长,成本高

2、数仓的出现

a、数据仓库的目的:构建面向分析的、集成的数据集合;为企业提供决策支持;
b、数据仓库本身不产生数据,数据来源与外部;
c、存储了大量数据,对这些数据的分析和处理不可避免的用到HIVE。

3、HIVE和RDBMS(关系型数据)的对比

a、查询语言相似
HQL、SQL相似(语法内容相似,绝大多数是兼容的)
可以使熟悉SQL的程序员能快速的上手HIVE;

b、数据规模
HIVE存储海量数据;
RDBMS只能处理有限的数据集;

c、执行引擎
HIVE的引擎是MR/TEZ/SPARK;
RDBMS使用的是自己的执行引擎;
HIVE中大多数的查询是通过执行MR实现的;

d、数据存储位置
HIVE是存储在HDFS上;
RDBMS是存储在本地文件系统 或者 裸设备。

c、执行速度
HIVE的执行速度在一般的情况下是相对较慢的;
RDBMS是相对较快的。
HIVE慢:
①因为HIVE存储的数据量大,且通常是没有索引的,所以在查询数据的时候需要扫描整个表;
②HIVE使用的查询引擎是MR,也是导致HIVE查询时速度慢的原因之一。

RDBMS快:
RDBMS在查询数据时通常是基于索引的,所以执行延迟较低;
但是,这个快是相对的,当两者都存储相同的较大的数据规模时,那么HIVE的并行计算性能优点就体现出来了。

d、可扩展性
HIVE:
HIVE支持水平扩展;

RDBMS:
RDBMS支持垂直扩展,对水平扩展不友好;

Hive建立在Hadoop之上,其可扩展性与Hadoop的可扩展性是一致的(Hadoop集群
规模可以轻松超过1000个节点)。而RDBMS由于 ACID 语义的严格限制,扩展行非常
有限。目前最先进的并行数据库 Oracle 在理论上的扩展能力也只有100台左右。

e、数据更新
HIVE:
HIVE对数据更新不友好;

RDBMS:
RDBMS支持频繁、快速的数据更新;

因为HIVE是针对数据仓库设计的,而数仓的使用背景是读多写少,所以这是它天生的缺点;
而RDBMS中的数据需要频繁、快速的进行更新。

4、HIVE的优缺点

HIVE的优点:
a、学习成本低;HIVE提供了类似SQL的HQL语言,开发人员能快速上手;

b、处理海量数据;底层执行的是MR任务;

c、系统可以水平扩展;底层是基于HADOOP;

d、功能可以扩展;HIVE允许用户自定义函数(UDF);

e、良好的容错性;当集群中的某个节点发生故障时,执行的任务仍能正常完成;

f、统一管理的元数据;元数据包括:表名、表结构、字段类型;

HIVE的缺点:
a、HQL表达能力有限;如无法表达 迭代计算;

b、执行效率不搞;基于MR的执行引擎;

c、自动生成的MR作业,在某些情况下不够智能;

d、HIVE调优困难;需要学习一些底层原理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值