APP下载
报价宝  ›  科技  › 

让你真正明白什么是hive

报价宝 来源:baojiabao.com 发布时间:2019-11-19 02:51:00 11月12日更新
报价宝综合消息让你真正明白什么是hive

导读:

对于一个事物的认识,存在几种情况

1.没有接触,不知道这个事物是什么,所以不会产生任何问题。

2.接触了,但是不知道他是什么,反正我每天都在用。

3.有一定的了解,不够透彻。

那么hive,

1.我们对它了解多少?

2.它到底是什么?

3.hive和hadoop是什么关系?

扩充套件:

hbase和hive是什么关系?

Hive最初是应Facebook每天产生的海量新兴社会网络资料进行管理和机器学习的需求而产生和发展的。那么,到底什么是Hive,我们先看看Hive官网Wiki是如何介绍Hive的(https://cwiki.apache.org/confluence/display/Hive/Home):

The Apache Hive data warehouse software facilitates querying and managing large datasets residing in distributed storage. Built on top of Apache HadoopTM, it provides:

(1)、Tools to enable easy data extract/transform/load (ETL)

(2)、A mechanism to impose structure on a variety of data formats

(3)、Access to files stored either directly in Apache HDFSTM or in other data storage systems such as Apache HBaseTM

(4)、Query execution via MapReduce

上面英文的大致意思是:

Apache Hive资料仓库软件提供对储存在分散式中的大型资料集的查询和管理,它本身是建立在Apache Hadoop之上,主要提供以下功能:

(1)它提供了一系列的工具,可用来对资料进行提取/转化/载入(ETL);

(2)是一种可以储存、查询和分析储存在HDFS(或者HBase)中的大规模资料的机制;

(3)查询是通过MapReduce来完成的(并不是所有的查询都需要MapReduce来完成,比如select * from XXX就不需要;

(4)在Hive0.11对类似select a,b from XXX的查询通过配置也可以不通过MapReduce来完成

上面的意思很明白了.这里再给他提炼一下:

1.hive是一个数据仓库

2.hive基于hadoop。

总结为一句话:hive是基于hadoop的资料仓库。

那么上面”基于“如何讲,看下面

Hive是一种建立在Hadoop档案系统上的资料仓库架构,并对储存在HDFS中的资料进行分析和管理;

(也就是说对储存在HDFS中的资料进行分析和管理,我们不想使用手工,我们建立一个工具把,那么这个工具就可以是hive)

到此,我们已经明白hive是什么,想更深一步的了解,可检视下面内容。

那么,我们如何来分析和管理那些资料呢?

Hive定义了一种类似SQL的查询语言,被称为HQL,对于熟悉SQL的使用者可以直接利用Hive来查询资料。同时,这个语言也允许熟悉 MapReduce 开发者们开发自定义的mappers和reducers来处理内建的mappers和reducers无法完成的复杂的分析工作。Hive可以允许使用者编写自己定义的函式UDF,来在查询中使用。Hive中有3种UDF:User Defined Functions(UDF)、User Defined Aggregation Functions(UDAF)、User Defined Table Generating Functions(UDTF)。

今天,Hive已经是一个成功的Apache专案,很多组织把它用作一个通用的、可伸缩的资料处理平台。

当然,Hive和传统的关系型数据库有很大的区别,Hive将外部的任务解析成一个MapReduce可执行计划,而启动MapReduce是一个高延迟的一件事,每次提交任务和执行任务都需要消耗很多时间,这也就决定Hive只能处理一些高延迟的应用(如果你想处理低延迟的应用,你可以去考虑一下Hbase)。同时,由于设计的目标不一样,Hive目前还不支援事务;不能对表资料进行修改(不能更新、删除、插入;只能通过档案追加资料、重新汇入资料);不能对列建立索引(但是Hive支援索引的建立,但是不能提高Hive的查询速度。如果你想提高Hive的查询速度,请学习Hive的分割槽、桶的应用)。

同时补充一下hive与hbase的联络与区别:

共同点:

1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层储存

区别:

2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支援弥补Hadoop对实时操作的缺陷的专案 。

3.想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。

4.Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多。

5.Hive本身不储存和计算资料,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。

6.hive借用hadoop的MapReduce来完成一些hive中的命令的执行

7.hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来储存索引,方便查询操作。

8.hbase是列储存。

9.hdfs作为底层储存,hdfs是存放档案的系统,而Hbase负责组织档案。

10.hive需要用到hdfs储存档案,需要用到MapReduce计算框架。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 数码相机价格 笔记本价格 电视机价格 红米手机价格 降噪耳机价格