精华内容
下载资源
问答
  • Hive原理

    2017-07-02 21:55:15
    第一部分:Hive原理 为什么要学习Hive的原理 •一条Hive HQL将转换为多少道MR作业 •怎么样加快Hive的执行速度 •编写Hive HQL的时候我们可以做什么 •Hive 怎么将HQL转换为MR作业 •Hive会采用什么...

    转载:http://sishuok.com/forum/blogPost/list/6220.html


    第一部分:Hive原理

    为什么要学习Hive的原理
    •一条Hive HQL将转换为多少道MR作业
    •怎么样加快Hive的执行速度
    •编写Hive HQL的时候我们可以做什么
    •Hive 怎么将HQL转换为MR作业
    •Hive会采用什么样的优化方式
    Hive架构&执行流程
     
    Hive执行流程
    •编译器将一个Hive QL转换操作符
    •操作符是Hive的最小的处理单元
    •每个操作符代表HDFS的一个操作或者一道MapReduce作业
    Operator
    •Operator都是hive定义的一个处理过程
    •Operator都定义有:
    •protected List <Operator<?  extends Serializable >> childOperators; 
    •protected List <Operator<?  extends Serializable >> parentOperators; 
    •protected boolean done; // 初始化值为false
    •所有的操作构成了 Operator图,hive正是基于这些图关系来处理诸如limit, group by, join等操作
     
    Hive执行流程
    操作符
    描述
    TableScanOperator
    扫描hive表数据
    ReduceSinkOperator
    创建将发送到Reducer端的<Key,Value>对
    JoinOperator
    Join两份数据
    SelectOperator
    选择输出列
    FileSinkOperator
    建立结果数据,输出至文件
    FilterOperator
    过滤输入数据
    GroupByOperator
    GroupBy语句
    MapJoinOperator
    /*+mapjoin(t) */
    LimitOperator
    Limit语句
    UnionOperator
    Union语句
    •Hive通过ExecMapper和ExecReducer执行MapReduce任务
    •在执行MapReduce时有两种模式
    •本地模式
    •分布式模式
    ANTLR词法语法分析工具
    •ANTLR—Another Tool for Language Recognition
    •ANTLR 是开源的
    •为包括Java,C++,C#在内的语言提供了一个通过语法描述来自动构造自定义语言的识别器(recognizer),编译器(parser)和解释器(translator)的框架
    •Hibernate就是使用了该分析工具
     
    Hive编译器
     
     
     
     
    编译流程
     
    第二部分:一条HQL引发的思考
    案例HQL
    •select key from test_limit limit 1
    •Stage-1
    •TableScan Operator>Select Operator-> Limit->File Output Operator
    •Stage-0
    •Fetch Operator
    •读取文件
    MapperInputFormat
    •该hive MR作业中指定的mapper是:
    •mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
    •input format是:
    •hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 
    •该hive MR作业中指定的mapper是:
    •mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
    •input format是:
    •hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 
     

    展开全文
  • hive原理

    2018-12-10 17:39:00
    什么是Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 Hive架构图    Jobtracker是hadoop1.x中的组件,它的功能相当于: Resourcemanager+...

    什么是Hive

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

    Hive架构图

     

      Jobtrackerhadoop1.x中的组件,它的功能相当于: Resourcemanager+AppMaster

      TaskTracker 相当于:  Nodemanager  +  yarnchild

    Hive的特点

    1. 可扩展

    Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。

    2.延展性

    Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

    3.容错性

    良好的容错性,节点出现问题SQL仍可完成执行。

     

    基本组成

    • 用户接口包括 CLIJDBC/ODBCWebGUI
    • 元数据存储通常是存储在关系数据库如 mysql , derby
    • 解释器、编译器、优化器、执行器

    各组件的基本功能

    • 用户接口主要由三个:CLIJDBC/ODBCWebGUI。其中,CLIshell命令行;JDBC/ODBCHiveJAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive
    • 元数据存储Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等
    •  解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行

    HiveHadoop关系 

    Hive利用HDFS存储数据,利用MapReduce查询数据

    Hive数据类型

    - 数据类型   

    • TINYINT   
    • SMALLINT   
    • INT   
    • BIGINT   
    • BOOLEAN   
    • FLOAT   
    • DOUBLE   
    • STRING   
    • BINARY(Hive 0.8.0以上才可用)   
    • TIMESTAMP(Hive 0.8.0以上才可用)

    – 复合类型

    • Arrays:ARRAY<data_type>
    • Maps:MAP<primitive_type, data_type>
    • Structs:STRUCT<col_name: data_type[COMMENT col_comment],……>
    • Union:UNIONTYPE<data_type, data_type,……>

    hive数据存储

    1、Hive中所有的数据都存储在 HDFS 没有专门的数据存储格式(可支持TextSequenceFileParquetFileRCFILE等)

    2只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。

    3Hive 中包含以下数据模型:DBTableExternal TablePartitionBucket

    • db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹
    • table:在hdfs中表现所属db目录下一个文件夹(普通表:删除表后, hdfs上的文件都删了)
    • external table:外部表, table类似,不过其数据存放位置可以在任意指定路径(External外部表删除后, hdfs上的文件没有删除, 只是把文件删除了)
    • partition:在hdfs中表现为table目录下的子目录
    • bucket:桶, hdfs中表现为同一个表目录下根据hash散列之后的多个文件, 会根据不同的文件把数据放到不同的文件中 

    转载于:https://www.cnblogs.com/dummyly/p/10097795.html

    展开全文
  • Hive原理与实现

    2017-01-10 09:56:51
    Hive原理与实现 详细介绍了hive的原理
  • hive原理及查询优化

    2018-09-30 15:02:10
    学习掌握hive原理及查询优化的必备之书学习掌握hive原理及查询优化的必备之书
  • Hive学习1:Hive原理

    千次阅读 2017-10-25 13:06:38
    Hive学习1:Hive原理

    Hive最终被编译成MapReduce,通过SQL执行MapReduce

    1.产生原因Why

    • MapReduce写起来复杂,Hive简单
    • Hive学习成本低,方便非Java编程者对hdfs的数据做MapReduce操作。便于推广,

    Hive是什么What(分析HDFS上的结构化数据)

    • 是数据仓库(不是交互式的,一般存储历史数据,反范式,面向分析) 范式数据库?解决数据冗余
    • 解释器、编译器、优化器等
    • Hive运行时,元数据(表、数据库、分区、字段的定义和属性等)存储在关系型数据库(Mysql等,默认DB)里面(考虑到性能问题,访问读取多)

    Hive架构

    • 用户接口主要有三个:CLI、Client、WUI。最常用CLI。
      - CLI启动时,会同时生成一个Hive副本。
      - Client是Hive的客户端,用户连接至Hive Server。在启动Client时,需要指出Hive Server的所在节点,并且在该节点上启动Hive Server。
      - WUI是通过浏览器访问Hive
    • Hive将元数据存储在关系数据库中:MataStore。如Mysql、derby。
      Hive元数据包括:表的名字、列和分区及其属性。表的属性(是否外部表),表的数据所在目录。
    • 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由MapReduce调用。
    • Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成。(包含* 等的直接查询,不会生成MapReduce任务)

    这里写图片描述
    注:在hadoop2.x之后,Job Tracker 由YARN的Source Manager实现。
    这里写图片描述

    Hive编译解析结果:执行计划Operator

    • 编译器将一个HQL转为操作符(最小的执行单元:Operator:树状结构)
    • 操作符是Hive最小的处理单元
    • 每个操作符代表HDFS的一个操作或者一道MapReduce作业
      这里写图片描述
    antlr词法语法分析工具解析HQL

    这里写图片描述

    Hive三种模式

    • local模式(本地derby):数据库用内置的Derby,即客户端和数据库在同一个服务器上。一般用于单元测试
      这里写图片描述
    • 单用户模式:客户端单独一台服务器,数据库单独一台服务器,Mysql Hive CLI-> Mysql
      限制:多台Hive服务器不能同时对同一元数据(Mysql)进行访问。
      这里写图片描述
    • 多用户模式(远程服务器模式:项目上线用这种模式): Hive CLI->MataStore Server->Mysql
      用于非Java客户端访问元数据,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库
      Remote一体:MataStore Client和MataStore Server放在一起,类似于单用户模式
      Remote分开
      这里写图片描述

    可以看出划分方式:划分方式:元数据存储位置和管理

    下一节:Hive搭建
    http://blog.csdn.net/qq_36743482/article/details/78380141

    展开全文
  • Hive原理分析

    2021-01-27 11:31:20
    在开始了解hive之前,需要了解一些知识或者概念,可以更好的理解hive实现原理 GoogleMapReduce是Google基于函数式编程map(映射),reduce(化简)提出的一种分布式编程模型,在模型中隐藏了分布式集群的实现细节,...
  • Hive原理、语法笔记简介(还有案例帮助记忆),可以当作字典查询
  • 深入浅出学Hive——Hive原理

    千次阅读 2016-06-03 10:36:21
    目录: 初始Hive Hive安装与配置 Hive 内建操作符与函数开发 Hive JDBC hive参数 Hive 高级编程 Hive QL Hive Shell 基本操作 hive 优化 ...第一部分:Hive原理 为什么要学习Hive的原理
    为什么要学习Hive的原理
    •一条Hive HQL将转换为多少道MR作业
    •怎么样加快Hive的执行速度
    •编写Hive HQL的时候我们可以做什么
    •Hive 怎么将HQL转换为MR作业
    •Hive会采用什么样的优化方式
    Hive架构&执行流程
     
    Hive执行流程
    •编译器将一个Hive QL转换操作符
    •操作符是Hive的最小的处理单元
    •每个操作符代表HDFS的一个操作或者一道MapReduce作业
    Operator
    •Operator都是hive定义的一个处理过程
    •Operator都定义有:
    •protected List  <Operator<?  extends Serializable  >> childOperators; 
    •protected List  <Operator<?  extends Serializable  >> parentOperators; 
    •protected boolean done; // 初始化值为false
    •所有的操作构成了 Operator图,hive正是基于这些图关系来处理诸如limit, group by, join等操作
     
    Hive执行流程
    操作符
    描述
    TableScanOperator
    扫描hive表数据
    ReduceSinkOperator
    创建将发送到Reducer端的<Key,Value>对
    JoinOperator
    Join两份数据
    SelectOperator
    选择输出列
    FileSinkOperator
    建立结果数据,输出至文件
    FilterOperator
    过滤输入数据
    GroupByOperator
    GroupBy语句
    MapJoinOperator
    /*+mapjoin(t) */
    LimitOperator
    Limit语句
    UnionOperator
    Union语句
    •Hive通过ExecMapper和ExecReducer执行MapReduce任务
    •在执行MapReduce时有两种模式
    •本地模式
    •分布式模式
    ANTLR词法语法分析工具
    •ANTLR—Another Tool for Language Recognition
    •ANTLR 是开源的
    •为包括Java,C++,C#在内的语言提供了一个通过语法描述来自动构造自定义语言的识别器(recognizer),编译器(parser)和解释器(translator)的框架
    •Hibernate就是使用了该分析工具
     
    Hive编译器
     
     
     
     
    编译流程
     
    第二部分:一条HQL引发的思考
    案例HQL
    •select key from test_limit  limit 1
    •Stage-1
    •TableScan Operator>Select Operator-> Limit->File Output Operator
    •Stage-0
    •Fetch Operator
    •读取文件
    MapperInputFormat
    •该hive MR作业中指定的mapper是:
    •mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
    •input format是:
    •hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 
    •该hive MR作业中指定的mapper是:
    •mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
    •input format是:
    •hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 
     
     转载请注明出处【  http://sishuok.com/forum/blogPost/list/0/6232.html
    展开全文
  • Hive原理与工作机制

    2020-11-19 14:29:01
    Hive原理与工作机制 目录Hive原理与工作机制一、Hive是什么?二、Hive解决了怎样的问题三、HIve相关组件1.服务端组件2.客户端组件四、hive查询执行过程 一、Hive是什么? hive是基于Hadoop的一个数据仓库工具,用来...
  • hive 原理与安装

    2018-08-12 17:39:05
    hive 原理与安装 hive 是把类似SQL的语名变成相关的mapreduce任务进行计算得到结果,对于结构化数据,可以不用写mapreduce程序就可以进行大数统计分析. hive 使用mysql、Derby作为hive元数据的存储...
  • hive原理和调优

    千次阅读 2018-07-10 22:00:48
    hive原理Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL的查询功能。其基本原理是将HQL语句自动转换成MapReduce任务。Hive建立在Hadoop的其它组件之上:依赖于HDFS进行...
  • 用于Hive原理与技术开发的数据集
  • 用于Hive原理与技术开发的数据集
  • Hive原理及架构图5. HQL的基本操作(Hive中的SQL)6. Hive内部表/外部表/分区 【Task6】Hive原理及其使用 安装MySQL、Hive 采用MySQL作为hive元数据库 Hive与传统RDBMS的区别 HIve原理及架构图 HQL的基本操作(Hive...
  • Hive原理解析(个人)

    2018-10-09 15:31:41
    Hive原理解析 1.什么是Hive? hive是一个sql工具; 它能接收用户输入的sql语句,然后把它翻译成mapreduce程序对HDFS上的数据进行查询、运算,并返回结果,或将结果存入HDFS; 2.Hive的关键工作机制 核心点: HIVE...
  • Hive原理详解

    千次阅读 2018-10-25 18:17:03
    Hive原理4.1 Hive简介5.Hive体系架构5.1 Hive的基本组成5.2 各组件的基本功能5.3 Hive和Hadoop的关系5.4 Hive的数据管理5.4.1 Hive中的内部表和外部表5.4.2 Hive中的临时表5.4.3 Hive中的分区表5.4.4 Hive中的分...
  • hive原理学习

    2013-06-26 21:25:57
    1. hive原理图: 2.hive执行过程 3.执行过程解析 (1)从main()开始,初始化Hive环境变量,获取客户端提供的string或者file (2)将代码送入processLine(cmd)  读入cmd:‘;’之前的所有字符...
  • hive原理1介绍

    2018-10-09 11:15:26
    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并 提供完整的sql查询功能。 Hive中包含以下数据模型:Table内部表,External Table外部表,Partition分区,Bucket桶。Hive默认...
  • hive原理和体系图解

    2016-08-11 18:37:00
    A:hive原理 B:hive体系结构 转载于:https://www.cnblogs.com/Xmingzi/p/5762163.html
  • Hive 原理研究

    2021-03-03 20:18:07
    Hive 的存储格式 Hive存储格式
  • Hive原理及查询优化(杨卓荦)

    千次阅读 2018-05-25 16:49:42
    今天,我想和大家简单介绍一下Hive原理和查询优化。由于时间有限,很多内容简要介绍一下,欢迎私下多交流。Hive是构建在Hadoop上的数据仓库软件框架,支持使用SQL来读,写和管理大规模数据集合。Hive入门非常简单,...
  • 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用及JDBC连接 Hive的工作原理简单来说就是一个查询引擎 先来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,234
精华内容 11,293
关键字:

hive原理