1.优点
1.1 快!
主节点生成执行计划树并分发执行计划至各节点并行执行的拉式获取数据(MR:推式获取数据)

计算的中间结果不写入磁盘

1.2 便利
提供SQL语义,可以方便的进行复杂的数据分析任务

2.缺点
2.1 啃内存
对于内存的依赖过于严重,内存溢出直接导致技术任务的失败

2.2 SQL支持度低
不支持UDF,不支持UPDATE/DELTE操作,不支持同一SELECT中多个DISTINCT

3.内存优化
3.1 SQLOperations that Spill to Disk
即在内存不足时将数据存入磁盘进行计算。这是在Impala 1.4 for CDH4、CDH5.1开始支持的功能,以增加了磁盘IO,延长了运算时间为代价,避免了内存溢出的问题。

开启方式:

impalashell中执行

setDISABLE_UNSAFE_SPILLS=0

setDISABLE_UNSAFE_SPILLS=FALSE
赋值为1或TRUE则是关闭

注意:该功能也是有限制的:

不是所有的SQL语句都能触发,例如union关键字还是会触发内存溢出错误;

各个节点的内存峰值限制不能过低,低于运算所需分配给各个节点的最小内存;

运算explain输出的各个节点预估内存不能过分高于各个节点的实际物理内存;

当触发“Spill to Disk”功能时有其他并发查询,仍会触发内存溢出错误;

对磁盘的空间有一定的要求,磁盘运算的数据会写入到impala各个节点的临时目录下,增加了磁盘I/O,并且会引发不可控制的磁盘占用。

所以,这个功能不是内存优化的首选方案

3.2 SQL优化
1.Compute Stats

COMPUTE STATS 是统计表的结构以及数据信息(表、分区、列的数据量和数据分布信息)并存储在到数据库中,集群根据统计信息优化数据分析操作。

看似只是Impala中一条获取表的统计信息的简单语句,但在整个分析任务调度过程中却起着相当重要的作用。该语句获取的统计信息不仅在Impala对JOIN、GROUP BY、ORDER BY、UNION、DISTINCT等资源高消耗的查询进行优化时会使用到,而且对HBase的表也同样起作用。

使用:

compute STATS [table_name]
查看统计结果

SHOW TABLE STATS [table_name]

2.执行计划 (Explain)

通过在SQL语句前面加上 explain 执行,并就可以查看到该SQL的具体执行计划情况(实际上并未真正执行)

执行计划是从底层显示Impala如何读取数据,如何在各节点之间协调工作,组合并传输中间结果,并获得最终结果集的全过程。

执行计划可以提供给我们的帮助:

(1)通过读取的数据量,我们可以判断分区策略是否有效,并结合集群大小预估读取这些数据需要的实际等。

(2)可以看到执行过程中聚合、排序、统计函数、交互的顺序及具体执行细节,可以从更高级别看到中间结果在不同节点间的流向。

(3)我们可以看到操作是否被Impala不同的节点并行执行,以及各节点所需内存预估值。

(4)通过配置EXPLAIN_LEVEL参数,可以了解到更详细的输出信息。取值从0~3,对应的执行计划信息越来越详细。

