Hive内容分享(十):Hive MetaStore 在快手遇到的挑战与优化

目录

快手SQL on Hadoop智能引擎架构

Hive MetaStore在快手的挑战

Hive MetaStore在快手的优化

1. MetaStore读写分离架构设计

2. MetaStore API优化

3. MetaStore流量控制架构设计

4. MetaStore Federation架构设计


快手SQL on Hadoop智能引擎架构

 

5f10eb52d8bca5816fad3c3380eabeb0.png

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

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

 

d136cf680a114399b2821fec9a67e42d.png

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

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

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

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

  • 低成本:围绕Hive我们构建了大量周边工具及服务,包括资源管理、血缘管理、权限控制等各个方面。如果每引入一个引擎都再各自开发一套周边工具及服务的建设会是一个非常昂贵的事,所以这一块需要做到低成本接入

 

2fa14283d03db30fae351c9c9fea00b8.png

基于上述考虑,我们最终基于HiveServer本身的Hook架构,实现一个BeaconServer。所有的查询仍然以HiveServer作为统一入口,从而解决易用性和低成本的问题。

BeaconServer作为后端Hook Server服务,配合HS2中的Hook,在HS2 服务之外实现了所需的功能,包括根据一定规则路由SQL到适当的引擎,从而起到查询加速的效果。当前支持的模块包括路由、审计、SQL 重写、错误分析、优化建议等。

BeaconSer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之乎者也·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值