Amogh Margoor

高级工程师Qubole

    Amogh Margoor目前在Qubole领导Spark项目。他的兴趣领域是编译器,大数据引擎和SQL优化器。在Qubole,在Spark之前,他曾在Presto和Hive的内部工作,帮助他们扩展到云上的数千个节点。具体来说,他致力于连接优化,如动态过滤和基于成本的连接重排序,连接分布类型,支持物化视图和OLAP多维数据集的SQL优化器,自动调优大数据堆栈,AIR(数据智能和QDS内部数据仓库)的基础设施,云对象存储(S3)优化等。

    过去的会议

    2019年欧洲峰会 自动驾驶Apache Spark使用机器学习

    2019年10月16日下午05:00 PT

    在Qubole,用户在云上(900+并发节点)大规模运行Spark。在这样的规模下,为了高效地运行SLA关键任务,调优Spark配置是必不可少的。但这仍然是一项艰巨的任务,主要是由试验和错误驱动的。在这次演讲中,我们将解决在Spark上自动调优SQL工作负载的问题。同样的技术也可以适用于非sql Spark工作负载。在我们早期的工作[1]中,我们提出了一个基于简单规则和见解的模型。它在优化查询和查找运行查询的正确实例类型方面简单而有效。

    然而,在自动调优Spark配置方面,我们看到了改进的空间。在探索中,我们发现了以前使用机器学习技术解决自动调优的工作。简单模型[1]的一个主要缺点是它不能使用多次查询来改进推荐,而机器学习技术的主要缺点是它缺乏特定领域的知识。因此,我们决定将这两种技术结合起来。我们的自动调谐器与两个模型交互以达到良好的配置。

    一旦用户选择了一个要自动调优的查询,就会根据模型计算出下一个配置,并与之一起运行查询。来自运行事件日志的度量被反馈给模型以获得下一个配置。自动调谐器将继续探索良好的配置,直到满足用户指定的固定预算。我们发现,在实践中,与专家在实际工作负载下选择的配置相比,这种方法提供了更好的配置,并且很快收敛到最优配置。

    在这次演讲中,我们将介绍一种新的ML模型技术,以及它与我们之前的方法相结合的方式。实际工作负载的结果将与生产它们的限制和挑战一起展示。[1] Margoor等人,“SQL-on-Hadoop引擎的自动调优”2018,IEEE CLOUD