当前位置: 首页 > 科技观察

搭建Spark大数据引擎的七大工具

时间:2023-03-20 23:17:51 科技观察

【.com快译】Spark正在数据处理领域掀起风暴。让我们通过本文了解几个为Spark的大数据平台提供燃料的重要工具。Spark生态众生ApacheSpark不仅让大数据处理速度更快,而且让大数据处理更简单、更强大、更方便。Spark不仅仅是一项技术,它是很多部分的组合,新的特性和性能改进不断的加入,每一部分都在不断的完善。本文介绍了Spark生态系统的每个主要部分:每个部分的作用、重要性、发展方式、不足之处以及可能的发展方向。SparkCoreSpark的核心是恰当命名的SparkCore。除了协调和调度作业外,SparkCore还为Spark中的数据处理提供了一种基本的抽象机制,称为ResilientDistributedDatasets(RDD)。RDD对数据执行两个操作:转换和操作。前者转换数据并将它们作为新创建的RDD提供;后者根据现有的RDD(例如对象的数量)计算结果。Spark速度很快,因为转换和操作保存在内存中。操作评估缓慢,这意味着操作仅在需要相关数据时执行;但是,可能很难找出运行缓慢的原因。Spark的速度在不断提高。Java的内存管理经常会给Spark带来问题,因此ProjectTungsten计划避开JVM的内存和垃圾回收子系统来提高内存效率。SparkAPISpark主要是用Scala编写的,所以Spark的主要API也很早就支持Scala。但也支持另外三种使用更广泛的语言:Java(Spark也依赖它)、Python和R。一般来说,你最好选择你最擅长的语言,因为你需要的特性非常多简单的。可能直接在语言中得到支持。只有一个例外:相比之下,SparkR对机器学习的支持很有限,目前只有一小部分算法可用。不过,这种情况在未来势必会有所改变。SparkSQL永远不要低估能够对批量数据执行SQL查询的能力或便利性。SparkSQL提供了一种通用机制,用于对Spark提供的数据执行SQL查询(并请求列式数据帧),包括通过ODBC/JDBC连接器管道传输的查询。您甚至不需要正式的数据源。这是在Spark1.6中添加的:支持以支持的格式查询平面文件,就像ApacheDrill一样。SparkSQL并不是真正用于更新数据,因为这违背了Spark的全部观点。生成的数据可以写回新的Spark数据源(例如新的Parquet表),但不支持UPDATE查询。不要期望这样的功能很快就会推出;大多数针对SparkSQL的改进都集中在性能上,因为它也构成了SparkStreaming的基础。SparkStreamingSpark的设计允许它支持许多处理方法,包括流处理——因此得名SparkStreaming。关于SparkSteaming的传统观点认为它是半生不熟的,这意味着您只有在不需要瞬时延迟或者您还没有投资其他流处理解决方案(如ApacheStorm)时才会使用它。但是Storm正在失去人气;Twitter是Storm的长期用户,此后已切换到自己的项目Heron。此外,Spark2.0承诺为实时数据的交互式SparkSQL查询提供一种新的“结构化数据流”模式,包括使用Spark的机器学习库。它是否强大到足以击败竞争对手还有待观察,但值得认真考虑。MLlib(MachineLearning)机器学习技术被称为既神奇又困难。Spark允许您在Spark中的数据上运行许多常见的机器学习算法,使这些类型的分析对Spark用户来说更容易和更容易访问。MLlib中可用的算法数量非常庞大,并且随着框架的每次修订而增加。话虽如此,某些类型的算法并不——比如说,任何涉及深度学习的东西。第三方正在利用Spark的流行来填补空白;例如,雅虎可以使用CaffeOnSpark执行深度学习,它通过Spark利用Caffe深度学习系统。GraphX(图计算)描述数百万实体之间的关系通常需要一个图,一个描述这些实体之间相互关系的数据工件。Spark的GraphXAPI允许您使用Spark的一组方法对数据执行图形操作,从而将构建和转换此类图形的繁重工作卸载到Spark。GraphX还包括几种处理数据的常用算法,例如PageRank或标签传播。就目前而言,GraphX的一个主要限制是它最适合静态图。处理添加了新顶点的图会严重影响性能。另外,如果你已经在使用成熟的图数据库解决方案,GraphX不太可能取代它。SparkR(RonSpark)R语言提供了一个进行统计数值分析和机器学习工作的环境。Spark在2015年6月增加了对R的支持,以匹配其对Python和Scala的支持。除了为潜在的Spark开发人员提供额外的语言外,SparkR还允许R程序员做许多他们以前不能做的事情,例如访问超过单台机器内存容量的数据集,或者轻松地同时使用多个进程时间。或者在多台机器上运行分析。SparkR还使R程序员能够充分利用Spark中的MLlib机器学习模块来创建通用线性模型。遗憾的是,并非所有MLlib功能都在SparkR中得到支持,但Spark的每个后续修订版都填补了R支持方面的空白。原标题:点燃Spark大数据引擎的7个工具【翻译稿件,合作网站转载请注明原译者和出处.com】