大数据开发工程师hive(hive如何进行优化)

author author     2023-04-26     197

关键词:

参考技术A

1数据存储及压缩优化

针对hive中表的存储格式通常有textfile和orc,压缩格式一般使用snappy。相比于 textfile格式存储,orc占有更少的存储。因为hive底层使用MR计算架构,数据流是hdfs到磁盘再到hdfs,而且会有很多次IO读写操作,所以使用orc数据格式和snappy压缩策略可以降低IO读写,还能降低网络传输量,这样在一定程度上可以节省存储空间,还能提升hql的执行效率;

2 Hive Job优化

① 调节Jvm参数,重用Jvm;

② 合理设置Map个数;

③ 合理设置Reduce个数;

3 Sql语法优化

建表优化

1) Hive创建表的时候,可以建分区表,分桶表;

2) Hive创建表的时候,可以指定数据存储格式:TextFile、SequenceFile、RCfile 、ORCfile;

查询时优化

1) 列裁剪,在查询时只读取需要的列,避免全列扫描,不要使用select * from table;

2) 分区裁剪:在查询时只读取需要分区的数据,避免全表扫描;

3) 开启谓词下推:set hive.optimize.ppd = true,默认是true:

a. 将Sql语句中的where谓词逻辑都尽可能提前执行,减少下游处理的数据量;

4) 大表join小表:

a. 开启MapJoin:set hive.auto.convert.join=true:

b. MapJoin是将Join双方比较小的那个表直接分发到各个Map进程的内存中,在 Map进程中进行Join操作, 这样就不用进行Reduce步骤 ,从而提高了速度( 大表left join小表才有效 ,小表left join大表会失效);

5) 大表join大表:

a. SMB Join :Sort Merge Bucket Join(数据不仅分桶了,而且每个桶数据是排好序了);

b. 开启SMB Join之后,底层是根据两个表join字段进行分桶存储,这样的话,两张表就变为了基于桶之间join关联查询,而不是基于整张表的join,减少了笛卡尔积;

6) 少用in,用left semi join替代in:

a. 原始写法:select a.id, a.name from a where a.id in (select b.id from b);

b. 用join改写:select a.id, a.name from a join b on a.id = b.id;

c. left semi join改写:select a.id, a.name from a left semi join b on a.id = b.id;

7) 用union all代替union,因为union all不需要去重,也不需要排序,效率高于union;

(每天1小题,进步1点点)

hive优化之hive的配置参数优化

参考技术AHive是大数据领域常用的组件之一,主要用于大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hive调优是必不可少的一项技能。影响Hive效率的主要因素有数据倾斜、数... 查看详情

大数据离线计算路线图-hadoop工程师,数据分析师

针对Hadoop工程师和数据分析师所涉及到的工作环境和内容,涉及集群调度框架、Hadoop框架、Hive框架、Hbase框架的全面深入讲解,为了能轻松参考技术A针对Hadoop工程师和数据分析师所涉及到的工作环境和内容,涉及集群调度框架... 查看详情

技术干货:sqlonhadoop在快手大数据平台的实践与优化

参考技术A快手大数据架构工程师钟靓近日在A2M人工智能与机器学习创新峰会分享了题为《SQLonHadoop在快手大数据平台的实践与优化》的演讲,主要从SQLonHadoop介绍、快手SQLonHadoop平台概述、SQLonHadoop在快手的使用经验和改进分析、... 查看详情

大数据技术之hive

第1章Hive基本概念1.1Hive1.1.1Hive的产生背景在那一年的大数据开源社区,我们有了HDFS来存储海量数据、MapReduce来对海量数据进行分布式并行计算、Yarn来实现资源管理和作业调度。但是面对海量数据和负责的业务逻辑,开发... 查看详情

spark性能优化案例

主流大数据技术都是开源的:Hadoop大数据存储与计算产品Hive、SparkSQL大数据仓库Storm、Flink这样的大数据流计算产品Mahout、MLlib大数据机器学习算法库如何参与Apache软件开发,如何进行软件性能优化及Spark源码优化:更深入、系统... 查看详情

大数据之hive:hive调优全方位指南(代码片段)

