赋格曲:统一的火花和Non-Spark生态系统对大数据分析

下载幻灯片

虽然在努力选择在不同的计算和机器学习框架如火花,Dask, Scikit-learn, Tensorflow, ETL和机器学习等为你的项目,你有没有想过统一成一个生态系统吗?在这次演讲中,我们将介绍我们开发了这样一个框架——赋格曲。这是一个抽象层上不同的框架,提供类似于sql的语言,也可以代表你的管道从端到端,高度可扩展的Python。赋格曲的框架,这是一个更容易和更快的来创建可靠、性能比使用本机火花和便携式管道,特别是对于非专业用户。

在这个演讲,我们将演示如何实现Node2Vec算法最重要的赋格曲,所以它可以运行在不同的计算框架和边缘可以处理图顶点与1亿年和30亿年在几个小时内使用火花作为后端。

我们还建立了一个统一的基于Kubernetes交互式的环境,火花和赋格曲,将展示伟大的项目迁移到这个系统的性能提升。我们还将讨论未来计划的赋格曲项目包括神游毫升和赋格曲流。我们的目标是创建一个统一的生态系统为分布式计算和机器学习。

看更多的火花+人工智能会话

免费试着砖

视频记录

大家好,我的名字叫汉旺。今天,我们将介绍一种新的分布式计算编程模型,神游,统一火花和non-spark生态系统对大数据分析在Python中。我们要解释我们的动机,然后我们将讨论神游核心,神游SQL,毫升和流媒体。后,我们将通过赋格曲的用例。最后,这是我们的开源计划。工作在不同的大数据问题,我发现我总是我使用重新评估框架。为了是可伸缩的和快速的,我总是要找出特殊治疗。

动机的赋格曲

我认为问题是我们有太多的选择。他们每个人都擅长某些事情,但很多都是重叠的,许多人试图排除其他选项。所以,如果我们能有一个障碍层统一不同的生态系统?

如果我们可以专注于描述怎么做而不是怎么做?加,这一层不应避免直接使用任何潜在的系统。这是赋格曲的动机。这是一个纯粹的抽象层。统一和简化核心概念的分布式计算和分离你的逻辑与任何特定的解决方案。很容易学,容易在端口和端口。这不是入侵,没有阻碍,而不是排斥的。它不是劫持您的项目。

例子:Node2Vec应用某些走战略图生成节点向量的集合

例如,Node2Vec图嵌入式是一个不错的想法。的订单纸开源这个算法和Python。但是,当我们试图把它应用在大规模图无法工作,所以我们要重新设计它。

最初的版本是建立在NetworkX库上的本机Python。我们决定使用替代NetworkX操作加入和变换。

所以我们不再有单独的机器约束。顺便说一下,在神游变换类似于地图添加关键操作和组的火花。我们使用神游工作流协调连接和转换操作。这是纯粹的抽象和可以运行在本机Python,火花,和Dask,无论赋格曲的支持。在这个演讲胡锦涛将显示其伟大的表现。但首先,让我告诉你神游的代码。

Node2Vec神游代码

超过90%的源代码是纯本地Python,所以我没有把它们。这里的前15行神游代码就是一切,我们需要表达高水平的逻辑。

和18到20行显示了如何编写本地Python,火花,Dask。你只需要改变一个参数。

现在,让我们看看赋格曲的核心。

在不同的计算平台之上,我们首先观看一个名为Executionbob体育客户端下载Engine的抽象层。这是一个抽象的基本操作,如地图,分区,加入,放松语句序列。ExecutionEngine之上我们用有向无环图来描述工作流,这类似于气流。然后加上编程接口和内置扩展保存等负载,并打印。在顶级我们提供一种新的方式来表达在工作流,神游SQL。我们也有运动学习和今年晚些时候发布流媒体功能。那么,什么是特殊的赋格曲编程模型呢?

赋格曲的编程模型

首先,它是跨平台的。bob体育客户端下载赋格曲工作流可以运行在不同的赋格曲执行引擎。赋格曲不仅是底层系统的适应性,但更重要的是它适应用户。

