Hadoop实战培训教程17_Hadoop集群环境搭建配置_Hive安装配置
Hadoop实战培训教程17_Hadoop集群环境搭建配置_Hive安装配置
1、Hive简介
Hive是一个构建在Hadoop上的数据仓库平台,其设计目标是使Hadoop上的数据操作与传统SQL结合,让熟悉SQL编程的开发人员能够轻松向Hadoop平台转移。Hive是Facebook的信息平台的重要组成部分,Facebook在2008年将其贡献给Apache,现已成为Apache旗下的一个独立子项目。
Hive是基于Hadoop文件系统上的数据仓库架构。它为数据仓库的管理提供了许多功能:数据ETL(抽取,转换和加载)工具,数据存储管理和大型数据集的查询与分析能力。同时Hive还定义了类SQL的语言——HiveQL,HiveQL允许用户进行和SQL相似的操作。HiveQL还允许开发人员方便地使用mapper和reducer操作,这样对MapReduce框架是一个强有力的支持。
由于Hadoop是批量处理系统,任务是高延迟性的,所以在任务提交和处理过程中会消耗一些时间成本。同样,即使Hive处理的数据集非常小(比如几百MB),在执行时也会出现延迟现象。这样,Hive的性能就不可能很好地和传统的Oracle数据库进行比较了。Hive不能提供数据排序和查询cache功能,也不提供在线事务处理,不提供实时的查询功能和记录级的更新,但Hive能更好地处理不变的大规模数据集(例如网络日志)上的批量任务。所以,Hive最大的价值是可扩展性(基于Hadoop平台,可以自动适应机器数目和数据量的动态变化)、可延展性(结合MapReduce和用户定义的函数库),并且拥有良好的容错性和低约束的数据输入格式。
1189
2、Hive体系结构
Hive本身建立在Hadoop的体系架构上,提供了一个SQL解析过程,并从外部接口中获取命令,以对用户指令进行解析。Hive可将外部命令解析成一个MapReduce可执行计划,并按照该计划生产MapReduce任务后交给Hadoop集群处理
主要分为以下几个部分:
用户接口
UI 用户提交查询和其他的操作。包含类似命令行接口CLI(Command Line Interface),Web UI 以及 JDBC/ODBC驱动。其中最常用的是 CLI,CLI 启动的时候,会同时启动一个 Hive 副本。Client 是 Hive 的客户端,用户连接至 Hive Server。在启动 Client 模式的时候,需要指出 Hive Server 所在节点,并且在该节点启动 Hive Server。 WUI 是通过浏览器访问 Hive。
备注:命令行接口CLI又称为Hive Shell。
Thrift服务器
当Hive以服务器模式运行时,可以作为Thrift服务器,供客户连接。
元数据存储(Metastore)
元数据存储此组件存储数据仓库里所有的各种表与分区的结构化信息,包括列与列类型信息,序列化器与反序列化器,从而能够读写hdfs中的数据,通常是存储在关系数据库如MySQL,Derby中。
解析器
解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。
Hadoop
Hive 的数据存储在 HDFS 中,利用 MapReduce 进行计算。