目录一、HiveSQL语法二、Hive性能优化三、Hive性能优化之数据倾斜专题四、HiveSQL优化十二板斧五、Hive面试题(一)六、Hive/Hadoop高频面试点集合(二)本文基本涵盖以下内容:一、HiveSQL语法hive的DDL语法对数据库的操作创建数据库:cr... 查看详情

打怪升级之小白的大数据之旅(六十九)<hive旅程第十站:hive的优化>(代码片段)

打怪升级之小白的大数据之旅(六十九)Hive旅程第十站:Hive的优化上次回顾上一章介绍了Hive的压缩与存储格式,本章节是Hive的一起其他优化方法Fetch抓取Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算从hive... 查看详情

hive与优化方法(代码片段)

...章目录Hive与优化方法一、Hive概念二、Hive架构三、Hive与数据库的比较四、Hive中一些重要的概念4.1内部表和外部表4.2分区表4.3Hive排序关键字4.4Hive分桶4.5三种排序窗函数的区别4.6Hive解析MR的Reduce数量的确定4.7Hive的存储格式五、Hive... 查看详情

hive优化(代码片段)

1.概述1.1hive的特征:可以通过SQL轻松访问数据的工具,从而实现数据仓库任务,如提取/转换/加载(ETL),报告和数据分析;它可以使已经存储的数据结构化;可以直接访问存储在ApacheHDFS或其他数据存储系统(如ApacheHBase)中的... 查看详情

大数据面试题----hive的调优及数据倾斜(代码片段)

...1)小表、大表Join    将key相对分散,并且数据量小的表放在join的左边,这样可以有效减少内存溢出错误发生的几率;再进一步,可以使用Group让小的维度表(1000条以下的记录条数)先进内存。在map端完成reduce。实... 查看详情

hive大数据开发(代码片段)

1Hive基本概念Hive大数据开发1.1Hive简介1.1.1什么是HiveHive由Facebook实现并开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供**HQL(HiveSQL)**查询功能,底层数据是存储在HDFS上。Hive的... 查看详情

hive里的优化和高级功能

  在一些特定的业务场景下,使用hive默认的配置对数据进行分析,虽然默认的配置能够实现业务需求,但是分析效率可能会很低。Hive有针对性地对不同的查询进行了优化。在Hive里可以通过修改配置的方式进行优化。  以下... 查看详情

jdbc连接hive

 hive是大数据技术簇中进行数据仓库应用的基础组件,是其它类似数据仓库应用的对比基准。基础的数据操作我们可以通过脚本方式以hive-client进行处理。若需要开发应用程序,则需要使用hive的jdbc驱动进行连接.代码连接hive... 查看详情

大数据平台的软件都有哪些?

...件),提供一种更现代、高效和高性能的方式来储存Hive数据。三、Presto简介:Facebook开源的数据查询引擎Presto,可对250PB以上的数据进行快速地交互式分析。该项目始于2012年 查看详情

四.hive及其相关大数据组件

HIVE及其相关大数据组件Hive是构建在Hadoop大数据平台之上,Hive数据存储依赖于HDFS,HiveSQL的执行引擎依赖于MapReduce、Spark、Tez等分布式计算引擎,Hive作业的资源调度依赖于YARN、Mesos等大数据资源调度管理组件。如果脱离Hadoop生态... 查看详情

大数据专题--hive与impala

...技术A由FaceBook开发,贡献给APache。Hive是基于Hadoop的一个数据仓库工具,依赖HDFS完成数据存储,依赖于MapReduce处理数据。其本身并不存储数据。Hive定义了简单的类SQL查询语言,称为HQL,通过编写HiveQL语句,运行具体的MapReduce任务... 查看详情

《大数据开发》hive(代码片段)

Hive是基于Hadoop的一个数据仓库工具;提供Sql(hiveSql)查询功能;数据是存储在hdfs上,hive本身不存储数据,构建表的逻辑存在指定数据库(mysql)。本质是将SQL语句转换为MapReduce任务执行。离线大... 查看详情

hive优化(十三)-小文件进行合并

...并小文件,减少Map数:1)参数设置这个参数表示执行前进行小文件合并,前面三个参数确定合并文件块的大小,大于文件块大小128m的,按照128m来分隔,小于128m,大于100m的,按照100m来分隔,把那些小于100m的(包括小文件和分... 查看详情