蜂巢 - 介绍

术语"大数据"用于包含大量数据,高速度和各种日益增长的数据的大型数据集的集合.使用传统的数据管理系统,很难处理大数据.因此,Apache Software Foundation引入了一个名为Hadoop的框架来解决大数据管理和处理难题.

Hadoop

Hadoop是一个开源框架在分布式环境中存储和处理大数据.它包含两个模块,一个是MapReduce,另一个是Hadoop分布式文件系统(HDFS).

  • MapReduce: 它是一种并行编程模型,用于在大型商用硬件集群上处理大量结构化,半结构化和非结构化数据.

  • HDFS: Hadoop分布式文件系统是Hadoop框架的一部分,用于存储和处理数据集.它提供了一个容错的文件系统,可以在商用硬件上运行.

Hadoop生态系统包含不同的子项目(工具),如Sqoop,Pig和Hive用于帮助Hadoop模块.

  • Sqoop:它用于在HDFS和RDBMS之间导入和导出数据.

  • Pig:这是一个过程语言平台,用于为MapReduce操作开发脚本.

  • Hive:这是一个用于开发SQL类型脚本以执行MapReduce操作的平台./p>

注意:有多种方法可以执行MapReduce操作:

  • 使用Java MapReduce程序处理结构化,半结构化和非结构化数据的传统方法.

  • MapReduce处理结构化的脚本方法使用Pig的半结构化数据.

  • MapR的Hive查询语言(HiveQL或HQL)使用Hive处理结构化数据.

什么是Hive

Hive是一个要处理的数据仓库基础架构工具Hadoop中的结构化数据.它位于Hadoop之上,用于汇总大数据,并使查询和分析变得简单.

最初Hive是由Facebook开发的,后来Apache软件基金会将其开发并进一步开发Apache Hive这个名字的开源.它被不同的公司使用.例如,亚马逊在Amazon Elastic MapReduce中使用它.

Hive不是

  • 关系数据库

  • OnLine事务处理(OLTP)的设计

  • 用于实时查询和行级更新的语言

Hive的功能

  • 它将模式存储在数据库中并将处理后的数据存储到HDFS中.

  • 它是专为OLAP设计的.

  • 它提供了用于查询的SQL类型语言,称为HiveQL或HQL.

  • 熟悉,快速,可扩展且可扩展.

Hive架构

以下组件图描绘了Hive的架构:

Hive Architecture

此组件图包含不同的单位.下表描述了每个单元:

单位名称操作
用户界面Hive是一种数据仓库基础架构软件,可以在用户和HDFS之间创建交互. Hive支持的用户界面是Hive Web UI,Hive命令行和Hive HD Insight(在Windows服务器中).
Meta StoreHive选择相应的数据库服务器来存储表格,数据库,表格中的列,其数据类型和HDFS映射的模式或元数据.
HiveQL Process EngineHiveQL类似于SQL,用于查询Metastore上的架构信息.它是MapReduce程序传统方法的替代品之一.我们可以编写MapReduce作业的查询并处理它,而不是用Java编写MapReduce程序.
执行引擎HiveQL流程Engine和MapReduce的结合部分是Hive Execution Engine.执行引擎处理查询并生成与MapReduce结果相同的结果.它使用了MapReduce的风格.
HDFS或HBASEHadoop分布式文件system或HBASE是将数据存储到文件系统的数据存储技术.

Hive的工作

下图描绘了Hive和Hadoop之间的工作流程.

Hive如何工作

下表定义了Hive如何与Hadoop框架交互:

步骤号.操作
1执行查询

Hive界面(如命令行或Web UI)向Driver发送查询(任何数据库驱动程序,如JDBC) ,ODBC等等)来执行.

2获取计划

驱动程序获取查询编译器的帮助,该编译器解析查询以检查语法和q uery计划或查询要求.

3获取元数据

编译器向Metastore(任何数据库)发送元数据请求.

4发送元数据

Metastore将元数据作为对编译器的响应发送.

5发送计划

编译器检查需求并将计划重新发送给驱动程序.到目前为止,查询的解析和编译已经完成.

6执行计划

驱动程序将执行计划发送到执行引擎.

7执行作业

在内部,执行作业的过程是MapReduce工作.执行引擎将作业发送到JobTracker,该JobTracker位于Name节点中,它将此作业分配给TaskTracker,后者位于Data节点中.这里,查询执行MapReduce作业.

7.1元数据操作

同时在执行中,执行引擎可以使用Metastore执行元数据操作.

8获取结果

执行引擎从数据节点接收结果.

9发送结果

执行引擎将这些结果值发送给驱动程序.

10发送结果

驱动程序将结果发送到Hive接口.