自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 openSUSE环境Impala编译步骤

若进行了此操作,impala编译完成之后,需要把lib/libstdc++.so* 替换为/usr/lib64/libstdc++.so*(不同环境可能位置不同,可执行find /usr -name libstdc++.so*确认)。在其他toolchain全部编译完成后可以执行./buildall.sh,或执行./build.sh curl单独编译。编译LLVM时,可能出现与GCC相同的报错,需进行类似的修改,注释掉相同的CHECK函数;

2024-02-23 10:01:12 412 1

原创 浅析Impala中的字典编解码

Parquet文件格式使用了RLE/Bit-Packing混合编码算法,Impala读取Parquet文件的过程也实现了对应的解码算法,本文一方面作为调研Impala中RLE/Bit-Packing混合解码的记录,另一方面保留一些用于后续SIMD优化的资料,希望对后续的SIMD优化编解码有所帮助。

2024-02-14 23:57:19 1049 1

原创 Doris向量化引擎部分实现分析

Doris的向量化引擎重构了Impala中的RowBatch-Tuple数据结构以及各算子的实现逻辑,形成了以Column为处理单位的向量化架构,在某些场景下的benchmark能够领先于市面上的其他MPP引擎。本文对Doris向量化引擎的数据结构、Scan以及聚合相关逻辑进行简要举例分析,探究其向量化实现对性能的提升受益于哪些方面的优化。

2024-02-14 23:51:22 1028 1

原创 Doris中SIMD相关实现简析

Doris是一个基于MPP架构的OLAP查询引擎,实现了执行层面的向量化引擎。本文简要介绍SIMD相关基本概念,并举例分析Doris向量化引擎中的两个SIMD相关优化实现。

2024-02-14 23:39:37 952 1

原创 Impala主要RPC实现及执行过程浅析(以DataStreamService为例)

Impala目前主要使用Krpc和Thrift两种RPC框架,其中Krpc主要实现查询数据传输、状态控制等功能,Thrift主要用于在元数据同步、节点状态同步等功能。本文从DataStreamService::TransmitData和DataStreamService::EndDataStream出发,简要分析Impala中RPC的实现原理和执行过程。

2024-02-14 23:29:10 1224 1

原创 Alluxio数据block移动逻辑分析

Alluxio中的数据不是一成不变的,而是随时在调整,根据不同配置和实际情况,任何数据都可能被移动至顶层(内存),或底层(HDD/SSD),亦或被换出Alluxio。本文从日志和代码出发,简要分析Alluxio内部缓存数据移动的逻辑。

2022-02-02 01:18:28 461

原创 Impala DML执行流程解析(以CTAS/INSERT为例)

执行计划Impala执行DML查询的执行计划与普通SELECT相同,从EXPLAIN的结果中可以看出,执行计划基本没有区别,左边为普通SELECT查询的执行计划,右边为CTAS建表的执行计划,只是多了一个写入hdfs的部分。 执行过程分析代码可以发现,Impala在接收查询的入口处将查询分为多种,大致如以下伪代码所示: switch (exec_request_.stmt_type) { case TStmtType::QUERY: //普通查询和DML一起处理 case TS

2022-02-02 01:15:36 1001

原创 Alluxio文件读写过程解析

作为一个分布式缓存系统,Alluxio实现了与HDFS类似的文件管理模块,在写入新数据时,Alluxio需要保证数据能够正确写入Alluxio和UFS(底层),并确保两边数据的一致。本文及后续文章将从线上遇到的bug出发,基于代码探究Alluxio读取/写入文件的过程,梳理Alluxio如何保障数据写入的一致性。如有错误,还请指正。

2022-02-02 01:09:57 1745

原创 Alluxio部署实践与性能调优

Alluxio作为一个分布式内存级的缓存系统,对上层的查询引擎通过缓存能实现查询加速的效果,对下层的存储引擎可通过统一命名空间来提高易用性。但在实际使用过程中,需要根据实际情况进行针对性的性能调优,否则可能对性能造成负面影响。本文从部署实践的角度简要介绍Alluxio以及其常用的配置项,分析配置项对性能可能造成的影响,并简要介绍了在使用过程中Alluxio社区版的一些问题及处理措施。

2022-02-02 01:05:11 3440

原创 Alluxio元数据问题浅析

Alluxio作为分布式内存缓存系统,虽然能够提高大数据、AI场景等的数据处理速度,但其实也增加了系统的复杂度。本文在前文中部署Alluxio的基础上,简要分析Alluxio与UFS之间的元数据同步问题,并给出了官方推荐用来解决元数据问题的方法。

2022-02-02 00:59:13 604

原创 Alluxio部署实践

Alluxio(原名Tachyon)是2012年诞生的开源分布式内存文件系统,可用于支持Presto、Impala、Spark等分布式查询/计算引擎的计算-存储分离。本文将对Alluxio进行简要介绍,并阐述Alluxio部署的一些注意事项以及可能遇到的问题与处理方法。

2022-02-02 00:55:49 988

原创 Impala Join策略与执行计划生成

众所周知,JOIN是两个表进行关联进而得到结果的操作,在SQL层面,JOIN可以有左连接、右连接、全连接、内连接等多种用法。但对于Impala,主要的JOIN策略只有两种——Broadcast Join和Partitioned Join。本文将结合Impala代码对Impala选择Join策略的过程进行分析。

2022-02-02 00:39:17 1847

空空如也

空空如也

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

TA关注的人

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