打造结构一体化、功能多元化的高效数据流水线

最初接触Spark纯粹是出于个人兴趣。我感兴趣的技术方向主要有二,即分布式系统和函数式语言。Spark作为一套用Scala写成的分布式内存计算系统,很好地结合了这两个领域。Spark提供的Scala API本身也很类似于一套分布式、惰性求值的纯函数式语言。然而后来,越是深入探寻,便越是被Spark所吸引。Spark背后的不少想法在先前的系统中或多或少都有所体现,但Matei Zaharia博士众人非常巧妙地集众家之所长,融会贯通,克服了众多旧有特化系统中的各种缺陷,浓缩提炼出了RDD(Resilient Distributed Dataset,弹性分布式数据集)这一高度通用的抽象结构。围绕RDD这一核心,AMPLab团队以扎实的工程功底和开放的心态,打造了全新的Spark生态圈,又以Spark为核心提出了极富创意的BDAS(Berkeley Data Analytics Stack,伯克利数据分析栈)。在研究成果的工业转化方面,AMPLab团队可谓典范:他们不仅是富有远见的科学家,也是功力深厚的工程师,同时还扮演着开源社区中循循善诱的良师益友角色。正是基于以上这些原因,去年得知Spark核心团队创办Databricks后我便力求加盟,并最终幸运地得偿所愿。能与这样一群杰出的同事工作,本身就是一件令人非常兴奋的事。

 - 对于解决哪些问题Spark独具优势?

随着大数据相关技术和产业的逐渐成熟,单个组织内往往需要同时进行多种类型的大数据分析作业。如:传统Hadoop MapReduce最为擅长的批量计算、各种机器学习算法为代表的迭代型计算、流式计算、社交网络中常用的图计算、SQL关系查询、交互式即席查询等等。在Spark出现之前,要在一个组织内同时完成数种大数据分析任务,就不得不与多套特化系统打交道,一方面引入了不容小觑的运维复杂性,另一方面还免不了要在多个系统间频繁进行代价高昂的数据转储(ETL)。AMPLab在介绍以Spark为核心的BDAS时常说的一句话是:one stack to rule them all,也就是说可以在一套软件栈内完成前述各种大数据分析任务。相对于MapReduce上的批量计算、迭代型计算以及基于Hive的SQL查询,Spark更是可以带来一到两个数量级的效率提升,在传统MapReduce近乎不可能的交互式即席查询也因而得以实现。这种“全能”特质,很大程度上源自RDD这一合理抽象和AMPLab/Databricks团队扎实的工程功底。当然,Spark并不真的是全能的。RDD模型适合的是粗粒度的数据并行计算,而不适合细粒度的、需要异步更新的计算;对于这些计算需求,如果要追求极致的性能,还是需要求助于特化系统(如图计算领域的GraphLab等)。但就现有成果来看,Spark的覆盖面已然相当广泛。简而言之,Spark的独门秘籍便是打造结构上一体化、功能上多元化的高效数据流水线。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值