01 背景介绍
近几年随着B站业务高速发展,数据量不断增加,离线计算集群规模从最初的两百台发展到目前近万台,从单机房发展到多机房架构。在离线计算引擎上目前我们主要使用Spark、Presto、Hive。架构图如下所示,我们的BI、ADHOC以及DQC服务都是通过自研的Dispatcher路由服务来实现统一SQL调度,Dispatcher会结合查询SQL语法特征、读HDFS量以及当前引擎的负载情况,动态地选择当前最佳计算引擎执行任务。如果用户SQL失败了会做引擎自动降级,降低用户使用门槛;其中对于Spark查询早期我们都是走STS,但是STS本身有很多性能和可用性上的问题,因此我们引入了Kyuubi,通过Kyuubi提供的多租户、多引擎代理以及完全兼容Hive Thrift协议能力,实现各个部门Adhoc任务的资源隔离和权限验证。