简介>Hive是一个构建在Hadoop上的数据仓库平台,其设计目标是使Hadoop上的数据操作与传统SQL结合,让熟悉SQL编程的开发人员能够向Hadoop平台迁移。Hive可以在HDFS上构建数据仓库来存储结构化的数据,这些数据来源于HDFS上的原始数据,Hive提供了类似SQL的查询语言HiveQL可以执行查询,变换数据等操作。通过解析,HiveQL语言在底层被转化为相应的MapReduce操作
Hive 是一个构建在Hadoop 上的数据仓库平台,其设计目标是使 Hadoop上的数据操作与传统SQL结合,让熟悉SQL编程的开发人员 能够向Hadoop平台迁移。 Hive可以在HDFS上构建数据仓库来存储结构化的数据,这些数据来 源于HDFS上的原始数据, Hive提供了类似SQL的查询语言HiveQL, 可以执行查询,变换数据等操作。通过解析,HiveQL语言在底层被 转化为相应的MapReduce操作
Hive的组成Hive的体系结构JDBCWebCLIODBCGUIThriftServerMetastoreDriver(Compiler;HiveOptimizer,Executor)NameJobNodeTrackerHadoop
◦ Hive的体系结构 Hadoop H Job Tracker Name Node Hive Driver (Compiler, Optimizer, Executor) Thrift Server CLI JDBC/ ODBC Web GUI Metastore
Hive的组成Hive相关组件:。外部接口:Hive提供了例如命令行(CLI)、Web界面等用户接口,还提供了应用程序接口(API)例如JDBC,ODBC等。。Thrift服务器:HiveThrift服务器是一种跨语言服务的可伸缩软件框架。它结合律功能强大的软件堆栈的代码生成引擎,可以无缝的与C++、C#、Java、Python、PHP和Ruby结合。Thrift允许用户简单地定义文件中的数据类型和服务接口,编译器生成代码来实现RPC客户端和服务器之间的通信。Hive内部集成了Thrift服务,支持在多种语言中运行Hive命令,使客户端可以跨平台连接Hive
Hive相关组件: ◦ 外部接口:Hive提供了例如命令行(CLI)、Web界面等用户接口, 还提供了应用程序接口(API)例如 JDBC,ODBC等。 ◦ Thrift服务器:Hive Thrift服务器是一种跨语言服务的可伸缩软件 框架。它结合律功能强大的软件堆栈的代码生成引擎,可以无缝的 与C++、C#、Java、Python、PHP和Ruby结合。Thrift允许用户 简单地定义文件中的数据类型和服务接口,编译器生成代码来实现 RPC客户端和服务器之间的通信。 Hive内部集成了Thrift服务,支持在多种语言中运行Hive命令,使 客户端可以跨平台连接Hive
Hive的组成Hive相关组件:。解析器(Driver):包括解释器,编译器,优化器,执行器,通过这一系列对HiveOL香询语句的处理,最后生成香询计划。解析器管理着HiveOL语句在编译,优化和执行时的生命周期。当接收到一个HiveQL查询语句时,解析器会创建一个相对的句柄,这个句柄被用来追踪执行时间,输出行数等数据。。Hadoop:数据仓库和查询计划存储在HDFS上,计算过程由MapReduce执行
Hive相关组件: ◦ 解析器(Driver):包括解释器,编译器,优化器,执行器,通过这 一系列对HiveQL查询语句的处理,最后生成查询计划。解析器管 理着HiveQL语句在编译,优化和执行时的生命周期。当接收到一 个HiveQL查询语句时,解析器会创建一个相对的句柄,这个句柄 被用来追踪执行时间,输出行数等数据。 ◦ Hadoop:数据仓库和查询计划存储在HDFS上,计算过程由 MapReduce执行
Hive的组成Hive相关组件:元数据库(Metastore):管理系统目录,通常存储在关系数据库如MySQL,Derby中。Hive所有其他的组件都会与它进行交互。Hive的元数据中保存了表的属性和服务信息,为查询操作提供依据默认的元数据库是内部的Derby,这种情况下metastore和其他Hive服务运行在同一个Java虚拟机里,只能允许建立单个会话,要实现多用户多会话支持,需要配置一个独立的元数据库
Hive相关组件: ◦ 元数据库(Metastore):管理系统目录,通常存储在关系数据库如 MySQL,Derby中。Hive所有其他的组件都会与它进行交互。 Hive的元数据中保存了表的属性和服务信息,为查询操作提供依据, 默认的元数据库是内部的Derby,这种情况下metastore和其他 Hive服务运行在同一个Java虚拟机里,只能允许建立单个会话,要 实现多用户多会话支持,需要配置一个独立的元数据库