Hive学习笔记(1)初识Hive

2019-04-02  本文已影响0人  井地儿

Hive是一个数据仓库基础工具,在Hadoop中用来处理结构化的数据。它架构在Hadoop之上,hive底层数据存储是hdfs文件,文件中是结构化的数据,hive提供了sql化的方案,将sql语句转化为MapReduce任务运行在hadoop之上,从而降低了大数据开发者对MapReduce的技术门槛。

什么是Hive?

Hive由Facebook开发,后经Apache基金会孵化并开源。Hive是基于Hadoop分布式文件系统HDFS的一个数据仓库工具,用于处理结构化数据,底层数据存储在HDFS上。Hive将结构化的HDFS文件映射为一张数据库表,并提供了Hive SQL语言实现查询功能。Hive的原理是将SQL语句翻译为Hadoop识别的MapReduce任务并提交给Hadoop运行,解决了原始数据开发人员编写复杂晦涩难懂的MapReduce任务所面临的困难。Hive目前主要用于数仓建设中的离线数据存储和批任务的加工分析。

为什么是Hive?

假如没有Hive会怎样?
Hadoop的问世完美地解决了大数据的存储和计算问题,在没有Hive时,数据开发工程师通过开发MapReduce任务来进行离线数据分析计算。但MapReduce通常需要工程师将加工逻辑拆分为map和reduce两个阶段,要实现复杂的逻辑时,开发难度可想而知,并且数据开发人员往往都是从事SQL编写,而MR的开发则增加了开发语言等学习成本,这往往让初期通过MR进行数据分析的开发人员和公司很痛苦。我们猜测应该是Facebook更容易接受SQL的工程师们推动了Hive的问世。
好了,总结一下:

Hive是基于HDFS的离线大数据存储和加工分析的数仓工具,提供了十分友好的交互接口,支持Hive SQL语法(而Hive SQL很大程度上继承了传统SQL语法),一个十分熟悉SQL开发的数据工程师能够在很短的时间内上手Hive开发,极大地降低了学习成本,并且有很好的扩展性,可以方便地扩展集群,用户也可以自定义函数。

Hive有什么特点?

任意一个产品都有它的优缺点,Hive也不例外。

优点

缺点

Hive是不是关系型数据库?

Hive不是关系型数据库。

Hive有事务吗?

Hive有事务,不过hive的事务是表级和分区级的事务,Hive数据都是离线数据,不能用于联机的事务处理。

Hive是否可以用于实时系统架构?

Hive的定位是离线海量数据的存储和加工处理的数仓工具,所以不能用户实时系统架构组件来使用,也不能用于行级数据的更新操作。

Hive架构

image.png

Hive架构主要由四个模块组成:

Hive的核心查询引擎(Query Engine/Driver)

hive的核心查询引擎分三个模块:

Hive的执行流程

接口层接收客户端的提交——>编译器根据元数据等信息进行编译和语义分析,构建执行计划——>优化器优化执行方案,构建MR任务并执行

Hive的数据模型(Data Model)

Hive数据模型包括数据库,内表,外表,视图,分区,桶,数据。其中数据库,表,分区,视图在HDFS中对应的是一个目录,其中内表由hive管理,外表的数据由用户管理;桶和数据在HDFS中对应的是文件,其中桶是根据某个字段的值进行hash散列之后的多个文件。

Hive表都有哪些类型?

Hive表分为内部表,外部表,分区表和分桶表。

Hive内部表和外部表的区别是什么?

内部表的数据由Hive进行管理,外部表的数据由用户管理;最大的区别就是在删除表的时候,内部表会删除元数据和数据文件(数据不可恢复);外部表只会删除元数据,数据文件并不会删除。

如何选择内部表和外部表?

如果模型结构稳定(不会经常发生修改模型结构的情况),且数据加工都是基于Hive完成,则推荐用内部表;如果是数仓建设初期,业务逻辑还不太稳定,表模型存在经常改动的阶段,或数据来源于其他工具(如Flume等),或多种工具对数据文件进行加工处理,则选择外部表。

Hive分区表和分桶表的区别是什么?

Hive分区表根据某些字段进行分区(如时间字段),表现为不同的分区目录;而分桶表是表和分区在文件层面的更进一步的细化,将数据文件根据某个字段的hash散列为多个分桶文件。分区和分桶都是对数据的精细化管理,分桶比分区更精细化,查询准确性和速度会更高。

一句话描述Hive

Hive是支持SQL开发的,处理基于Hadoop分布式文件系统HDFS存储的结构化数据的离线海量数据的统计分析工具,用于构建数据仓库。Hive有内部表,外部表,分区表,分桶表,视图等,支持HQL类SQL查询语法。

再谈Hive的设计架构

Impala知识体系:https://www.cnblogs.com/zlslch/category/993482.html
Impala是使用CDH的首选PB级大数据实时查询分析引擎。

上一篇 下一篇

猜你喜欢

热点阅读