![](https://img-blog.csdnimg.cn/20191020102134905.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Impala
文章平均质量分 82
stiga-huang
Cloudera Software Engineer.
Impala PMC & Committer.
展开
-
Apache Impala 4.4.1正式发布了!
Impala 4.4.1正式发布了!这次版本发布提供了RPM/DEB安装包,欢迎大家试用!原创 2024-08-25 20:14:42 · 722 阅读 · 0 评论 -
Impala JDBC/ODBC driver返回不完整数据的解决办法
Impala JDBC/ODBC driver 使用了未定义的方式来判定查询结束,该方式在 IMPALA-7312 之后不可行。因此解决办法是关闭 IMPALA-7312 引入的超时机制(即 set fetch_rows_timeout_ms = 0)或者升级 JDBC/ODBC driver。原创 2024-07-05 17:03:06 · 789 阅读 · 0 评论 -
Apache Impala 4.4.0正式发布了!
Apache Impala 4.4.0正式发布了!原创 2024-05-28 08:29:42 · 1186 阅读 · 0 评论 -
Impala商业版本和社区版本的关系
一般的三位版本号使用 major.minor.patch 的格式,比如 3.4.2 表示 3.x 大版本里的 3.4 小版本里的第2个patch版本。Cloudera商业版本号采用 “社区版本.CDP版本-BuildId” 的形式,比如商业版本 “3.4.0.7.1.7.2000-305” 是基于社区版本 3.4.0 开发的,但除了修复漏洞,还加了些impala-4.x的新功能,因此并不会比社区版本 3.4.1 旧。如果想确认某个新功能是否在商业版本里有,可以联系售后进行确认。原创 2024-05-22 19:03:10 · 214 阅读 · 0 评论 -
如何用CTAS创建分区表
CTAS用来创建新表并写入数据,本文介绍如何自定义分区原创 2024-05-19 07:25:19 · 431 阅读 · 0 评论 -
Impala Catalogd启动报错NoClassDefFoundError: org.apache.hadoop.fs.FileSystem
启动Impala遇到NoClassDefFoundError,一定是CLASSPATH有问题吗?原创 2024-04-12 20:44:58 · 823 阅读 · 2 评论 -
Impala依赖组件的客户端源码下载
Impala编译时默认依赖CDH/CDP组件,这些组件跟开源Apache组件的源码可能有差异,但对应的客户端源码也是开源的,可以从S3下载。原创 2024-01-26 18:36:14 · 397 阅读 · 0 评论 -
Impala实践:解析glog打印的 C++ 报错堆栈
Impala C++代码的报错堆栈是使用glog打印的,可以从指令地址手动解析出函数名,也可以在启动参数里加 --symbolize_stacktrace=true 让 glog 打印带符号(函数名)的堆栈。关注Apache Impala公众号,及时获取更多Impala资讯。原创 2023-08-13 21:23:27 · 408 阅读 · 0 评论 -
Impala如何将Iceberg上的查询编译性能提升12倍
Cloudera 为 Iceberg 贡献了 Manifest缓存功能,以减少重复读取Manifest文件的问题。 我们通过 Impala 展示 Iceberg Manifest缓存的优势,Planning时间能获得高达 12 倍的加速。翻译 2023-07-14 21:53:53 · 434 阅读 · 0 评论 -
如何解析 Impala 的 C++ 报错堆栈
Impala C++代码的报错堆栈是使用glog打印的,可以从函数地址手动解析出函数名,也可以在启动参数里加 --symbolize_stacktrace=true 让 glog 打印带符号(函数名)的堆栈。原创 2023-06-19 20:09:19 · 449 阅读 · 0 评论 -
Apache Impala 4.2概览
本文总结了Impala 4.2的新功能和改进原创 2023-05-28 19:41:22 · 1099 阅读 · 0 评论 -
Impala开发环境中无法执行Tez作业的故障诊断
本文记录了Impala开发环境中无法执行Tez作业的故障诊断和解决办法原创 2023-04-23 10:41:55 · 416 阅读 · 0 评论 -
Impala事故处理手册
本文不是事故原因汇总,只介绍当Impala集群出现事故时的处理流程,以最大限度保留现场信息,方便事后调查。第一节介绍故障表现和对应的操作建议,第二节介绍每个操作的具体执行流程。本文将不定期更新,欢迎留言反馈具体的故障场景。原创 2023-04-17 08:31:59 · 739 阅读 · 0 评论 -
Impala编译错误及解决办法汇总
Apache Impala repo里有C++、Java、Python、Bash的代码,编译过程中可能遇到各种问题。本文作为一个汇总,以后每遇到一个编译问题,解决完后都会更新一下。原创 2023-02-23 21:42:30 · 1149 阅读 · 0 评论 -
Impala Admission Control
Impala 集群用来控制查询并发量的功能称为 Admission Control(准入控制),本文主要翻译admission-controller.h 中的注释,以解释 Impala 准入控制(并发控制)的运行机制。翻译 2022-11-26 20:58:52 · 485 阅读 · 0 评论 -
Impala的log4j和glog配置
Impala server的代码由C++和Java两部分组成,C++日志使用glog,Java日志使用log4j。这两部分输出是如何汇聚到同一个日志文件里的呢?日志级别又是如何协调配置的呢?之前在开发Impala的过程中,总发现一些加在构造函数里的日志没被打印出来,比如JniCatalog。最近终于弄清了impala的日志是怎么配置的,在此梳理一下。原创 2022-11-13 21:04:12 · 775 阅读 · 0 评论 -
Kudu-1.16编译中下载Gradle依赖失败的解决办法
国内机器无代理情况下编译kudu-1.16.0会遇到gradle依赖下载失败,本文记录了一个未经考究的解决过程。原创 2022-09-05 21:45:42 · 1835 阅读 · 0 评论 -
Apache Impala 4.1概览
Impala 4.1发布了!快来看看有什么更新吧!原创 2022-07-05 20:24:00 · 1591 阅读 · 0 评论 -
Apache Impala 4.0概览
Apache Impala 4.0概览历经15个月,Apache Impala 4.0终于发布了!本次发布一共包含700多个JIRA,本文将带大家快速了解4.0的主要改动,参考自社区Release Notes:http://impala.apache.org/docs/release-notes-4.0.html非兼容性改动大版本一般会有非兼容性的改动,主要是抛弃掉一些历史负担,让整个代码库更简洁更易于维护。本次4.0带来的非兼容性改动有:不再支持Hive 2.x不再支持Sentry由于Se原创 2021-07-13 19:49:06 · 1647 阅读 · 0 评论 -
Impala-shell相关源码笔记
Impala-shell是用python开发的,python代码不用声明变量类型,在看代码时很容易因为找不到定义而迷失。IDE能帮不少忙,但打开impala源码总还有些地方无法跳转。impala的开发者大多用vim、emacs这些工具,导致整个源码结构对IDE不太友好。另外有些源码是thrift生成的,需要编译完才有。总总这些,导致每次要改impala-shell代码时都要先花点时间回顾代码,这次决定写点笔记,帮助快速回忆/入门 impala-shell 源码。Impala中的Python代码Impal原创 2021-04-28 10:34:29 · 724 阅读 · 0 评论 -
如何在Apache JIRA中搜索issue
经常会遇到这样的问题:某个功能在哪个Impala版本开始有?具体细节是什么?某个bug在哪个Impala版本开始出现/修复?遇到某个报错,是否是已知问题?这些当然可以直接google,但也可以在Apache JIRA中搜索,结果会更精准。操作步骤打开网址:https://issues.apache.org/jira 或者任何一个已有issue的链接。点击左上角的 Issues -> Search for issues然后会出来一个Search框,在Project选上对应的项目(如原创 2021-04-19 09:39:00 · 1562 阅读 · 1 评论 -
Impala支持Google云存储开发笔记
最近给Impala加了对GCS(Google Cloud Storage)的支持,踩了一些坑,在此记录一下。GCS提供了HDFS的API,直观上按HDFS来使用就可以了,但由于HDFS API定义不是很明确,引入了一些bug.FileSystem的listStatusIterator接口是否要检查start path合法GoogleHadoopFileSystem的list操作没有优化GCS的InputStream没有实现CanUnbuffer接口...原创 2021-04-16 15:58:20 · 537 阅读 · 0 评论 -
Impala-shell卡顿分析——记一次曲折的Debug经历
最近遇到一个impala-shell在处理中文字符时卡死不动的bug,整个Debug过程比较曲折,因为一开始走错了方向。最终是通过监听TCP层的传输找到切入点,从而走上正规,找到底层依赖库的一个bug,从而修复了问题。这篇文章尽量回忆整个Debug过程,以给自己一个警示作用。有点流水帐的味道,大家看看就好。...原创 2020-11-08 16:17:13 · 1442 阅读 · 0 评论 -
如何参与Impala社区的讨论
如果你遇到了Impala相关问题,又苦于不是Cloudera客户,无法得到技术支持,可以考虑在社区中发起讨论。当然,提问之前最好先自行Google,很多问题网上已经有答案了。Apache Impala社区邮件列表发任意邮件到 user-subscribe@impala.apache.org ,并按回复操作来订阅邮件列表。然后把你的问题发到 user@impala.apache.org。历史的讨论可以在这个链接中看到:https://lists.apache.org/list.html?user@impa原创 2020-06-21 10:02:10 · 870 阅读 · 0 评论 -
在CDH6.3中单独升级Impala到Apache Impala 3.4
CDH6.3自带的Impala版本较低,是3.2版本加上一些Cloudera自己打的补丁。本文简述如何在CDH6.3中将Impala升级到Apache Impala 3.4。原创 2020-06-20 17:03:02 · 5490 阅读 · 23 评论 -
错误的locale设置导致Impala crash
错误的locale设置导致Impala crash今天在编译cdh5.16.2版本的Impala并加载数据时,发现三个impalad同时crash。在impalad.ERROR里可以看到错误信息:terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not validWrote minidump to /home/quan原创 2020-06-05 15:36:04 · 790 阅读 · 0 评论 -
Impala 3.4的新功能和社区进展
Impala 3.4的新功能和社区进展Impala社区在四月底发布了3.4版本。这是时隔半年后的又一个新版本,也是最后一个3.x版本。之后将进入4.x时代,为的是接受一系列 breaking changes,如删除对过时操作系统(Centos6、Ubuntu14等)的支持、删除对Sentry的支持、删除对lzo的支持等。具体的 breaking changes 还在讨论之中,感兴趣的同学可以订阅邮件列表参与讨论。本文主要介绍 3.4 版本带来的新功能以及新的提升,概括起来有这么几个方面:Result Sp原创 2020-05-14 19:56:12 · 1544 阅读 · 0 评论 -
动态调整Impala日志级别
Impala日志级别诊断线上事故时,动态调整日志级别非常有用,Impala的各个server也提供这样的能力。每个server都有一个/log_level页面,如图:Impala的FE代码中主要用了FATAL、INFO、TRACE三种日志级别,很少用DEBUG。因此实战时一般是把日志级别调成TRACE,另外由于不确定是哪个类出问题,最好把整个 org.apache.impala 包的日志级...原创 2020-04-11 11:44:11 · 1225 阅读 · 0 评论 -
Impala编译:一个maven编译错误的解决
编译Impala时遇到了一个maven错误,准确地说是编译testdata模块时报的错。我用的指令是 “./buildall.sh -skiptests -format -testdata”,遇到的错误如下:========================================================================Running mvn -U packag...原创 2020-04-10 16:31:50 · 2528 阅读 · 1 评论 -
Impala元数据缓存的生命周期
上一篇文章《Impala元数据简介》介绍了Impala缓存的元数据(Metadata/Catalog)的具体内容,本文将介绍这些元数据缓存的生命周期,即它们是怎么初始化的,怎么加载的以及怎么失效的。以下是常见的元数据相关的问题,基本都跟元数据的生命周期有关:同样的查询,为什么第一次运行比后面几次运行都要慢很多?在 Hive 中建了个新表,但在 Impala 中不可见,如何解决?在 Hiv...原创 2020-03-08 20:39:23 · 1812 阅读 · 3 评论 -
Impala关于ValueTransferGraph一段代码的疑问解答
Impala关于ValueTransferGraph一段代码的疑问解答最近在Review IMPALA-9162 的 patch 的时候,发现ValueTransferGraph有一处代码不是很显然: /** * Add value-transfer edges to 'g' based on the registered equi-join conjuncts. */ pr...原创 2019-12-11 17:06:08 · 248 阅读 · 0 评论 -
Impala元数据简介
Impala元数据简介背景Impala是一个高性能的OLAP查询引擎,与其它SQL-on-Hadoop的ROLAP解决方案如Presto、SparkSQL 等不同的是,Impala对元数据(Metadata/Catalog)做了缓存,因此在做查询计划生成时不再依赖外部系统(如Hive、HDFS、Kudu),能做到毫秒级别的生成时间。另外缓存元数据也能极大减少对底层系统Master节点(Hive...原创 2019-12-05 09:38:53 · 3297 阅读 · 0 评论 -
如何对CDH集群中的Impala打印线程堆栈
如何对CDH集群中的Impala打印线程堆栈上一篇文章《Impala查询卡顿分析案例》介绍了怎么对Impala进程打印线程堆栈,JVM部分直接用 jstack 比较直接,但 C++ 部分由于要使用 gdb 或 breakpad 工具,还需要编译源码,显得比较繁琐。本文直接演示如何在 CDH 集群中打印 Impala 进程的线程堆栈,不再需要编译源码。当然第一次操作时还是需要下载一些工具,可以在集...原创 2019-11-10 18:28:20 · 970 阅读 · 1 评论 -
Impala查询卡顿分析案例
Impala查询卡顿分析案例最近在开发时遇到查询卡顿(stuck)的情况,感觉比较有代表性,因此记录一下排查过程。在生产环境中也可以用类似的方法找到卡顿的源头。注:本文所用的Impala版本为3.4.0-SNAPSHOT。Impala由C++和Java写成,分别对应BE (Backend) 和 FE (Frontend) 两部分。案例描述使用Alter Table语句新建一个partiti...原创 2019-11-03 11:06:40 · 2838 阅读 · 0 评论 -
Impala 2.x的新patch -- IMPALA-6812 Kudu Read Mode
Impala 2.x接下来要cherry-pick的patch是 IMPALA-6812:https://gerrit.cloudera.org/c/10503在此之前Kudu相关的一些测试时好时坏(flaky),主要的表现是从kudu读出来的结果不完整。好几个其它的ticket也汇报了这个问题:IMPALA-7036, IMPALA-6922, IMPALA-7028在Gerrit(Impa...原创 2019-02-19 10:30:01 · 514 阅读 · 0 评论 -
Impala源码阅读——SimpleScheduler
Impala中的Scheduler负责对各个执行计划分片(Plan Fragment)进行调度。SimpleScheduler是目前唯一的Scheduler实现,读懂SimpleScheduler的代码对后续阅读Impala更底层的代码有很大帮助。原创 2017-01-02 22:13:36 · 2765 阅读 · 2 评论