`
085567
  • 浏览: 220194 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hiveQL 优化

    博客分类:
  • hive
阅读更多

1.当hive执行join内存溢出时,可以修改hive的配置文件hive-site.xml,增大内存,如下: mapred.child.java.opts -Xmx 1024m

2.hive默认建表时的路径也可以在hive-site.xml里配置,如下: hive.metastore.warehouse.dir value >/user/hive/warehouse description >location of default database for the warehouse

3.执行join操作的时候,尽量把小表放前面,大表放前面可能会因为内存溢出而出错

4.对分区表进行操作需要对分区进行过滤(如:ds=$yday)。 特别是在JOIN操作的时候,分区过滤(如:ds=$yday)需要放到 ON语句 或子查询 里面。不能放到ON后面的WHERE里,这样会扫描所有表,最后才判断分区。也就是说程序会先执行JOIN操作,才会执行最后的WHERE操作。

5.在JOIN操作中,后面被连续JOIN且同一字段,只会执行一个mapreduce操作。 SELECT * FROM a LEFT OUTER JOIN b ON a.t=b.t LEFT OUTER JOIN c ON a.t=c.t; 推荐的 SELECT * FROM a LEFT OUTER JOIN b ON a.t=b.t LEFT OUTER JOIN c ON b.t=c.t; 效率低下的

6.当一个大表和一个很小的表进行JOIN操作的时候,使用MAPJOIN操作,这样会把小表读入内存进行JOIN,只需要一个map操作JOIN就完成了 select /*+ mapjoin(a)*/ a.c1,b.c2,b.c3 from a join b on a.c4=b.c4;

7.通过设置hive.merge.mapfiles可以关闭hive对于扫描表的优化,但有时候会提高效率。默认值为true。可以视情况设置:只含有SELECT的语句 或 MAPJOIN 推荐使用

8.ALTER TABLE a SET SERDEPROPERTIES('serialization.null.format' = ''); 可以使结果表不出现\N字符串,而用空串代替

分享到:
评论

相关推荐

    HiveQL源码

    HiveQL源码的分析对于理解其内部工作原理、优化查询性能以及开发自定义功能至关重要。 在深入源码之前,我们需要了解一些基本概念。Hive基于Hadoop生态系统,将结构化的数据文件映射为一张数据库表,并提供SQL查询...

    Hive体系架构、安装与HiveQL

    2. Hive驱动(Driver):处理用户发送的HiveQL语句,进行语法解析、编译、优化等处理。 3. 元数据存储(Metastore):存储表结构定义、表数据所在的HDFS路径、表分区信息、表属性、表统计信息等元数据信息。 4. 执行...

    DFMapper:基于查询树的SQL-to-HiveQL自动翻译工具.pdf

    随着技术的不断进步,未来DFMapper可能会支持更多的查询语言,使得开发者和企业能够更轻松地处理和分析大数据,实现数据驱动的决策和优化。同时,DFMapper的出现也提示我们,在大数据技术日益成为企业核心资产的今天...

    hive查询优化

    ### Hive查询优化详解 #### 一、Hive基础与架构 **Hive**作为Hadoop生态中的重要组成部分,被广泛应用于大数据分析领域。它通过提供类SQL语言(HiveQL)来简化对Hadoop分布式文件系统(HDFS)中存储的大规模数据集...

    HiveSQL详细和优化

    HiveSQL详细和优化,以及部分个人点评 This is a brief tutorial that provides an introduction on how to use Apache Hive HiveQL with Hadoop Distributed File System. This tutorial can be your first step ...

    Hive性能优化

    总而言之,Hive性能优化涉及对HiveQL语句的逻辑层面优化,数据倾斜的处理,以及通过配置项对查询执行过程的底层优化。理解和掌握这些优化方法,可以大大提升Hive处理查询任务的效率,加快大数据分析的速度。

    Scriptis是一款支持在线写SQL、Pyspark、HiveQL等脚本,提交给Linkis执行的数据分析Web工具

    Scriptis是一款专为数据分析设计的Web工具,它允许用户在线编写SQL、Pyspark和HiveQL等脚本,并将其提交给Linkis引擎执行。这个工具的出现极大地提升了数据分析师和开发人员的工作效率,使他们无需离开Web浏览器就能...

    Hive_Hadoop_Spark优化.pdf

    它通过提供SQL风格的查询语言(HiveQL)来执行Hadoop MapReduce任务,从而使得对大数据的处理对用户更加友好。Hive作为大数据生态中的一部分,通常会与Hadoop和Spark等技术共同使用,因此对其性能的优化是大数据处理...

    Hive查询优化:Sort By、Order By、Cluster By、Distribute深入解析

    Hive是一种数据仓库软件,用于对存储在分布式存储系统(如Hadoop)中的大数据进行查询和管理。...6. **优化执行**:Hive具有自己的查询优化器,可以将HiveQL查询转换为高效的MapReduce、Tez或Spark作业。

    大数据与云计算培训学习资料 Hadoop集群 细细品味Hadoop_第14期副刊_Hive性能优化_V1.0 共19页.pdf

    Hive是基于Hadoop的数据仓库工具,它允许用户使用SQL-like查询语言(HiveQL)对存储在Hadoop文件系统(HDFS)中的大规模数据集进行分析。 1、性能低下根源 性能问题通常源于数据倾斜、jobs数量过多以及不恰当的数据...

    datav.js

    《datav.js与HiveQL在大数据处理中的应用解析》 在大数据处理领域,JavaScript库如datav.js和Hadoop生态中的HiveQL扮演着重要的角色。datav.js是一款用于数据可视化的JavaScript库,它提供了丰富的图表类型和交互...

    二万字讲解HiveSQL技术原理、优化与面试.pdf

    它通过提供一种类似SQL的查询语言(HiveQL),使得用户能够方便地对Hadoop中的数据进行查询和管理。本文旨在深入探讨HiveSQL的技术原理,特别是其如何将SQL查询转换为MapReduce任务的过程。 #### 二、HiveSQL到...

    Hive高级编程

    总之,Hive作为一款强大的大数据处理工具,其高级编程不仅涵盖了HiveQL的各种复杂操作,还涉及了对底层MapReduce框架的理解和优化技巧。通过深入学习和实践,可以有效提升数据处理效率,满足大数据分析的需求。

    Michael Armbrust:Fast distributed query processing with Shark

    针对这一点,Shark应运而生,旨在通过优化查询执行过程,使HiveQL的执行更加迅速。 4. Shark的架构和优势 Shark是一个与Hive兼容的分析查询引擎。它在Spark的计算引擎之上构建,Spark可以快速执行数据查询、交互式...

    Hive开发培训.pptx

    - **语法优化**: 自动纠正错误或不规范的HiveQL语句。 - **逻辑优化**: 转化SQL查询为最优的逻辑执行计划。 - **物理优化**: 选择最佳的物理执行策略。 - **执行优化**: - **数据压缩**: 减少传输的数据量。 - ...

    hive-introduction.pdf

    2. **驱动器(Driver)**:驱动器负责接收客户端提交的HiveQL语句,解析并优化查询计划,然后将查询计划发送给执行引擎。 3. **编译器(Compiler)**:编译器负责将HiveQL语句转换为一系列的MapReduce任务,这些任务最终...

    Apache Hadoop---Hive.docx

    解释器负责解析 HiveQL 查询,编译器生成执行计划,优化器优化这个计划以提高执行效率,最后执行器将计划转化为 MapReduce 任务在 Hadoop 集群上运行。 2. **内部协作流程**: 用户提交的 HiveQL 查询首先被解析成...

Global site tag (gtag.js) - Google Analytics