Impala
文章平均质量分 94
skyyws
Apache Impala Committer,目前从事OLAP方向。
展开
-
Impala metrics之statestore-subscriber
本文主要梳理一下Impala的“statestore-subscriber”相关的metrics,这类metrics主要是在catalog和impalad上存在。原创 2021-12-16 20:43:19 · 732 阅读 · 0 评论 -
Impala metrics详解之Jvm篇
Impala的web页面提供了非常丰富的信息,其中就包括各种metrics信息。这些metrics非常多,但是官方也没有专门文档解释,所以有时候也看不明白是什么意思。本文笔者将结合代码,跟大家一起学习一下Jvm相关的metrics分别是什么含义,以及如何计算得到的。原创 2021-11-26 16:08:57 · 1453 阅读 · 0 评论 -
Impala与内嵌Jvm之间的交互
了解过Impala的同学都知道,Impala的节点分为BE和FE两个模块,分别是由C++和Java编写的。关于这两个模块之间是如何交互的,相关的资料比较少。因此,本文笔者就和大家一起学习下,Impala的BE和FE之间是如何通过JNI进行交互的。原创 2021-09-28 15:39:34 · 802 阅读 · 0 评论 -
一文读懂Impala统计信息相关知识
本文主要介绍了Impala的表级别、列级别的统计信息内容,以及几种不同场景下的统计信息计算,最后简单介绍了统计信息是如何获取的。总的来说,统计信息可以帮助Impala生成更优的执行计划,对于减少内存消耗也有一定的帮助,是非常重要的信息,对于其他的计算引擎也是一样。原创 2021-09-14 20:16:33 · 2904 阅读 · 0 评论 -
Impala 3.4 SQL查询之ScanRange流程归纳(六)
我们在前面几篇文章,从代码处理层面,详细分析了Impala的ScanRange相关知识,包括FE端的处理、parquet文件的处理、IO thread的处理等,涉及到的内容比较多。本文笔者将前几篇文章的内容做了一个汇总,整体看一下Impala的整个ScanRange的处理流程。原创 2021-04-29 20:20:53 · 456 阅读 · 0 评论 -
Impala 3.4 SQL查询之ScanRange详解(五)
在上篇文章中,我们介绍了PerDiskState的unstarted_scan_ranges_这个队列的更新逻辑,本文我们将主要介绍in_flight_ranges_队列的更新。同时,还会涉及到Impala对于parquet的相关处理流程。原创 2021-04-28 16:40:40 · 846 阅读 · 0 评论 -
Impala 3.4 SQL查询之ScanRange详解(四)
在上篇文章中,我们主要介绍了ScanRange的构造,以及在FE和BE端的一些处理流程。同时,我们还介绍了IO thead处理模型中一个比较重要的对象RequestContext::PerDiskState,以及部分成员变量的含义,在本篇文章中,我们将介绍其中一个比较重要的成员:unstarted_scan_ranges_。原创 2021-04-16 19:59:28 · 902 阅读 · 0 评论 -
Impala 3.4 SQL查询之ScanRange详解(三)
我们在本系列的前两篇文章中,简单介绍了SQL查询的整个流程以及重写的相关知识。在接下来的这几篇中,会跟大家一起详细学习ScanRange的知识。由于涉及到的内容非常多,因此会分成几篇来讲解,主要会涉及到HDFS_SCAN_NODE、IO thread等知识。由于现在相关的文档比较少,这些文章都是笔者根据代码和实际调试结果整理出来的,如有错误,欢迎指正。原创 2021-04-16 10:59:20 · 1017 阅读 · 0 评论 -
Impala HDFS_SCAN_NODE之AverageHdfsReadThreadConcurrency
本文主要从代码分析,介绍了Impala的HDFS_SCAN_NODE中的AverageHdfsReadThreadConcurrency这个counter的含义,以及是如何进行更新和计算的。原创 2021-04-08 15:17:39 · 549 阅读 · 0 评论 -
Impala HDFS_SCAN_NODE之IO threads模型
本文主要介绍了Impala HDFS_SCAN_NODE中的IO threads模型,通过源码进行分析,阐述了Impala对于本地disk以及各种远端dfs的处理流程,同时对HDFS_SCAN_NODE中的一些指标进行了简要解释。原创 2021-03-31 14:45:34 · 1058 阅读 · 0 评论 -
Impala cast timestamp导致相同SQL查询不一致问题排查
本文主要记录在使用Impala 3.4.0版本时遇到的一个问题以及排查过程,问题主要就是对于同一个SQL查询,有时候成功,有时候会抛出异常。而该问题主要是与Timestamp的cast操作有关。原创 2021-02-08 11:36:42 · 1039 阅读 · 0 评论 -
Impala 3.4 SQL查询之重写(二)
在上一篇文章中,我们介绍了Impala基本的SQL解析流程。本文我们将跟大家一起看下Impala中的一些SQL重写规则。原创 2020-12-29 11:24:39 · 720 阅读 · 0 评论 -
Impala 3.4 SQL查询梳理(一)
本文简单讲解了Impala SQL解析的相关流程,以及其中涉及到的一些类,源码分析是基于社区3.4.0版本。原创 2020-12-24 11:39:19 · 1366 阅读 · 4 评论 -
Impala 2.12.0与3.4.0版本的compute stats兼容问题
我们在本文中,主要讲了一个我们在从2.12.0版本升级到3.4.0版本的时候,遇到的compute stats的问题。包括了问题描述、代码研究以及重现步骤三个章节。原创 2020-12-23 15:38:14 · 787 阅读 · 1 评论 -
问题排查--Impala查询Decimal数据为NULL,Hive查询正常
目前,线上反馈一个问题:同一张表,使用Hive查询正常,但是使用Impala查询,返回的数据中,部分字段值为NULL。我们使用impala执行了invalidate metadata xxx,排查了元数据不一致的问题,同时查看源文件,也排除了数据本身的问题。最终,通过在Impalad的web页面上查看该SQL的profile发现,其中存在如下的Errors:通过查询相关的错误,我们发现官方对于这块有相应地解释:For text-based formats (text, RCFile, and Seq原创 2020-11-12 16:53:18 · 3046 阅读 · 0 评论 -
Impala配置Ranger服务进行权限控制
Impala目前在新版本3.4中提供了Sentry和Ranger的2种权限管控,我们这里分别介绍一下最新的使用,这里跟2.12.0的版本有所不同。原创 2020-08-14 14:46:04 · 3288 阅读 · 5 评论 -
关于Impala的use_local_tz_for_unix_timestamp_conversions参数探究
本文主要介绍了Impala的use_local_tz_for_unix_timestamp_conversions参数的作用。原创 2020-07-29 16:03:28 · 799 阅读 · 0 评论 -
Impala graceful shutdown功能介绍
本文主要介绍了Impala的graceful shutdown功能,该功能避免了节点直接退出,导致该节点上的所有SQL都会失败的问题。原创 2020-03-09 16:56:29 · 1278 阅读 · 0 评论 -
Impala元数据性能改善(3.3版本)
本文介绍了Impala在3.3版本对元数据性能方面做的一些优化和改善,主要结合官方的文档和测试结果进行说明。原创 2019-11-17 16:38:22 · 1915 阅读 · 0 评论 -
Java代码连接带kerberos的Impala集群
目前impala的认证方式支持两种:用户名密码和kerberos,由于impala的表数据一般是存在HDFS上的,所以很多时候,impala集群也会开启kerberos的认证,初次新接入Impala的小伙伴,可能会对kerberos比较头疼,这里将通过一个简单的例子来告诉大家,如何在代码中访问带kerberos的impala集群。废话不多说,直接上代码:package com.netease...原创 2019-02-25 19:43:50 · 2700 阅读 · 0 评论 -
浅析Impala中的where条件执行顺序
背景近日有用户反馈在使用Impala的过程中,SQL执行的很慢,我们抓取到相关的SQL,简化之后,如下所示(其中相关的敏感信息都已经做了替换):select count(1) from user_tablewhere day ='2019-03-19'and url rlike 'http://www.example.com/'and user_udf(info, 'type') ...原创 2019-03-24 22:09:07 · 3374 阅读 · 0 评论 -
使用beeline命令行访问Impala集群
Impala本身提供了两种接口进行访问:beeswax和hs2,其中beeswax是impala自己开发的api,而hs2是兼容hive的。由于beesswax的连接方式需要使用impala自己提供的python脚本,而且不支持HA,因此这里就不再多做介绍。本文主要介绍如何使用hive的beeline客户端来连接impala集群。目前我们内部的Impala集群都支持zk的高可用,来解决单点故障的问...原创 2019-04-15 19:55:29 · 2901 阅读 · 2 评论 -
Impala profile相关参数介绍(一)
Impala原生提供了每个SQL执行过程中的profile信息,profile里面有很多的参数可以供我们参考,来排查SQL执行过程中遇到的各种问题。由于目前官方没有对这些参数进行一一解释,因此本文旨在通过阅读代码的方式,来介绍一些在实际使用过程中碰到的参数,希望对大家有所帮助。首先要介绍的是如下所示的几个参数:PerReadThreadRawHdfsThroughputTotalReadT...原创 2019-06-23 18:28:34 · 2244 阅读 · 0 评论 -
Impala metrics参数介绍(一)
目前,Impala本身提供了很多metrics参数,通过这些参数我们可以获取到很多有用的信息,本系列会持续为大家介绍一些metrics的含义,希望能够帮助大家。原创 2019-07-23 16:12:33 · 1909 阅读 · 0 评论 -
HUE配置Impala队列提交SQL
目前,我们可以通过HUE连接到impala集群来提交SQL,进行一些数据分析和测试验证工作,非常方便,不用再额外配置beeline环境或者在java代码里面通过jdbc调用。但是,在hue上面提交SQL的时候,默认是会提交到default队列上,而线上集群往往都会根据业务设置相应的队列。因此,default上预留的资源一般不会很多,当需要跑一些比较大的SQL的时候,就需要选择相应业务的队列,否则可...原创 2019-07-17 15:20:12 · 3653 阅读 · 0 评论 -
Impala Join类型介绍
多表关联是在数据分析中非常常见的一个操作,impala作为一个ad-hoc的查询系统,也提供了多种join类型。本文将结合一个简单的例子,给大家介绍下各种join的特点。原创 2019-08-22 20:31:13 · 7315 阅读 · 0 评论 -
使用Impala hint加速SQL查询
在使用Impala进行SQL查询的时候,我们经常会使用join来关联多个表进行查询,获取想要的结果。对于表的数量达到千万甚至上亿的时候,不同的join方式所造成的执行速度,可能差距非常大。对于join的实现细节,感兴趣的可以参考:http://hbasefly.com/2017/03/19/sparksql-basic-join/。想直接了解如何加速SQL查询的可以直接跳过这里了。Impala...原创 2019-02-28 14:18:27 · 4982 阅读 · 0 评论