云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

京东云_阿里云k8s_便宜的

小七 141 0

阿帕奇·斯帕克五岁了!

今天,我们要庆祝apachespark项目的一个重要里程碑——从Spark第一次开源到现在已经五年了。当我们第一次决定在加州大学伯克利分校发布我们的研究代码时,没有人知道Spark能走多远,但我们相信我们已经建立了一些非常精巧的技术,我们想与世界分享。从那以后的五年里,无数的贡献者和用户让Spark成为当今最前沿的计算框架,我们对此感到敬畏。事实上,据我们所知,Spark现在已经成为大数据领域最活跃的开源项目(要么每月查看贡献者,要么每月提交)。除了贡献者之外,它还建立了从批处理分析到流处理的数百个生产用例。为了庆祝Spark的五岁生日,我想做的一件事就是强调我们如何构建这个项目背后的一些关键想法,这些想法至今仍然适用。为此,我又看了一下Spark的第一个公开版本。首先要注意的是这个版本非常小:它有3900行代码,其中1300行是Scala解释器,600行是示例,300行是测试。自2010年3月以来,我很高兴地说,我们的测试覆盖率已经大幅提高。然而,关于尺寸的观察确实反映了一些重要的东西:从一开始,我们就一直在努力保持Spark引擎的小型化和紧凑化,这使得许多开发人员更容易理解,也更容易进行更改和改进。即使在今天,核心火花引擎也只有大约5万行代码。自第一个版本以来,主要的增加是对"shuffle"操作的支持,这需要新的网络代码和DAG调度器,以及对多个后端调度器(如YARN)的支持。尽管如此,即使是在今天,我们仍然可以定期对核心引擎进行大的改动,以提高所有Spark应用程序的性能或稳定性。例如,在我们去年的大规模排序工作中,Databricks的多名开发人员最终重写了Spark几乎所有的网络层。关于2010年的Spark,第二件要注意的事情是它能做什么:即使是这个~2000行引擎也能处理Spark今天最重要的两个工作负载:迭代算法和交互式查询。早在2010年,我们是唯一支持交互式使用的集群计算引擎,通过修改Scala解释器将代码提交到Spark集群。我们一直在寻求改善这种体验,并通过Spark的PythonAPI和数据帧等特性实现真正的交互式数据科学。此外,即使是2010年版本的Spark也能够以比MapReduce快20-30倍的速度运行logistic回归之类的迭代算法(随后的改进将其提高到100倍)。我们如何看待这个项目的最后一个重要因素是我们对简单、稳定的api的关注。2010年Spark附带的代码示例,如logistic回归和computing pi,与今天的Spark代码几乎相同(参见logistic回归,pi)。我们非常努力地定义开发人员可以在未来数年内构建的稳定的api,从而最大限度地减少他们为跟上Spark的改进而必须做的工作。从ApacheSpark1.0开始,这些兼容性保证现在已经正式适用于所有主要的Spark组件。2010年的Spark就足够了。从那以后,这个项目的发展情况如何?虽然Spark的所有领域都有大量的活动,包括对更多编程语言(Java、Python和soon R)、数据源和优化的支持,但Spark最大的一个增加就是它的标准库。多年来,Spark已经获得了四个高级库:Spark Streaming、MLlib、GraphX和sparksql,它们都运行在核心引擎之上,彼此之间可以轻松高效地进行互操作。今天,这些库是Spark中的大部分代码—大约20万行,而核心引擎中只有5万行。它们还代表了可用于大数据的单个最大的标准库,使编写跨越数据生命周期所有阶段的应用程序变得容易。尽管如此,这些图书馆还是相当新的,其中大多数是在过去两年中增加的。在未来的几年里,我希望这些库能够显著增长,目标是为大数据构建一个与小数据可用的库一样丰富的工具集。你可以在我从Spark Summit 2015的幻灯片中找到Databricks在这些库中工作的一些领域。最后,和其他五岁孩子一样,Spark有时在没有监督的情况下也会遇到麻烦,有时也很难理解。在Databricks,我们正在努力使Spark比以往任何时候都更易于使用和运行,通过我们对Spark代码库和支持材料的努力。我们在Spark上的所有工作都是开源的,直接面向Apache。此外,我们还提供了大量免费的在线培训材料,以及培训课程和书籍。最后,我们构建了一个服务,可以非常容易地运行Spark,只需点击几下,Databricks Cloud。我们希望您喜欢使用Spark,无论您在哪个环境下运行它,就像我们喜欢构建它一样。免费试用Databricks。今天就开始吧