Hive优化策略介绍

作为企业Hadoop应用的核心产品之一,Hive承载着公司95%以上的离线统计,甚至很多企业里的离线统计全由Hive完成;

Hive在企业云计算平台发挥的作用和影响越来越大,如何优化提速已经显得至关重要;

Hive作业的规模决定着优化层级,一个Hive作业的优化和一万个Hive作业的优化截然不同

后续文章将从如下三个方面进行hive的优化介绍:

1)  架构方面(高效、全局、局部)----最有效的优化,好的架构能让作业性能提高很多

  a)  分表;(日志表量大而且作业访问次数多,造成耗时较长;将用的比较少的数据剥离出来)

  b)  合理利用中间结果集

     i.   重视查过就丢的资源浪费;特别是大数据量的表,如果查完就丢,IO开销会很大;随着作业越来越多,造成hadoop的IO负载瓶颈;

    ii.   梳理作业之间的“血缘”关系,把他们之间使用相同的中间结果抽取出来。

  c)  常用复杂/低效统一给出,以避免上层多个作业每次需要的时候再去计算,提高上层多个作业的计算效率;

  d)  设计表分区:静态/动态分区,静态分区用的比较多;

2)  HQL语法层面(中低效、Job内)

  通过执行计划分析

3)  Hive参数层面(全局)

  太暴力,很少用;但有时会起到很好的效果;

Hive优化策略介绍

时间: 2024-10-14 12:15:31

Hive优化策略介绍的相关文章

Hive优化策略

Hive的优化策略大致分为:配置优化(hive-site.xml和hive-cli执行前配置).表优化.hive数据倾斜解决方案. 回答的时候需要,需要准确的说出具体的配置参数,准确的说出具体的配置参数,这是一个深刻的教训. 配置优化 1-Fetch抓取配置 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算.例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台.

【Hive】优化策略

Hive对于表的操作大部分都是转换为MR作业的形式,为了提高OLAP[online analysis process 在线分析处理]的效率,Hive自身给出了很多的优化策略 1. explain[解释执行计划] 通过explain命令,可以查看Hive语句的操作情况,是否为慢查询,是否走索引,一目了然 explain select sum(...) from table_name; 2. 动态分区调整 hive.exec.dynamic.partition.mode = strict // 默认

常见性能优化策略的总结

本文是一位美团老师把之前所做的各种性能优化的案例和方案加以提炼.总结,以文档的形式沉淀下来,并在内部进行分享.力求达到如下效果: 形成可实践.可借鉴.可参考的各种性能优化的方案以及选型考虑点,同时配合具体的真实案例,其他人遇到相似问题时,不用从零开始: 有助于开阔视野,除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识.思维以及做各种权衡的能力: 常见性能优化策略分类: 代码 之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视.很多技术人员拿到

常见性能优化策略的总结(转)

add by zhj: 我个人感觉性能优化分析影响性能的因素有哪些,然后按影响力的大小进行排序,然后进行排序. 然后进一步分析每个因素为何会影响性能,把这些因素再找出来,再按影响力大小进行排序.基本上,经过 这两层的分析,基本就够用了.对这些因素思考解决办法. 1. 数据库层 我们的目标是减少IO访问,或者将IO访问进行负载均衡,分配到多台服务器,并行计算. 1.1 数据库的数据存储在硬盘,硬盘访问速度比内存慢太多,即IO多 1.2 数据量大导致扫描记录多,间接导致IO多 1.3 所有数据库访问

常见性能优化策略总结

常见性能优化策略分类 代码 之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视.很多技术人员拿到一个性能优化的需求以后,言必称缓存.异步.JVM等.实际上,第一步就应该是分析相关的代码,找出相应的瓶颈,再来考虑具体的优化策略.有一些性能问题,完全是由于代码写的不合理,通过直接修改一下代码就能解决问题的,比如for循环次数过多.作了很多无谓的条件判断.相同逻辑重复多次等. 数据库 数据库的调优,总的来说分为以下三部分: SQL调优 这是最常用.每一个技术人员都应该掌握基本的SQL调优手段

Spark SQL 优化策略

查询优化是传统数据库中最为重要的一环,这项技术在传统数据库中已经很成熟.除了查询优化, Spark SQL 在存储上也进行了优化,从以下几点查看 Spark SQL 的一些优化策略. (1)内存列式存储与内存缓存表       Spark SQL 可以通过 cacheTable 将数据存储转换为列式存储,同时将数据加载到内存进行缓存. cacheTable 相当于在分布式集群的内存物化视图,将数据进行缓存,这样迭代的或者交互式的查询不用再从 HDFS 读数据,直接从内存读取数据大大减少了 I/O

常见性能优化策略的总结 good

阅读目录 代码 数据库 缓存 异步 NoSQL JVM调优 多线程与分布式 度量系统(监控.报警.服务依赖管理) 案例一:商家与控制区关系的刷新job 案例二:POI缓存设计与实现 案例三:业务运营后台相关页面的性能优化 add by zhj: 我个人感觉性能优化分析影响性能的因素有哪些,然后按影响力的大小进行排序,然后进行排序. 然后进一步分析每个因素为何会影响性能,把这些因素再找出来,再按影响力大小进行排序.基本上,经过 这两层的分析,基本就够用了.对这些因素思考解决办法. 1. 数据库层

.Net中的并行编程-6.常用优化策略

            本文是.Net中的并行编程第六篇,今天就介绍一些我在实际项目中的一些常用优化策略.      一.避免线程之间共享数据 避免线程之间共享数据主要是因为锁的问题,无论什么粒度的锁,最好的线程之间同步方式就是不加锁,这个地方主要措施就是找出数据之间的哪个地方需要共享数据和不需要共享数据的地方,再设计上避免多线程之间共享数据. 在以前做过的某项目,开始时设计的方案: 开始设计时所有的数据都放入到了公共队列,然后队列通知多个线程去处理数据,队列采用互斥锁保证线程同步,造成的结果就

Android性能优化策略

本篇主要是对 google推出的性能优化典范 进行一个通篇的整理- 主要在于一些具体的优化技巧.至于 60fps.掉帧.gc.内存抖动.阈值-等等这些性能术语的概念里面不做多概括,请自行查阅- 本篇从以下几点延伸扩展- 绘制/渲染 优化布局的结构 避免复杂的View层级.布局越复杂就越臃肿,就越容易出现性能问题,寻找最节省资源的方式去展示嵌套的内容: 尽量避免在视图层级的顶层使用相对布局 RelativeLayout .相对布局 RelativeLayout 比较耗资源,因为一个相对布局 Rel