自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 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 127

原创 如何用CTAS创建分区表

CTAS用来创建新表并写入数据,本文介绍如何自定义分区

2024-05-19 07:25:19 354

原创 Impala Catalogd启动报错NoClassDefFoundError: org.apache.hadoop.fs.FileSystem

启动Impala遇到NoClassDefFoundError,一定是CLASSPATH有问题吗?

2024-04-12 20:44:58 742 2

原创 Impala依赖组件的客户端源码下载

Impala编译时默认依赖CDH/CDP组件,这些组件跟开源Apache组件的源码可能有差异,但对应的客户端源码也是开源的,可以从S3下载。

2024-01-26 18:36:14 363

原创 Impala实践:解析glog打印的 C++ 报错堆栈

Impala C++代码的报错堆栈是使用glog打印的,可以从指令地址手动解析出函数名,也可以在启动参数里加 --symbolize_stacktrace=true 让 glog 打印带符号(函数名)的堆栈。关注Apache Impala公众号,及时获取更多Impala资讯。

2023-08-13 21:23:27 306

原创 均值、方差、协方差的增量计算

本文主要讨论方差和协方差的流式增量计算,以及聚合计算的合并公式,还有窗口函数计算时的更新公式

2023-08-03 13:18:11 677

翻译 Impala如何将Iceberg上的查询编译性能提升12倍

Cloudera 为 Iceberg 贡献了 Manifest缓存功能,以减少重复读取Manifest文件的问题。 我们通过 Impala 展示 Iceberg Manifest缓存的优势,Planning时间能获得高达 12 倍的加速。

2023-07-14 21:53:53 320

原创 如何解析 Impala 的 C++ 报错堆栈

Impala C++代码的报错堆栈是使用glog打印的,可以从函数地址手动解析出函数名,也可以在启动参数里加 --symbolize_stacktrace=true 让 glog 打印带符号(函数名)的堆栈。

2023-06-19 20:09:19 411

原创 Apache Impala 4.2概览

本文总结了Impala 4.2的新功能和改进

2023-05-28 19:41:22 1058

原创 Impala开发环境中无法执行Tez作业的故障诊断

本文记录了Impala开发环境中无法执行Tez作业的故障诊断和解决办法

2023-04-23 10:41:55 325

原创 Impala事故处理手册

本文不是事故原因汇总,只介绍当Impala集群出现事故时的处理流程,以最大限度保留现场信息,方便事后调查。第一节介绍故障表现和对应的操作建议,第二节介绍每个操作的具体执行流程。本文将不定期更新,欢迎留言反馈具体的故障场景。

2023-04-17 08:31:59 603

原创 Impala编译错误及解决办法汇总

Apache Impala repo里有C++、Java、Python、Bash的代码,编译过程中可能遇到各种问题。本文作为一个汇总,以后每遇到一个编译问题,解决完后都会更新一下。

2023-02-23 21:42:30 994

翻译 Impala Admission Control

Impala 集群用来控制查询并发量的功能称为 Admission Control(准入控制),本文主要翻译admission-controller.h 中的注释,以解释 Impala 准入控制(并发控制)的运行机制。

2022-11-26 20:58:52 401

原创 Impala的log4j和glog配置

Impala server的代码由C++和Java两部分组成,C++日志使用glog,Java日志使用log4j。这两部分输出是如何汇聚到同一个日志文件里的呢?日志级别又是如何协调配置的呢?之前在开发Impala的过程中,总发现一些加在构造函数里的日志没被打印出来,比如JniCatalog。最近终于弄清了impala的日志是怎么配置的,在此梳理一下。

2022-11-13 21:04:12 701

原创 Kudu-1.16编译中下载Gradle依赖失败的解决办法

国内机器无代理情况下编译kudu-1.16.0会遇到gradle依赖下载失败,本文记录了一个未经考究的解决过程。

2022-09-05 21:45:42 1687

原创 Apache Impala 4.1概览

Impala 4.1发布了!快来看看有什么更新吧!

2022-07-05 20:24:00 1463

原创 ORC索引的位置信息