为了使用框架如火花和v字形,通常必须使用其接口,修饰符,或者数据帧。你必须适应框架。但在神游框架适应你。使用这种编程模型可以保持你的大部分逻辑本机Python没有依赖赋格曲。同样,如果你迁移到神游还可以保持你的大部分代码都没动。

可测试性是另一个定位的分布式系统,但赋格曲更容易。它帮助你编写模块化的代码来保持你的大部分逻辑本地,更容易测试部分涉及赋格曲,因为您可以运行与本机Python ExecutionEngine小标记数据。它也更容易、更快捷的测试。例如,我们实现单元测试覆盖率100% Node2Vec使用本机Python ExecutionEngine。我们也在当地引发运行这些测试,它是在慢十倍。

一个工作流的例子

让我们来看看一个工作流的例子。从1到12行,本机Python。赋格曲从第14行开始。

Plus_n和plus_n_pd是做同样的事情,但不同的签名。我们使用他们作为变压器线16日和17日,和赋格曲适应你的本机函数,根据注释类型提供的数据类型。

这里plus_n_pd作为地图添加功能,和plus_n作为groupby应用功能。在赋格曲,变压器结合两个概念和可以直接使用本地图标代码。

赋格曲的扩展

现在让我们来仔细看看神游扩展和DAG。神游DAG由五个不同类型的节点我们称之为扩展,和图的边缘是严格方案艺术数据帧。司机一侧或编排方面,我们可以定制创造者,教授,和器。每个箭头意味着一个输入或输出数据帧。

在工作方面或计算方面,我们可以定制变压器和cotransformer。实际上,您可以编写本地火花代码在任何驱动程序扩展。这个架构并不能阻止你使用任何本地火花特性。使用DAG有好处。这是一个例子,考虑到数据帧运行运行映射器,让结果X和下一个两步上运行不同的映射器B和C X和单独保存。

如果你写这在本地执行顺序将火花,B, C,这是违反直觉的。如果您添加持续的第一步,然后变成了A, B, C。

为什么DAG ?

但使用启用了自动持续的赋格曲,B和C是自动保存后将并行运行。所以在神游,直观的表达式可以产生最佳的执行。然而,为了达到同样的火花需要额外的努力。

优化DAG执行

除了自动并行化和汽车持续下去,还有其他福利使用DAG。可以捕获更多的错误当你构建DAG之前提交一个火花的工作,所以你可以失败得更快。你也能与检查点恢复执行。请注意存在的区别和检查点。坚持是为以下任务缓存。它将被清除后执行。检查点是为多个执行缓存。它将保存后执行。正如我所提到的,我们创建了一个新的方法来描述你的端到端工作负载,神游的SQL。

赋格曲SQL Snriches: =创建17)模式和str, f.int

让我们来看一个例子。我们创建一个数据帧通过创建语句和分配,然后我们把它使用plus_n和分区由k。然后,我们使用一个标准的SQL join语句。

然后,我们有一个简化的匿名select语句,然后我们打印和保存该数据帧。

然后我们在做一个昂贵的变换后b。注意到双问号df意味着检查点。最后,我们使用另一个扩展器维护这两个数据帧是相等的。

神游SQL和SQL Fuque SQL引发火花SQL

这是一个比较神游SQL和SQL火花。主要的区别在于,神游SQL是我们的工作流,并引发SQL任务级别。赋格曲SQL丰富火花SQL和可以一起胶水火花SQL和赋格曲的扩展是一个端到端流程。此外,神游SQL是跨平台;bob体育客户端下载它可以运行没有火花。此外,神游SQL支持缓存和检查点。尽管它是SQL语言,它是专为工作流。值得提及的是,如果运行在火花,神游还支持火花udf。

赋格曲编程接口和SQL

