引爆Spark大数据引擎的七大工具

原文名称:7 tools to fire up Spark‘s big data engine

Spark正在数据处理领域卷起一场风暴。让我们通过本篇文章,看看为Spark的大数据平台起到推波助澜的几个重要工具。

Spark生态系统众生相

Apache Spark不仅仅让大数据处理起来更快,还让大数据处理起来更简单、功能更强大、更方便。Spark并非只是一项技术,它结合了诸多部分,新的功能和性能改进不断添加进来,每个部分都在不断完善之中。

本文介绍了Spark生态系统的每个主要部分:每个部分的功能,为什么很重要,是如何发展的,在哪方面不尽如人意,以及可能会往哪个方向发展。

Spark Core

Spark的核心是恰如其名的Spark Core。除了协调和调度作业外,Spark Core还为Spark中的数据处理提供了基本的抽象机制,名为弹性分布式数据集(RDD)。

RDD对数据执行两个动作:转换和操作。前者转换数据,并将它们作为刚创新的RDD来提供;后者根据现有的RDD(比如对象数量)来计算结果。

Spark的速度很快,原因是转换和操作都保存在内存中。操作慢腾腾地评估,这意味着只有需要相关的数据时,才执行操作;然而,很难搞清楚什么在缓慢运行。

Spark的速度在不断提高。Java的内存管理往往给Spark带来问题,于是Project Tungsten计划避开JVM的内存和垃圾收集子系统,以此提高内存效率。

Spark API

Spark主要是用Scala编写的,所以Spark的主要API长期以来也支持Scala。不过另外三种使用广泛得多的语言同样得到支持:Java(Spark也依赖它)、Python和R.

总的来说,你最好选择自己最擅长的那种语言,因为你需要的功能特性很可能在该语言中直接得到支持。只有一个例外:相比之下,SparkR中对机器学习的支持不大给力,目前只有一小批算法可供使用。不过将来这种情况势必会发生变化。

Spark SQL

千万不要低估了能够对批量数据执行SQL查询的能力或便利。Spark SQL提供了对Spark提供的数据执行SQL查询(并且请求列式DataFrame)的一种通用机制,包括通过ODBC/JDBC连接件进行管道处理的查询。你甚至不需要正规的数据源。Spark 1.6中添加了这一功能:支持以一种得到支持的格式查询扁平文件,就像Apache Drill那样。

Spark SQL其实并不用于更新数据,因为那与Spark的整个意义相悖。可以将因而生成的数据写回成新的Spark数据源(比如新的Parquet表),但是UPDATE查询并不得到支持。别指望诸如此类的功能特性很快就会推出;着眼于Spark SQL的改进大多数用于提升其性能,因为它也成了Spark Streaming的基础。

Spark Streaming

Spark的设计让它得以支持许多处理方法,包括流处理――Spark Streaming因此得名。关于Spark Steaming的传统观点是,它还半生不熟,这意味着只有你不需要瞬间延迟,或者如果你还没有投入到另一种流数据处理解决方案(比如说Apache Storm),你才会使用它。

但是Storm在逐渐失去人气;长期使用Storm的推特此后已改用了自己的项目Heron。此外,Spark 2.0承诺会推出一种新的“结构化数据流”模式,以便对实时数据进行交互式Spark SQL查询,包括使用Spark?的机器学习库。至于其性能是否高得足以击败竞争对手仍需拭目以待,不过它值得认真考虑。

MLlib(机器学习)

机器学习技术素有既神奇,又困难之称。Spark让你可以对Spark中的数据运行许多常见的机器学习算法,从而使这些类型的分析容易得多,也更容易被Spark用户所使用。

MLlib中的可用算法数量众多,该框架每推出一个修订版,就会随之增多。话虽如此,一些类型的算法还是没有――比如说,涉及深度学习的任何算法。第三方正在利用Spark的人气来填补这一空白;比如说,雅虎可以借助CaffeOnSpark执行深度学习,它通过Spark充分利用了Caffe深度学习系统。

GraphX??(图形计算)

描绘数百万实体之间的关系通常需要图形,这种数据构件描述了那些实体之间的相互关系。Spark的GraphX?? API让你可以使用Spark的一套方法,对数据执行图形操作,于是构建和转换这类图形的繁重任务卸载到了Spark。GraphX??还包括用于处理数据的几种常见算法,比如PageRank或标签传播(label propagation)。

从目前来看,GraphX的??一个主要限制是,它最适合静态图形。处理添加了新顶点的图形会严重影响性能。此外,如果你已经在使用一种成熟的图形数据库解决方案,GraphX还??不太可能取代它。

SparkR(Spark上的R)

R语言为进行统计数值分析和机器学习工作提供了一种环境。Spark在2015年6月添加了支持R的功能,以匹配其支持Python和Scala的功能。

除了为潜在的Spark开发人员多提供一种语言外,SparkR还让R程序员们可以做之前做不了的许多事情,比如访问超过单一机器的内存容量的数据集,或者同时轻松地使用多个进程或在多个机器上运行分析。

SparkR还让R程序员可以充分利用Spark中的MLlib机器学习模块,创建一般的线性模型。遗憾的是,并非所有的MLlib功能在SparkR中得到支持,不过Spark每推出一个后续的修订版,都在填补R支持方面的差距。

作者:布加迪编译来源:51CTO.com

时间: 2024-11-05 19:03:45

引爆Spark大数据引擎的七大工具的相关文章