ORC是Hadoop生态圈里一种流行的列式存储格式,自带schema和索引。索引是用来加速查找数据的,当查询条件能用上索引时,就跳转到文件对应位置来读取,跳过无关的数据。因此文件里的索引是要记录一个位置信息的,这样才能跳转。最近在debug时发现索引记录的位置信息不太好理解,这里记一下笔记。一个ORC文件按行横向切分成多个Stripe,每个Stripe里分成三部分,分别是索引、数据(Raw Data)和Stripe Footer。索引和Raw Data部分都按列来存储:(图片复制于https://or

2022-01-12 15:31:05 1488

原创 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 1525

原创 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 591

原创 如何在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 1376 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 514

原创 Impala-shell卡顿分析——记一次曲折的Debug经历

最近遇到一个impala-shell在处理中文字符时卡死不动的bug,整个Debug过程比较曲折,因为一开始走错了方向。最终是通过监听TCP层的传输找到切入点,从而走上正规,找到底层依赖库的一个bug,从而修复了问题。这篇文章尽量回忆整个Debug过程,以给自己一个警示作用。有点流水帐的味道,大家看看就好。...

2020-11-08 16:17:13 1329

原创 如何参与Impala社区的讨论

如果你遇到了Impala相关问题,又苦于不是Cloudera客户,无法得到技术支持,可以考虑在社区中发起讨论。当然,提问之前最好先自行Google,很多问题网上已经有答案了。Apache Impala社区邮件列表发任意邮件到 [email protected] ,并按回复操作来订阅邮件列表。然后把你的问题发到 [email protected]。历史的讨论可以在这个链接中看到:https://lists.apache.org/list.html?user@impa

2020-06-21 10:02:10 821

原创 在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 5307 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 715

原创 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 1503

原创 动态调整Impala日志级别

Impala日志级别诊断线上事故时,动态调整日志级别非常有用,Impala的各个server也提供这样的能力。每个server都有一个/log_level页面,如图:Impala的FE代码中主要用了FATAL、INFO、TRACE三种日志级别,很少用DEBUG。因此实战时一般是把日志级别调成TRACE,另外由于不确定是哪个类出问题,最好把整个 org.apache.impala 包的日志级...

2020-04-11 11:44:11 1150

原创 Impala编译:一个maven编译错误的解决

编译Impala时遇到了一个maven错误,准确地说是编译testdata模块时报的错。我用的指令是 “./buildall.sh -skiptests -format -testdata”,遇到的错误如下:========================================================================Running mvn -U packag...

2020-04-10 16:31:50 2426 1

原创 Impala元数据缓存的生命周期

上一篇文章《Impala元数据简介》介绍了Impala缓存的元数据(Metadata/Catalog)的具体内容,本文将介绍这些元数据缓存的生命周期,即它们是怎么初始化的,怎么加载的以及怎么失效的。以下是常见的元数据相关的问题,基本都跟元数据的生命周期有关:同样的查询,为什么第一次运行比后面几次运行都要慢很多?在 Hive 中建了个新表,但在 Impala 中不可见,如何解决?在 Hiv...

2020-03-08 20:39:23 1721 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 223

原创 Impala元数据简介

Impala元数据简介背景Impala是一个高性能的OLAP查询引擎,与其它SQL-on-Hadoop的ROLAP解决方案如Presto、SparkSQL 等不同的是,Impala对元数据(Metadata/Catalog)做了缓存,因此在做查询计划生成时不再依赖外部系统(如Hive、HDFS、Kudu),能做到毫秒级别的生成时间。另外缓存元数据也能极大减少对底层系统Master节点(Hive...

2019-12-05 09:38:53 3162

原创 如何对CDH集群中的Impala打印线程堆栈

如何对CDH集群中的Impala打印线程堆栈上一篇文章《Impala查询卡顿分析案例》介绍了怎么对Impala进程打印线程堆栈,JVM部分直接用 jstack 比较直接,但 C++ 部分由于要使用 gdb 或 breakpad 工具,还需要编译源码,显得比较繁琐。本文直接演示如何在 CDH 集群中打印 Impala 进程的线程堆栈,不再需要编译源码。当然第一次操作时还是需要下载一些工具,可以在集...

2019-11-10 18:28:20 889 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 2760

原创 Pip安装依赖失败的解决

新建了个virtual env,在安装一个项目的依赖时报错:$ pip install -r requirements.txt Collecting setuptools==3.4.4 (from -r requirements.txt (line 1)) Could not fetch URL https://pypi.python.org/simple/setuptools/: The...

2019-02-19 21:59:54 2276

原创 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 499

原创 Presto源码阅读——如何获取Hive中的Metadata(HMS+HDFS)

Presto源码阅读——如何获取Hive中的Metadata(HMS+HDFS)本文的Metadata定义SQL on Hadoop系统在执行一个query时所需要的Metadata主要有两部分Hive中的TableSchema信息和Partition信息,这部分从HMS(Hive MetaStore)中拿到HDFS中的文件信息(包括Block Location信息),这部分从...

2018-07-07 20:27:59 7521 2

原创 Presto基本概念

Presto基本概念Presto是Facebook开源的MPP SQL引擎,旨在填补Hive在速度和灵活性(对接多种数据源)上的不足。相似的SQL on Hadoop竞品还有Impala和Spark SQL等。这里我们介绍下Presto的基本概念,为后续的笔记做基础。Operator Model & Iterator ModelMPP(Massive Parellel Pr...

2018-05-20 10:37:18 2930

原创 统计Titan图中的点数和边数

图数据库Titan的gremlin shell可以统计点数和边数,但其是单线程的,速度较慢。可以基于MapReduce开发一个统计程序,直接读取HBase中数据表的Snapshot文件,解析出点和边的数据来进行统计。

2017-04-18 22:45:54 1806

原创 Impala源码阅读——SimpleScheduler

Impala中的Scheduler负责对各个执行计划分片(Plan Fragment)进行调度。SimpleScheduler是目前唯一的Scheduler实现,读懂SimpleScheduler的代码对后续阅读Impala更底层的代码有很大帮助。

2017-01-02 22:13:36 2703 2

原创 HBase Snapshot解析

Snapshot即是快照,代表某个时刻数据库中表的状态,就像是照片一样,记录了该时刻所有的数据。 HBase可以对某个时刻的表建立snapshot,过后可以恢复到该snapshot的状态,也可以用snapshot建立一个新的表等等。 本文重点在于解释,为什么HBase Snapshot的建立与恢复操作不涉及数据的大量复制,且能在常数时间内完成。

2016-03-13 15:05:25 3506 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除