`
Yinny
  • 浏览: 295765 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

hive原理(未完。。)

阅读更多
hive就是一个将hiveql(其实是sql的子集或者说一点点的超集)语句转化为一系列可以在Hadoop集群上运行的MR的工具,通常在客户端执行 hive 命令(淘宝有ide,所以不用安装hive啦 )然后输入 SQL 语句后, hive 将 SQL 语句生成多个 MR 的 job ,然后将这些 job 提交给 hadoop 进行执行,完成后,再把结果放入到 hdfs 或者本地的临时文件中。
如下图



以下图片摘自淘宝周忱《hive原理》的技术文档







解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。
Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from tbl 不会生成 MapRedcue 任务)。

一条sql语句的结构:
一条sql主要包括,insert子句,select子句,from子句,groupby子句,以及其他的条件子句,如limit,orderby等,还有join和union等操作符。其中的from子句,一般可以直接跟一个表,多个表(笛卡尔积等同于join),或者一个子查询,或者由join或union连接的两个表,或者两个子查询。包含子查询则意味着sql语句自身会包含这一些递归的操作。

hive对一条sql执行的过程:
一条sql语句(以查询sql为例)的目的最终是将一个表或者若干个表中的所有行数据,一条一条的进行处理,最终生成一组目标记录。为了实现这样的目的,首先将处理过程分解为若干个算子,将初始的表数据记录依次通过这些算子来计算,最终得出结果。
例如:select a from tbl where b>1 order by c,对于这条sql,首先需要一个ts(table scan)算子,从表中读出数据,然后读出的数据经过一个fil(filter)算子,过滤那些不满足条件b>1的数据,最后经过一个fetch算 子,将正确的数据返回。对于任意复杂的sql语句都可以生成这样的算子树进行处理。
hive的原理还是比较复杂,一点点学习中,一口吃不成胖子 。。。
  • 大小: 40.5 KB
  • 大小: 26.1 KB
  • 大小: 27.9 KB
  • 大小: 37.5 KB
  • 大小: 38.7 KB
分享到:
评论
1 楼 秦时明月黑 2014-09-01  
你是做大数据开发还是java研发

相关推荐

    Hive原理与实现

    ### Hive原理与实现 #### 一、Hive的概述与意义 Hive 是一个构建于 Hadoop 之上的数据仓库工具,它提供了类 SQL 的查询语言(HQL),使得用户可以方便地处理存储在 Hadoop 分布式文件系统(HDFS)中的大规模数据集...

    Hive原理及使用笔记(精华版)

    Hive的核心原理是将HiveQL查询语句转换为一个或多个MapReduce作业来执行。Hive处理的数据存储在Hadoop的分布式文件系统(HDFS)中,分析数据时底层实现依赖于MapReduce,而执行程序则在YARN(Yet Another Resource ...

    hive原理1介绍

    ### Hive原理介绍 #### Hive概述 Hive是一个构建在Hadoop之上的数据仓库工具,它主要解决了Hadoop中数据管理的复杂性问题。通过将结构化的数据文件映射为一张数据库表,Hive提供了SQL查询的功能,使得数据分析人员...

    hive原理及查询优化

    学习掌握hive原理及查询优化的必备之书学习掌握hive原理及查询优化的必备之书

    hive的原理分析

    这里详细的介绍了hive的原理,形象的分析了hive的原理,流程

    用于Hive原理与技术开发的数据集之stocks.csv

    用于Hive原理与技术开发的数据集

    大数据hive实现原理.zip_hive中怎么更新数据

    本篇将深入解析Hive的实现原理,特别是如何在Hive中更新数据。 首先,我们来了解Hive的核心概念。Hive是一个基于Hadoop的数据仓库工具,它将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。Hive的查询...

    HiveSQL编译原理

    HiveSQL编译原理是大数据处理领域中的一个重要概念,它主要涉及到如何将用户提交的SQL语句转换为可执行的MapReduce或者Tez任务。在Hadoop生态系统中,Hive作为一个基于HDFS的数据仓库工具,提供了对大规模数据集进行...

    hive实现原理

    hive 分布式实现原理。hive是大数据平台上构建数据仓储必须要用的。

    Hive优化以及执行原理

    总的来说,理解Hive的优化策略和执行原理对于提升查询性能至关重要。通过对SQL语句的精心设计和对集群配置的适当调整,可以有效地处理大规模数据查询。同时,随着Hive与其他计算框架如Spark的融合,其执行效率和灵活...

    大规模数据查询Hive及Impala技术原理及架构.pdf

    ### 大规模数据查询Hive及Impala技术原理及架构 #### 第一部分:Hive数据查询分析技术和实例介绍 **一、Hive简介** Hive 是一个基于 Hadoop 的数据仓库工具,它允许用户轻松地将结构化数据文件映射为表,并利用 ...

    Hive 优化以及执行原理

    本篇将深入探讨Hive的优化策略及其执行原理。 一、Hive 优化策略 1. **表分区**:分区是Hive优化的基础,通过将大表划分为小的逻辑部分,可以显著提高查询速度。合理的分区策略应基于查询中常用的过滤条件,例如...

    用于Hive原理与技术开发的数据集之dividends.csv

    用于Hive原理与技术开发的数据集

    龙战于野大数据MR原理启动hive查询表分区.docx

    Hive查询表分区的MR原理启动详解 Hive是一款基于Hadoop的数据仓库工具,主要用于处理结构化和半结构化的数据。MR(MapReduce)是Hadoop中的一种编程模型,用于处理大规模数据。在Hive中,MR原理启动是指使用...

    HiveSQL编译原理.pdf

    Hive的核心原理讲解,主要讲述Hive解析编译SQL语句,生成执行计划的过程。文档涉及关键代码说明。

    Hive SQL 编译过程详解

    本文将深入探讨Hive SQL如何被编译成MapReduce任务,以及在这个过程中涉及到的关键原理。 1. MapReduce实现基本SQL操作的原理: - **Join的实现原理**:在Hive中,Join操作通常通过MapReduce来实现。例如,在一个...

    Hive 简明教程.pdf

    第二部分:如果想能写出高效的Hive 语句,必须要先了解Hive 执行原理,然后掌握一系列 的优化方法。所以第二部分主要内容是Hive 原理与优化。 第三部分:讲解Hive 的一系列技术细节,以满足技术人员想了解技术细节的...

    Hive总结.docx

    【Hive原理】 Hive是基于Hadoop平台的数据仓库解决方案,它主要解决了在大数据场景下,业务人员和数据科学家能够通过熟悉的SQL语言进行数据分析的问题。Hive并不存储数据,而是依赖于HDFS进行数据存储,并利用...

    hive客户端安装_hive客户端安装_hive_

    在大数据处理领域,Hive是一个非常重要的工具,它提供了一个基于Hadoop的数据仓库基础设施,用于数据查询、分析和管理大规模数据集。本教程将详细讲解如何在Linux环境下安装Hive客户端,以便进行数据操作和分析。 ...

Global site tag (gtag.js) - Google Analytics