赋格曲的SQL和编程接口的特点是不平等的。然而,他们可以把你放在不同的心态。例如,我想分区列的数据帧,每个分区的第一张唱片。如果你使用编程接口变压器看起来漂亮和干净,但如果你是在SQL心态,你可能首先考虑使用代码。哪一个更好?不同的人可以有不同的意见,但是我们只提供选项。

接下来,我co-speaker胡锦涛将神游机器学习和流。谢谢你!大家好,我的名字叫张国家主席胡锦涛。我将谈论神游机器学习和赋格曲流。

赋格曲毫升组件

赋格曲毫升有四个主要组件。首先,您将创建适配器的ML框架以便神游工作流可以直接使用模型来创建这些框架。例如,赋格曲可以直接火车,曲调,推断Tensorflow兼容的模型。接下来,我们将创建一个抽象层为流行的ML模型,例如,一个线性回归模型在赋格曲可以有不同的适配器Sklearn和火花毫升等。我们将在这个主管与NeuronBlocks团队协作。NeuronBlocks是深的高层次描述语言学习和已经被微软开源。我们也为流行的ML算法库创建域和主题。例如,有争议的低工作图数据。还有一个图书馆为时间序列数据和更多。

最后,我们将提供抽象层共同毫升的实用程序,例如,参数优化,数据验证,所以你不必做重复工作的时候。

模型和参数全面

这个代码块是一个毫升赋格曲的示例SQL和这是一个演示如何使用适配器和公用事业在前面提到的幻灯片。首先,我们需要决定学习适配器SKModel训练数据集。接下来,我们说一些常见的参数来定义模型。下一节是hyper-param调优。神奇的是,你可以同时进行模型全面和hyper-param调优方式确定的。在这个示例中只阅读我们的三种不同的模式可供选择:线性回归、线性SVR, xgboost回归量。最后,您可以使用n交叉验证和更健壮的模型选择的得分。

我们有40分布式整个过程包括模型和参数全面,训练,和交叉验证。赋格曲很容易跟进机器学习的实践。

毫升库:Node2Vec

这里有一个例子毫升库:Node2Vec,我们已经简要地讨论了在前面的幻灯片。的核心步骤Node2Vec随机行走在每一个顶点的图生成大量的随机路径作为文本。本文然后最后融入Node2Vec溢价引擎嵌入的结果。我们实现了分布式Node2Vec算法在赋格曲,它使用邻接表表示图和分布式Breath-First搜索随机漫步算法实现高可伸缩性。

我们使用赋格曲做基准测试和低计算工作,协调众多计算机框架。

基准测试

蓝色曲线是一种运行性能从原作者加载代码工作,和其他的性能曲线相同的赋格曲代码运行在不同的执行引擎。图,100万年结束顶点,神游版上引发明显更快。

这是最伟大的表演的赋格曲的灵活性和可伸缩性的负载工作。

大规模的测试

我们也进行测试非常大的图。1000万年图顶点和3亿边缘,负载工作过程需要两三个小时和500核3 tb的内存。图的顶点与1亿年和3000亿年的边缘,需要6 - 8小时2000核和12 tb的内存。

毫升库:时间序列的季节性

另一个毫升库是对时间序列的季节性预测,使用卡尔曼滤波器,这个库有不错的性能在嘈杂的数据集。你可以模拟特殊事件和异常存储数据。你可以在任何时间间隔:时间序列每小时、每天、每周、每年。它可以处理非常大的数量与季节性时间序列构建的一种方式。

赋格曲流

赋格曲流使用神游组件来处理实时和准实时应用程序。我们有一个神游火花流时间线在生产、运行有效和可靠。您可以使用神游协调抽象层的流连接器,迫使框架比如火花流,Flink。我们有测试用例对卡夫卡连接器引发流,和我们正在寻找合作伙伴在额外的赋格曲流特性。bob体育外网下载

在下一节中,我将展示一些赋格曲的用例。

一个交互式按需引发的生态系统