Impala 技术点梳理相关推荐

  1. Docker | Docker技术基础梳理(五) - Docker网络管理

    Docker | Docker技术基础梳理(五) - Docker网络管理 链接: 原文链接 原文链接: https://gitbook.cn/books/5b8f3c471966b44b00d265 ...

  2. 消息队列 策略_消息队列技术点梳理(思维导图版)

    消息队列作为服务/应用之间的通信中间件,可以起到业务耦合.广播消息.保证最终一致性以及错峰流控(克服短板瓶颈)等作用.本文不打算详细深入讲解消息队列,而是体系化的梳理消息队列可能涉及的技术点,起到提纲 ...

  3. 计算机三级教材重点网络技术,2020年计算机三级网络技术知识点梳理:身份认证...

    [导语]计算机三级考试备考模式已启动,目前这个阶段,该强化一下自己对于教材考点的记忆,及时查漏补缺.下面无忧考网为您精心整理了2020年计算机三级网络技术知识点梳理:身份认证,更多计算机三级考试的备考 ...

  4. 埋点tracker:前端埋点服务-技术要点梳理

    一.背景 埋点方案,前端涉及到哪些技术要点,本文做简单的梳理和总结. 二.指纹追踪技术:识别到用户及设备 浏览器:浏览器指纹_snow@li的博客-CSDN博客 三.用户设备信息(navigator) ...

  5. 电商订单技术方案梳理

    对于电商系统来说,下订单的服务是相当重要的.下订单服务的好与坏甚至影响到用户的体验,以及后续是否再次购买等行为.近期对于我们系统的下订单业务进行梳理,总结如下. 一般的下单流程 1. 用户挑选相应的商 ...

  6. docker 指定网卡_Docker | Docker技术基础梳理(五) Docker网络管理

    为什么需要容器的网络管理? 容器的网络默认与宿主机.与其他容器相互隔离,且容器中可以运行一些网络应用,比如nginx.web应用.数据库等,如果需要让外部也可以访问这些容器中运行的网络应用,那么就需要 ...

  7. 数据备份技术知识梳理(建议收藏)

    所谓数据保护技术是指对当前时间点上的数据进行备份,如果说原始数据被误删除了,可以通过备份数据找回或恢复数据.从底层来分,数据保护可以分为文件级保护和块级保护. 文件级备份 文件级备份:将磁盘上所有文件 ...

  8. 流媒体技术知识梳理整合

            流媒体技术 1.流媒体技术基础知识 1.1 流媒体技术简介 流媒体,又叫流式媒体,是具备边传边播特点的一种多媒体,如音频.视频或多媒体文件. 流媒体技术是将采集到的连续非串流格式的视频 ...

  9. 20190919:多因子选股模型-打分法技术路线梳理

    一.数据预处理 1. 因子分类,按因子类别提取基础数据(多因子选股模型的因子梳理(t默认取1)) (1)估值因子:行情数据-每日指标 市盈率: 市盈率(TTM):pe_ttm 市盈率(总市值/净利润) ...

最新文章

  1. dateformat java 并发_java.text.DateFormat 多线程并发问题
  2. 32位十六进制浮点数转换为十进制浮点数的方法
  3. mysql与mimic安装_MIMIC专题 | MIMIC数据库的安装
  4. 20应用统计考研复试要点(part30)--简答题
  5. P4783-[模板]矩阵求逆
  6. python写一个路径选择app_django下创建多个app并设置urls方法
  7. Discuz论坛 带数据整站打包
  8. 容器编排技术 -- Kubernetes 在 Namespace 中配置默认的CPU请求与限额
  9. 同事操作两个数据源保持事务一致_微服务分布式事务4种解决方案实战
  10. java http上传文件到_java使用http往服务器上传文件(图片)
  11. 软件测试工程师 Linux 十大场景命令使用
  12. leaflet地图之 获取经纬度
  13. 动力小帆船制作方法简单,电动小帆船制作方法
  14. python+pygame 最强大脑联动归位游戏
  15. 【老生谈算法】matlab特定人语音识别算法——语音识别算法
  16. 服务器共享文件设成禁止删除,服务器共享文件夹权限 禁止删除共享文件方法...
  17. 2022-2028年中国密码机行业竞争现状及投资策略研究报告
  18. 鼠标清除计算机密码,装机大师PE怎么清除修改电脑密码
  19. Backstepping(反步法)控制初学讲解
  20. windows 7 32bit安装 python3.5.0 安装错误 0x80240017 -未指定错误

热门文章

  1. 函数模板、 内联函数
  2. 214页(10万字)以数据驱动为核心的区域医疗数据中台
  3. 敏捷开发培训后的感想
  4. 【Python】Tuple遍历
  5. solr6 mysql_solr6.6.0学习(2)创建核心和与Mysql数据库连接
  6. 【职业规划】-大数据方向
  7. 基于龙芯+国产FPGA 的VPX以太网交换板设计(一)
  8. 机器中的上帝-人工智能,冠状病毒,种族主义和宗教
  9. xml数据处理--sax模块使用
  10. 互联网广告请求链路_生产环境的全链路压测应该怎么做?答案都在这里了