随着大数据相关技术和产业的逐渐成熟,单个组织内往往需要同时进行多种类型的大数据分析作业。如:传统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的独门秘籍便是打造结构上一体化、功能上多元化的高效数据流水线。
对于解决哪些问题Spark独具优势?
最新推荐文章于 2022-08-13 16:34:30 发布