共筑Spark大数据引擎的七大工具

Spark正在数据处理领域卷起一场风暴.让我们通过本篇文章,看看为Spark的大数据平台起到推波助澜的几个重要工具. Spark生态系统众生相Apache Spark不仅仅让大数据处理起来更快,还让大数据处理起来更简单.功能更强大.更方便.Spark并非只是一项技术,它结合了诸多部分,新的功能和性能改进不断添加进来,每个部分都在不断完善之中.本文介绍了Spark生态系统的每个主要部分:每个部分的功能,为什么很重要,是如何发展的,在哪方面不尽如人意,以及可能会往哪个方向发展. ?Spark Cor

阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景

1月10日,做一款优秀大数据引擎,要找准重点解决的业务场景.这是我们送给开发者的第15个感悟. 沐远在社区分享了他的博文,<使用spark分析云HBase的数据><hive数据导入云hbase>,粉丝评论说请收下我的膝盖. 李伟(沐远)阿里云数据库技术专家专注大数据分布式计算数据库领域, 研发Spark及自主研发内存计算,目前为广大公有云用户提供专业的云HBase数据库及计算服务. 做一款优秀大数据引擎,要找准重点解决的业务场景,打磨一套易用的API,构架与上下游联动的生态. 推荐

教你如何成为Spark大数据高手?

教你如何成为Spark大数据高手? Spark目前被越来越多的企业使用,和Hadoop一样,Spark也是以作业的形式向集群提交任务,那么如何成为Spark大数据高手?下面就来个深度教程. Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库.流处理和图计算等多种计算范式,是罕见的全能选手.Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理.图技术.机器学习.NoSQL查询等方面的所有核心

Spark 大数据中文分词统计(三) Scala语言实现分词统计

Java版的Spark大数据中文分词统计程序完成之后,又经过一周的努力,把Scala版的Spark 大数据中文分词统计程序也搞出来了,在此分享给各位想学习Spark的朋友. 如下是程序最终运行的界面截图,和Java版差别不大: 如下是Scala工程结构: 当你在工程主类文件WordCounter.scala上单击右键,选择Run As Scala Application: 然后选择唐诗宋词进行分词统计,就会出现前面显示的分词结果. 工程代码已经上传CSDN:http://download.csd

大数据引擎,李彦宏的新大陆

摘要 : 百度将用互联网的方式来做开放的大数据引擎.它不可能采取与软件方案公司一样的“一竿子买卖”方式进行合作.而是将大数据引擎做成一个开放平台,形成标准的接口,让每个行业不同企业可以根据自身需求各取所需.而它的首要目的是获取数据,然后是考虑变现. 百度在大数据领域迈出一大步.在昨天的百度技术开放日上,李彦宏现身并推出了百度大数据引擎.简单地将,大数据引擎将百度在大数据的数据.能力和技术开放给行业,行业尝尝距离甚远的大数据盛宴,百度则寻到了一个新的增长点. 大数据引擎三件套 一年前,BAT纷纷开

Hadoop Spark大数据全套课程+共享单车开发项目实战

hadoop spark大数据实时计算全套课程+共享单车开发项目实战 [下载地址:https://pan.baidu.com/s/1SnaWp_ls0V3Z_CgmhGkT7Q ] 有着三四年工作经验的你,面对如此诱惑的薪资和热度爆棚的岗位是否想尝试一下突破紧急,走上职业生涯巅峰? 本期推出java,hadoop,spark大数据从基础到项目实战的全过程培训教材课程目录: 原文地址:http://blog.51cto.com/aino007/2148831

新一代大数据引擎操作系统:DataWorks V2.0重磅来袭

摘要: 众所周知,MaxComput与Blink分别是阿里巴巴自主研发的离线计算.实时计算大数据计算引擎,不仅拥有多项国家专利技术,而且多项关键指标已远超业内开源引擎平均能力,名副其实地成为了阿里巴巴大数据之路上的领航者. 认识DataWorks:新一代大数据引擎操作系统 众所周知,MaxComput与Blink分别是阿里巴巴自主研发的离线计算.实时计算大数据计算引擎,不仅拥有多项国家专利技术,而且多项关键指标已远超业内开源引擎平均能力,名副其实地成为了阿里巴巴大数据之路上的领航者. 如果把阿里

Spark大数据的学习历程

Spark主要的编程语言是Scala,选择Scala是因为它的简洁性(Scala可以很方便在交互式下使用)和性能(JVM上的静态强类型语言).Spark支持Java编程,但对于使用Java就没有了Spark-Shell这样方便的工具,其它与Scala编程是一样的,因为都是JVM上的语言,Scala与Java可以互操作,Java编程接口其实就是对Scala的封装. 大数据未来几年发展的重点方向,大数据战略已经在十八届五中全会上作为重点战略方向,中国在大数据方面才刚刚起步,但是在美国已经产生了上千亿

开源大数据引擎:Greenplum 数据库架构分析

Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包含数据仓库.商务智能(OLAP)和数据挖掘等.自2015年10月正式开源以来.受到国内外业内人士的广泛关注.本文就社区关心的Greenplum数据库技术架构进行介绍. 一. Greenplum数据库简单介绍 大数据是个炙手可热的词.各行各业都在谈.一谈到大数据,好多人觉得就是Hadoop.实际上Hadoop仅仅是大数据若干处理方案中的一个.如今的SQL.NoSQL.NewSQL.Hadoop等等.都能在