apache hive的结构
当我们检查Apache Hive的元素时,我们可以在Hadoop分布式文件系统(HDFS)和MapReduce系统的顶部的底部看到底部。
在MapReduce的情况下,图表都有Hadoop 1和Hadoop 2组件。
使用Hadoop 1,Hive查询将转换为MapReduce代码并使用MapReduce V1(MRV1)基础架构执行,如JobTracker和TaskTracker。
使用Hadoop 2,纱线已经解耦了资源管理和从MapReduce框架调度。
Hive查询仍然可以转换为MapReduce代码并执行,现在使用MapReduce V2(MRV2)和纱线基础架构。
有一个名为Apache TEZ的开发的新框架,旨在提高批量样式查询的Hive性能,并支持较小的交互式(也称为实时)查询。
在撰写本文时,Apache Tez项目仍在孵化中,尚未具有生产就绪版本。
如果它有助于我们可视化所有作品如何合适,请将HDFS和MapReduce系统视为Apache Hadoop操作系统的一部分,具有Hive - 以及其他组件,例如HBase - 作为更高级别的函数或者应用程序。
(我们可以看到常见主题出现:HDFS提供存储,MapReduce提供了Hadoop生态系统内的更高级别函数的并行处理能力。
)
向上移动图表,我们可以找到编译,优化和执行HiveQL的Hive驱动程序。
蜂窝司机可以选择在本地执行HiveQL语句和命令或者产生MapReduce作业,具体取决于手头的任务。
Hive Driver将表元数据存储在Metastore及其数据库中。
我们可能对RDBMSS的世界有一些熟悉的SQL和关系数据库模型。
表或者关系由垂直列和水平行组成。
存储小区的行和列相交。
如果我们不熟悉SQL和关系数据库模型,则可以使用我们喜欢的搜索引擎找到有用的学习来源。
默认情况下,Hive包括在所谓的嵌入模式下配置的Apache Derby RDBMS。
嵌入式模式意味着Hive驱动程序,Metastore和Apache Derby都在一个Java虚拟机(JVM)中运行。
此配置对于学习目的很好,但嵌入式模式只能支持单个Hive会话,因此它通常不会在多用户生产环境中使用。
存在另外两种模式 - 本地和远程 - 可以更好地支持生产环境中的多个Hive会话。
此外,我们可以配置符合Java数据库连接(JDBC)应用程序编程接口(API)套件的任何RDBMS。
(这里的例子包括MySQL和DB2.
)
应用程序支持的关键是Hive Thrift Server,它使得丰富的客户端可以访问Hive子系统。
包含开源大鼠SQL客户端作为示例。
要点是任何兼容JDBC的应用程序都可以通过捆绑的JDBC驱动程序访问Hive。
相同的陈述适用于符合开放数据库连接(ODBC)的客户端 - 例如,Unixodbc和ISQL实用程序通常与Linux捆绑在一起,可以从远程Linux客户端访问Hive。
此外,如果我们使用Microsoft Excel,我们将很高兴地知道我们可以在客户端系统上安装Microsoft ODBC驱动程序后访问Hive。
最后,如果我们需要从Java(例如PHP或者Python以外的编程语言)访问Hive,Apache Trevift是答案。
Apache Trift客户端通过Hive Thrift服务器连接到Hive,就像JDBC和ODBC客户端一样。
要继续使用Hive Architecture绘图,请注意,Hive包括命令行界面(CLI),在那里我们可以使用Linux终端窗口将查询和管理命令直接发出给Hive驱动程序。
如果图形方法更速度,还有一个方便的Web界面,以便我们可以通过我们喜欢的浏览器访问Hive管理的表和数据。
还有另一个称为色调的Web浏览器技术,提供了一个图形用户界面(GUI)到Apache Hive。
有些Hadoop用户喜欢在他们的处置而不是只有命令行界面(CLI)的GUI。
随着HIVE,HUE支持其他关键的Hadoop技术以及HDFS,MapReduce/Yarn,HBase,Zookeeper,Oozie,Pig和Sqoop。
你喜欢Hue's Apache Hive Gui的名字 - 它被称为Beeswax。