Impala在网易大数据的优化和实践+ 查看更多
Impala在网易大数据的优化和实践
+ 查看更多
网易大数据平台的底层数据查询引擎,选用了 Impala 作为 OLAP 查询引擎,不但支撑了网易大数据的交互式查询与自助分析,还为外部客户提供了商业化的产品与服务。今天将为大家分享下 Impala 在网易大数据的优化和实践。

对于数据量较少的场景,例如百万数据以下的情况,可以采用传统的关系型数据库,如 MySQL 或者 PostgreSQL 等,或者一些文档数据库,比如 MongoDB 等。随着数据量的增大,达到上亿级别时,一般选择分析型数仓来存储,并使用 OLAP 引擎来查询。此等规模的数据查询,对响应时间的要求虽然比关系型数据库要低,但一般也要求在秒级返回查询结果,不能有太大的延迟。Impala、Presto、Greenplum 等都在此列。当规模继续扩大到上百亿以上时,则会选择批处理引擎,如 Hive、Spark 来进行数据处理。
今天分享的 Impala 就是针对分析型数仓的查询引擎。分析型数仓有很多种建模方式。

MPP 架构,去中心化 优秀的查询性能 友好的 WebUI 界面 完全兼容 Hive 元数据 Apache 顶级项目,社区活跃度高 支持多种数据格式( Parquet/ORC 等) 与 Kudu 结合使用,实时数仓




Impala 管理服务器 元数据同步增强 基于 zookeeper 的服务高可用 支持更多存储后端 其他增强和优化








按照大业务划分不同的集群 按照不同的子业务或者 SQL 类型划分队列 coordinator 节点与 executor 节点分开部署 对于机器数比较少的集群,机器上可部署多个节点,增加并发 业务方重试机制,以免 impala 节点挂掉导致 SQL 失败 通过 impala hint 改变表的 join 方式 结合实际情况参考是否设置 mem_limit ,设置多大 mem_limit




云音乐 A/B 测试早期使用 Spark 按照小时粒度,完成从ODS 到 DWD 层的数据清洗工作,之后生成用户分流表和指标统计表,再使用 Spark 关联这两张表的结果写入到Kudu 中,最后使用 Impala 对接数据,供用户查询。这样数据延迟至少1~2小时,有些结果甚至在第二天才能看到。但是对于 A/B 测试,能够实时看到结果才是最好的。

对此云音乐团队基于 Flink 做了实时性改造。将 DWS 变成流表,这样 Impala 可以同时查询 T+1 的结果表和流表中的实时数据。A/B 测试的效果就可以近实时的看到了。
分享到: