技术文章

从数据路径、系统边界和故障现场理解复杂软件

文章分为大数据系统、浏览器内核、系统工程与 AI 工程四个专题。每篇文章尽量回答三个问题:组件负责什么、请求怎样执行、出现问题时从哪里查起。

大数据系统 · 浏览器内核 · 系统工程 · AI 工程

第一次接触 Kudu 和 Impala,最容易产生两个误解:把 Kudu 当成“另一个 HDFS”,或者把 Impala 当成“装在 Kudu 上面的数据库”。两种说法都没有抓住边界。

Kudu 是分布式存储引擎。 它负责把表切成 Tablet,保存每一行、处理主键、更新、删除、快照和多副本。

Impala 是分布式 SQL 查询引擎。 它负责理解 SQL、选择执行计划、安排并行任务、扫描数据、执行 Join、聚合和排序,再把结果返回客户端。

两者组合后,Impala 可以查询和修改 Kudu 表,但数据最终仍由 Kudu 保存;Kudu 不负责解析 GROUP BY 或规...