蜂巢函数有什么用

介绍

这篇文章将为大家详细讲解有关蜂巢函数有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

首先我们要知道蜂箱到底是做什么的。下面这几段文字很好的描述了蜂巢的特性:

1。蜂巢是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类sql语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

2。蜂巢是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储,查询和分析存储在Hadoop中的大规模数据的机制.Hive定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据,同时,这个语言也允许熟悉MapReduce开发者的开发自定义的mapper和减速器来处理内建的mapper和减速机无法完成的复杂的分析工作。

要理解蜂巢,必须先理解Hadoop MapReduce和,如果有不熟悉的童鞋,可以百度一下。

使用蜂巢的命令行接口,感觉很像操作关系数据库,但是蜂巢和关系数据库还是有很大的不同,下面我就比较下蜂巢与关系数据库的区别,具体如下:

1.蜂巢和关系数据库存储文件的系统不同,蜂巢使用的是Hadoop的HDFS (Hadoop的分布式文件系统),关系数据库则是服务器本地的文件系统;

2.蜂巢使用的计算模型是MapReduce,而关系数据库则是自己设计的计算模型;

3。关系数据库都是为实时查询的业务进行设计的,而蜂窝则是为海量数据做数据挖掘设计的,实时性很差;实时性的区别导致蜂巢的应用场景和关系数据库有很大的不同,

4。蜂巢很容易扩展自己的存储能力和计算能力,这个是继承hadoop的,而关系数据库在这个方面要比数据库差很多。

以上都是从宏观的角度比较蜂巢和关系数据库的区别,蜂巢和关系数据库的异同还有很多,我在文章的后面会一一描述。

下面我来讲讲蜂巢的技术架构,大家先看下面的架构图:,

蜂巢函数有什么用“> </p> <p>由上图可知,hadoop和mapreduce是蜂巢架构的根基.Hive架构包括如下组件:CLI(命令行界面),JDBC/ODBC,节俭服务器,WEB GUI, metastore和司机(依从者,优化器和执行器),这些组件我可以分为两大类:服务端组件和客户端组件。</p> <p>,<强>首先讲讲服务端组件:</强> </p> <p>司机组件:该组件包括依从者,优化器和执行器,它的作用是将我们写的HiveQL(类SQL)语句进行解析,编译优化,生成执行计划,然后调用底层的mapreduce计算框架。</p> <p> Metastore组件:元数据服务组件,这个组件存储蜂巢的元数据,蜂巢的元数据存储在关系数据库里,蜂巢支持的关系数据库有德比,mysql。元数据对于蜂巢十分重要,因此蜂巢支持把Metastore服务独立出来,安装到远程的服务器集群里,从而解耦蜂巢服务和Metastore服务,保证蜂巢运行的健壮性,这个方面的知识,我会在后面的Metastore小节里做详细的讲解。</p> <p>节俭服务:节俭是facebook开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发,蜂巢集成了该服务,能让不同的编程语言调用蜂巢的接口。</p> <p>客户端组件:</p> <p> CLI:命令行接口,命令行接口。</p> <p>节俭客户端:上面的架构图里没有写上节俭客户端,但是蜂巢架构的许多客户端接口是建立在节俭客户端之上,包括JDBC和ODBC接口。</p> <p> WEBGUI:蜂巢客户端提供了一种通过网页的方式访问蜂巢所提供的服务,这个接口对应蜂巢的注热水组件(蜂巢web界面),使用前要启动注热水服务。</p> <p> <强>下面我着重讲讲Metastore组件,具体如下:</强> </p> <p>蜂巢的Metastore组件是蜂巢元数据集中存放地.Metastore组件包括两个部分:Metastore服务和后台数据的存储。后台数据存储的介质就是关系数据库,例如蜂巢默认的嵌入式磁盘数据库德比,还有mysql数据库.Metastore服务是建立在后台数据存储介质之上,并且可以和蜂巢服务进行交互的服务组件,默认情况下,Metastore服务和蜂巢服务是安装在一起的,运行在同一个进程当中。我也可以把Metastore服务从蜂巢服务里剥离出来,Metastore独立安装在一个集群里,蜂巢远程调用Metastore服务,这样我们可以把元数据这一层放到防火墙之后,客户端访问蜂巢服务,就可以连接到元数据这一层,从而提供了更好的管理性和安全保障。使用远程的Metastore服务,可以让Metastore服务和蜂巢服务运行在不同的进程里,这样也保证了蜂巢的稳定性,提升了蜂巢服务的效率。<h2 class=蜂巢函数有什么用