Apache Hive架构 - 在通往工业4.0的道路上,公司正试图尽可能地记录所有的业务流程,以便随后通过分析来优化它们。
数据仓库系统提供中央数据管理。因此,只存在一个数据真相。除了持久性之外,这些信息系统还负责分类、预处理、翻译和数据分析。
如果你想知道更多关于什么是数据仓库系统,请查看我们关于这个主题的文章 。
什么是Apache Hive
Hive是一个数据仓库软件项目,是Apache的一部分,Apache是一个开源和免费的网络服务器软件。在这里了解更多关于Apache的信息。
它建立在大数据框架Apache Hadoop之上,于2010年发布。从那时起,它就被一个勤劳的社区不断改进和扩展。
Hive使用的查询语言,称为HiveQL,是基于SQL的,允许对非结构化数据进行查询、聚合和分析。Hive并不像关系型数据库那样采用写模式(SoW)的方式工作,而是采用所谓的读模式(SoR)方式。
Hive的最大优势是什么?
来自关系型数据库的数据被自动转换为MapReduce或Tez或Spark作业。Hadoopclusters以MapReduce为基础,这是谷歌在计算机集群上进行并发计算的编程模型,可以用Apache Spark创建强大的基于流的数据分析管道。这确保了与Apache生态系统的完全兼容,可以根据应用的需要进行模块化定制。
Hive的另一个优点是,表与关系数据库中的表相似。使用HiveQL对数据进行查询。这是一种类似于SQL的声明式语言。
HiveQL允许多个用户同时查询数据。Hive支持各种数据格式,并提供轻量级但强大的翻译功能。
对于数据分析,可以编写自定义的MapReduce流程,并在集群上并行运行,以获得高性能。
Apache Hive 架构
基本上,Hive的架构可以分为三个核心区域。Hive通过客户端区域与其他应用程序进行通信。然后通过服务区执行整合。在最后一层,Hive存储元数据,例如,或通过Hadoop计算数据。
Hive客户端
Apache Hive可以通过不同的客户端进行访问。除了开放数据库连接(ODBC),一个由微软创建的基于SQL的应用编程接口(API),还有一个是Java数据库连接(JDBC),这是一个由Sun Microsystems开发的基于SQL的API,允许Java应用程序使用SQL来访问数据库。Hive还提供了一个高性能的Apache 漂流连接。
Hive服务
Hive服务的核心和中央控制是所谓的 驱动程序.它接收
HiveQL命令并负责针对Hadoop系统执行这些命令。它通常包括一个将HiveQL请求翻译成抽象语法和可执行任务的编译器,一个聚合、拆分和优化以获得更好的性能和可扩展性的优化器,以及一个与Hadoop的作业跟踪器互动并将任务传递给系统执行的执行器。
Apache Hive还提供了直接向驱动提交这些任务的能力。使用命令行和用户界面 (CLI + UI),就可以直接影响进程。
关于持久性关系实体的元数据,即数据库、表、列和分区是由 元存储.
Hive存储和计算机
元数据被存储在这里的持久化。查询的结果和加载到表中的数据被存储在Hadoop集群的HDFS上。