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

免备案CDN_华为软开云_免费6个月

小七 141 0

2014年阿帕奇火花州

这篇文章最初出现在insideBIGDATA上,经允许在这里转载。随着第二届Spark峰会的召开,我们想回顾一下我们自2009年以来的历程,当时ApacheSpark是用于大规模数据处理的快速通用引擎,最初被开发出来。看着Spark在过去的几年里变得成熟是令人兴奋和极为欣慰的,这在很大程度上要归功于活跃的、开源的社区,他们紧紧抓住它,并开始为Spark做出今天的贡献。Spark的概念最早出现在加州大学伯克利分校的AMPLab(AMP代表算法、机器和人)。AMPlab拥有大量的行业资金和风险敞口,对于大数据的早期采用者来说,什么是重要的以及存在哪些问题,AMPlab有着独特的视角。我们曾与Hadoop的大多数早期用户合作过,并一直看到同样的问题出现。Spark本身最初是为了解决这样一个问题:在集群上加速机器学习应用程序,而实验室中的机器学习研究人员在使用Hadoop时遇到了困难。然而,我们很快意识到我们可以轻松地涵盖更广泛的应用程序集。愿景当我们与早期的Hadoop用户合作时,我们看到他们都对MapReduce的可伸缩性感到兴奋。然而,一旦这些用户开始使用MapReduce,他们就需要比系统所能提供的更多的东西。首先,用户希望更快地进行数据分析,而不是像MapReduce的批处理模型那样等待几十分钟来运行查询,他们希望交互式地、甚至连续地实时查询数据。第二,用户需要更复杂的处理,例如迭代机器学习算法,而这些算法不受MapReduce僵化的一次通过模型的支持。在这一点上,一些系统已经开始作为这些问题的点解决方案出现,例如,只运行交互式查询的系统,或者只运行机器学习应用程序的系统。然而,这些系统很难与Hadoop一起使用,因为它们需要用户学习并将不同框架组合在一起以构建管道。相反,我们决定尝试推广MapReduce模型,以便在单个框架中支持更多类型的计算。我们只使用了模型的两个简单扩展就实现了这一点。首先,我们增加了对内存中数据的存储和操作的支持,这是对机器学习等应用程序所需的更复杂的迭代算法的关键优化,而且随着内存价格的持续下跌,这种算法被证明是精明的。其次,我们将执行建模为一般有向无环图(DAGs),而不是严格的map和reduce模型,这使得即使在磁盘上也有显著的加速。通过这些附加功能,我们能够覆盖各种新出现的工作负载,在保持单一、简单的统一编程模型的同时,可以匹配甚至有时超过专用系统的性能。随着时间的推移,这个决定允许构建新的功能,如Shark(SQL over Spark)、Spark Streaming(流处理)、MLlib(机器学习算法的有效实现)和GraphX(graph computation over Spark)。Spark中的这些模块不是独立的系统,而是用户可以用强大的方式组合成一个程序的库。加上Spark的80多个基本数据操作操作符,与以前的多系统管道相比,它们大大简化了构建大数据应用程序的难度。我们已经设法使它们在各种编程语言中可用,包括Java、Scala和Python(现在可用)以及不久的R。图1:火花堆随着人们对Spark的兴趣增加,我们收到了很多关于Spark与Hadoop的关系以及Spark是否是它的替代品的问题。事实上,Hadoop由三个部分组成:文件系统(HDFS)、资源管理(YARN/Mesos)和处理层(MapReduce)。Spark只是一个处理引擎,因此是最后一层的替代品。让它在HDFS数据上运行是一个自然的起点,因为HDFS中的数据量正在快速增长。然而,Spark的体系结构也允许它支持Hadoop之外的许多存储系统。Spark现在被用作其他数据存储(如Cassandra、MongoDB)的处理层,甚至可以无缝连接来自多个数据存储(例如HDFS和操作数据存储)的数据。成功来自社区也许使Spark如此强大的一个决定是我们继续致力于保持它100%的开源,并与来自世界各地的大量贡献者合作。这一承诺将继续为Spark的未来和有效性带来好处。在相对较短的时间内,开源社区的热情高涨,而且还在不断增长。事实上,在过去的12个月里,Spark已经有来自50多个组织的200多人为该项目贡献代码,使其成为Hadoop生态系统中最活跃的开源项目。即使在达到这一点后,Spark仍然保持着稳定的增长,使我们朝着曲棍球棒采用曲线的拐点迈进。社区不仅在开发上投入了数不清的时间,而且还让人们对Spark感到兴奋,并将用户聚集在一起分享想法。其中一个更激动人心的事件是2013年12月在旧金山举行的第一届Spark峰会,吸引了近500名与会者。在今年6月30日举行的首脑会议上,我们的与会者人数增加了一倍。2014年的峰会包括50多场关于应用、数据科学和Spark研究的社区讲座。此外,Spark社区会议已经在美国和国际范围内萌芽,我们预计这一数字还会增长。图2:按版本划分的Spark贡献者企业中的火花我们也看到了企业的兴奋情绪真正高涨。经过最初的概念验证过程后,Spark在企业生态系统中找到了自己的位置,每个主要的Hadoop分销商都将Spark作为其分销的一部分。对于许多这样的发行版,支持来自下至上:我们从供应商那里听说客户正在自行下载并使用Spark,然后联系供应商要求他们支持它。Spark被广泛应用于许多垂直领域,包括大型互联网公司、政府机构、金融服务公司,以及雅虎、eBay、阿里巴巴和美国宇航局等主要公司。这些企业正在为各种用例部署Spark,包括ETL、机器学习、数据产品创建和流数据的复杂事件处理。垂直特定案例包括流失分析、欺诈检测、风险分析和360度客户视角。许多公司正在使用Spark的可伸缩机器学习库(MLlib)进行高级分析,该库包含利用迭代产生更好结果的高质量算法。最后,除了直接由客户使用之外,Spark越来越成为越来越多的高级业务应用程序的后端。主要的商业智能供应商,如Microstrategy、Pentaho和Qlik都已经在Spark上认证了他们的应用程序,而一些创新的初创公司,如Adatao、Tresata和Alpine都在基于Spark开发产品。这些应用程序将Spark的功能带给整个企业中更广泛的用户。Spark的未来我们最近发布了apachespark的1.0版本,这是该项目的一个重要里程碑。此版本包括许多新增功能,例如:一个稳定的应用程序编程接口,提供所有1.x版本的兼容性。sparksql提供模式感知的数据建模和SQL语言支持。支持Java8Lambda语法以简化用Java编写应用程序。增强了MLlib和一些新的算法;MLlib自2013年9月推出以来,它一直非常活跃,有40多个贡献者。对Spark的流媒体和图形库进行了重大更新。如果没有社区的支持,这些都不会发生。这些特性中有许多是用户直接请求的,而其他特性则是由开发此版本的几十名开发人员提供的。我们的首要任务之一是继续使Spark更加强大,并专注于关键的企业功能,如安全、监控和无缝生态系统集成。此外,Spark的持续成功依赖于一个充满活力的生态系统。对我们来说,看到社区在Spark上、下和周围进行创新和提升是令人兴奋的。保持不同Spark发行版之间的兼容性将是至关重要的,因为我们已经看到了分叉和碎片化对开源工作的破坏性。我们想定义并集中在Apache版本Spark的兼容性上,在这里我们将继续做出我们的贡献。我们很高兴看到社区围绕这一愿景团结起来。虽然Spark在过去的五年里取得了长足的进步,但我们意识到还有很多事情要做。我们正在努力在核心引擎和构建在上面的库中的新特性和改进。我们期待着未来的Spark发布,一个扩展的生态系统,以及未来的峰会和会议,届时人们将产生远远超出我们多年前在加州大学伯克利分校的设想的想法。免费试用Databricks。今天就开始吧