柚子快报邀请码778899分享:Hive学习

http://yzkb.51969.com/

一.Hive概述

Apache Hive是一款分布式SQL计算的工具,主要功能是将SQL语句翻译成MapReduce程序运行

传统MapReduce开发:写MR代码->得到结果使用Hive开发:写SQL->得到结果底层都是MR在运行,但是使用层面上更加简单

使用Hadoop MapReduce直接处理数据所面临的问题

人员学习成本太高 需要掌握Java,Python等编程语言MapReduce实现复杂查询逻辑开发难度太大

使用Hive处理数据的好处

操作接口采用类SQL语法,提供快速开发的能力(简单,容易上手)底层执行MapReduce,可以完成分布式海量数据的SQL处理

二.Hive基础架构

Hive架构图

1. 用户接口 CLI(command-line interface)、JDBC/ODBC(jdbc 访问 hive)、WEBUI(浏览器访问 hive)

其中, CLI 即 Shell 终端命令行,它是最常用的方式。

JDBC / ODBC 是 Hive 的 Java 实现,与使用传统数据库 JDBC 的方式类似, WebUI 指的是通过测览器访问 Hive 。

2. 跨语言服务( Thrift Server ) Thrift 是 Facebook 开发的一个软件框架,可以用来进行可扩展且跨语言的服务。

Hive 集成了该服务,能让不同的编程语言调用 Hive 的接口。

3. 底层的驱动引擎(Driver) 主要包含:

解析器( SQL Parser ):将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第 三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、SQL 语义是否有误。编译器( Compiler ):将 AST 编译生成逻辑执行计划。优化器( Optimizer ):对逻辑执行计划进行优化。执行器( Executor ):把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来 说,就是 MR/Spark。

它们用于完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成,生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行。

Hive 的底层计算引擎可选为:MapReduce,Spark,Tez

4. 元数据存储系统( Metastore )

 Metastore:即元数据存储服务,作用是:可无端链接metastore服务,metastore再去链接MySQL等数据库来存取元数据。 Hive 中的元数据通常包含表名、列、分区及其相关属性,表数据所在目录的位置信息, Metastore 默认存在自带的 Derby 数据库中。

Hive 通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的 Driver, 结合元数据(MetaStore),将这些指令翻译成 MapReduce,提交到 Hadoop 中执行,最后,将 执行返回的结果输出到用户交互接口。

三.Hive部署

Hive元数据存储的三种模式

 内嵌模式,使用内嵌的Derby数据库存储元数据,是Hive最简单的部署方式。嵌入模式下的Hive不支持多会话连接,不适合生产环境,只适合测试环境。本地模式,使用本地独立数据库存储元数据,这里的独立数据库通常使用MySQL数据库。本地模式部署的Hive支持元数据共享,并且支持多会话连接。远程模式(推荐),远程模式与本地模式一样,同样是使用独立数据库存储元数据。不同的是,远程模式使用的是远端的独立数据库,而本地模式使用的是本地独立数据库。远程模式主要应用于Hive客户端较多的情况。

四.Hive初体验

五.Hive客户端

柚子快报邀请码778899分享:Hive学习

http://yzkb.51969.com/

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: