十四、Hive功能架构
2017-02-12 16:19
323 查看
一、Hive 能做什么,与 MapReduce 相比优势在哪里?
使用Hive是基于MapReduce的,在查询统计方面比MapReduce开发起来更简单。
1)Hive 是建立在Hadoop (HDFS/MR)上的用于管理和查询结果化/非结构化的数据仓库;
2)一种可以存储、查询和分析存储在Hadoop 中的大规模数据的机制;
3)Hive 定义了简单的类SQL 查询语言,称为HQL,它允许熟悉SQL 的用户查询数据;
4)允许用Java开发自定义的函数UDF来处理内置无法完成的复杂的分析工作;
5)Hive没有专门的数据格式(分隔符等可以自己灵活的设定);
二、为什么说 Hive 是 Hadoop 数据仓库?
Hive是构建在Hadoop之上的数据仓库
1)使用HQL作为查询接口;
2)使用HDFS作为存储;
3)使用MapReduce作为计算;
4)执行程序在Yarn上
三、Hive 架构,分为三个部分来理解
第一部分 用户接口Client端
包含CLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive)
第二部分 驱动器(Driver)、元数据(MetaStore)
驱动器(Driver)包含:解析器、编译器、优化器、执行器;
解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误(比如select中被判定为聚合的字段在group by中是否有出现);
编译器(Physical Plan):将AST编译生成逻辑执行计划;
优化器(Query Optimizer):对逻辑执行计划进行优化;
执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/TEZ/Spark;
元数据: MetaStore
元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;
默认存储在自带的derby数据库中,推荐使用采用MySQL存储。Metastore;
第三部分 Hadoop
使用HDFS进行存储,使用MapReduce进行计算。
使用Hive是基于MapReduce的,在查询统计方面比MapReduce开发起来更简单。
1)Hive 是建立在Hadoop (HDFS/MR)上的用于管理和查询结果化/非结构化的数据仓库;
2)一种可以存储、查询和分析存储在Hadoop 中的大规模数据的机制;
3)Hive 定义了简单的类SQL 查询语言,称为HQL,它允许熟悉SQL 的用户查询数据;
4)允许用Java开发自定义的函数UDF来处理内置无法完成的复杂的分析工作;
5)Hive没有专门的数据格式(分隔符等可以自己灵活的设定);
二、为什么说 Hive 是 Hadoop 数据仓库?
Hive是构建在Hadoop之上的数据仓库
1)使用HQL作为查询接口;
2)使用HDFS作为存储;
3)使用MapReduce作为计算;
4)执行程序在Yarn上
三、Hive 架构,分为三个部分来理解
第一部分 用户接口Client端
包含CLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive)
第二部分 驱动器(Driver)、元数据(MetaStore)
驱动器(Driver)包含:解析器、编译器、优化器、执行器;
解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误(比如select中被判定为聚合的字段在group by中是否有出现);
编译器(Physical Plan):将AST编译生成逻辑执行计划;
优化器(Query Optimizer):对逻辑执行计划进行优化;
执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/TEZ/Spark;
元数据: MetaStore
元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;
默认存储在自带的derby数据库中,推荐使用采用MySQL存储。Metastore;
第三部分 Hadoop
使用HDFS进行存储,使用MapReduce进行计算。
相关文章推荐
- Hive之架构 & 功能
- hive的功能架构
- Hive的安装部署、测试、功能架构、表数据加载、导出、查询
- 网络层架构设计与实战十四错误码和重连功能设计与实现
- Hadoop Hive概念学习系列之hive里的优化和高级功能(十四)
- Hive初识功能架构
- altas(ajax)控件(十四):为下拉控件添加快捷键查找功能的ListSearchExtender
- 综合应用WPF/WCF/WF/LINQ之十四:LINQ的ORM功能的代码简化能力
- 大社区型网站的架构总结之如何标示用户在使用哪个功能程序篇(草稿)
- MonoRail学习笔记十四:分页功能的使用
- 计算机网络——OSI与TCPIP体系架构、功能及协议
- altas(ajax)控件(十四):为下拉控件添加快捷键查找功能的ListSearchExtender
- ERP基本功能及架构图(转文)
- CISSP的成长之路(十四):系统架构和设计之保护机制
- Siebel CRM的整体架构及功能模块全面解读!
- 如何设计一个软件的架构,使它可以提供二次开发的功能?
- 收集的.Net文章(十四)--三层架构之我见 —— 不同于您见过的三层架构。
- Discuz!NT 聚合功能页面程序架构(重构到Facade与Observer模式)
- MonoRail学习笔记十四:分页功能的使用
- altas(ajax)控件(十四):为下拉控件添加快捷键查找功能的ListSearchExtender