Hive MetaStore 在快手遇到的挑战与优化

导读:快手基于Hive构建数据仓库,并把Hive的元数据信息存储在MySql中,随着业务发展和数据增长,一方面对于计算引擎提出了更高的要求,同时也给Hive元数据库的服务稳定性带来了巨大的挑战。本文将主要介绍Hive MetaStore服务在快手的挑战与优化,包括:

快手SQL on Hadoop智能引擎架构

Hive MetaStore在快手的挑战

Hive MetaStore在快手的优化

快手SQL on Hadoop的技术规划

01 快手SQL on Hadoop智能引擎架构

Apache Hive是由Facebook开源的数据仓库系统,提供SQL查询能力,快手基于Hive搭建数据仓库,随着业务迅速发展和数据规模增长,Hive的性能开始成为瓶颈,无法满足业务需求。

Hive把用户SQL通过解释器转换为一系列MR作业提交到hadoop环境中运行,MR存在作业启动、调度开销大、落盘多磁盘IO重的问题,这导致其性能注定无法太好,针对Hive查询速度慢的问题,业界先后推出了包括presto/impala/spark等查询引擎,在实现和适用场景上各有优缺点。

在计算引擎层面我们所面临的几个挑战是:

高性能:业务要求更高的查询性能,需要引入更高效的计算引擎

易用性:由于不同引擎在语法以及适用场景上各有优缺点,对于业务来说存在学习和使用门槛,需要通过技术手段来降低或者消除这种门槛

扩展性:技术是发展非常快的,未来随着技术发展可能还会有其他更高效的引擎不断出现,我们在架构设计上需要能够考虑到很好地扩展性支持这些新的计算引擎,需要做到计算引擎的可插拔、易扩展