首先,传统的交互式开发环境设置与Jupyter笔记本。与火花必须使用用户备用火花+是必需的。在我们的例子中,我们使用赋格曲作为一个抽象的计算层和入口点与任何计算框架。我们的集群上出现Kubernetes和每个用户可以启动和停止自己的集群在自己的笔记本。延迟启动和停止集群在秒级。该系统是纯粹的需求。我们不使用集中备用集群。请注意,赋格曲是一个抽象层,它不依赖于Kubernetes或火花。介绍了这个系统的统一由Kubernetes和火花,尽管赋格曲提供了一致性、简单性和灵活性。除了与EFS弹性文件系统,安装到每个部分更新后的代码和依赖将立即在集群的火花,这使得它非常敏捷的数据科学家尝试新想法或包。 And Fugue makes code to be modular and consistent. The workload code and be very easily moved to production phase.

我们也想与李Gall从数据打破赋格曲的环境规模非常大的十字架上集群Kubernetes火花Uniforum计划。

我也有一个谈论火花Kubernetes安排会议在今年的AI峰会的系统是什么Kubernetes +火花+神游在之前的幻灯片。

迁移项目

我们已经与不少产品团队合作迁移遗留管道神游管道。高等遗留意味着培训每个模型在不同的独立的计算机。如果你有三个模型,例如你已经需要三个电脑。迁移创建和运行时节省大量成本。可以提高代码的可测试性,降低了运行时。

所有的迁移项目观察各使用性能改进。平均总CPU时间减少了74.6%,和平均总运行时减少了83.9%。

多区回归

这是一个巨大的多区回归问题几百提出模型训练和优化。每一个遗留管道成本约630美元比七个小时在所有模型和可靠性仅为80%左右。赋格曲管道只花费23美元,在30分钟内完成所有模型和可靠性的99.5%。换句话说,神游管道成本减少了95%以上,减少了运行时超过90%。

时间序列预测

另一个巨大的时间序列预测问题。假设您想要一些业务指标的预测价值下周,下个月或下一季,这样你就可以有更好的预算规划和决策。我们使用这样的预测模型在生产。迁移到神游管道后,运行时的总体成本节约90%以上。

总之,神游的统一计算框架与统一的接口。它有很多代码变化对管道迁移。

赋格曲SQL是工作流的小说语言。它可以优化您的工作流执行。

Kubernetes +火花+赋格曲是一个很好的结合分布式计算的灵活性和效率高。

有很多真正的用例显示神游管道取得了更大的性能提升成本,同时运行时,和可靠性。

赋格曲项目将是一个统一的生态系统为集成分布式系统和机器学习。我们正在寻找更多的合作伙伴从感兴趣的人。bob体育外网下载

接下来,我co-speaker汉旺宣布我们的开源计划。大家好,今天我们有开源赋格曲和Node2Vec赋格曲。目前,赋格曲可以运行在火花,Dask,本机Python。赋格曲SQL也释放了。你可以pip安装或克隆在您自己的机器上试一试。教程是短的和有趣的。这是一个伟大的方式开始。我们计划发布第一个版本在神游毫升到2020年9月,包括Sklearn和Testflow适配器,参数优化,数据验证功能。到2020年底,我们希望释放神游流的第一个版本,包括流计算的抽象接口支持引发流。

我们正在寻找合作者。让我们共同努力,让开源世界更加统一。

谢谢你出席我们的演示的赋格曲。请pip安装赋格曲一试。

看更多的火花+人工智能会话

免费试着砖
«回来
对汉旺

Lyft Inc .)

汉旺的技术领导Lyft机器学习平台,专注于分布式计算和机器学习解决方案。bob体育客户端下载在加入Lyft之前,他在微软工作,哈德逊河交易,亚马逊和Quantlab。汉族是赋格曲的创始人项目,针对民主化分布式计算和机器学习。

关于胡锦涛张

广场有限公司

国家主席胡锦涛张机器学习取得了博士学位,博士,各互联网公司一直在与丰富的经验提供端到端解决方案在大规模机器学习问题。他的兴趣集中在研究、开发、和基础设施在分布式系统中,大数据,深度学习和机器学习。