2014中国大数据技术大会上,英特尔大数据首席架构师戴金权发表了题为《基于Spark软件栈的下一代大数据分析》的演讲,涵盖Reliability of Spark Streaming、SQL processing on Spark、Spark Stream-SQL、Tachyon hierarchical storage和Analytics&SparkR等多方面内容。对于关注Spark技术的与会者而言,极有价值。为进一步解析“Spark是Hadoop生态中下一代的处理引擎和分析引擎”这一鲜明的观点,CSDN云计算特别采访了这位Apache Spark PMC成员,拥有多项美国专利的技术专家。
英特尔大数据首席架构师 戴金权
在戴金权看来,Hadoop将MapReduce分布式计算和大数据技术带入主流应用。但随着大数据需求和使用模式的推广,Hadoop已经暴露诸多局限性。特别是越来越多的数据应用,如需要对数据进行准实时的深度挖掘和分析时,业内需要超越MapReduce的全新大数据分析模式。也正是看准了Spark的发展趋势,英特尔早在2-3年前就已经和UC Berkeley一起紧密合作,围绕Apache Spark做出大量贡献。
相比MapReduce,Spark在这些需求中极有优势:
- 对不同来源、不间断输入数据进行准实时的流式处理;
- 对海量数据,使用大规模、复杂的机器学习和图计算,进行深度挖掘和分析;
- 使用分布式高速内存数据缓存,以支持交互式、迭代计算和数据分析。
但要明确的是,Spark虽然有诸多优势,但也有不足。如企业使用内存处理成本较高,且Spark在使用SQL查询数据的时候效果并不十分理想。谈到这些,戴金权表示:“Spark确实能够高效利用内存进行不管是实时,还是复杂性分析。但有两方面要强调下,一是Spark不只是在内存中进行,考虑到成本等原因,可以将内存做高效缓存,并由底层的多种存储介质来实现,如内存、SSD、其他存储系统等,这样作为整体实现管理,不论是可靠性还是性能都更出色,我们已经在这方面做了大量工作。二是SQL是分析和处理的一个重要场景,所以社区中,包含Cloudera、Intel、 MapR、Databricks、IBM等都在做这方面的工作,预计Hive on Spark 社区Beta版在2015年上半年会发布,Spark SQL也在Spark中提供了原生的SQL支持;相信这些工作能更好地提供Spark对SQL的查询,让SQL处理可以用到Spark各种各样的优势。”
值得注意的是,作为大数据领域的两项新技术,Spark和R的结合。今年8月,Rexer Analytics咨询公司调查显示,70%的调查对象称他们正在使用R语言。而数据显示,从2010年开始到2013年,使用R的人群是陡然剧增的。但R也有不得不面对的挑战。如R分散于各节点或各服务器,各节点或各服务器单独运行,尽管有利于行的独立分析处理,例如模型评分,但并不利于分析功能所需要的所有数据,例如模型搭建等。要突破开源R语言的限制,SparkR需要做的更多。
对于这个问题,戴金权非常坦率:“R在大数据中进行复杂分析,尤其是数学模型时,提供了极好编程环境,非常重要。这也是英特尔和UC Berkeley在这方面合作的原因。但SparkR确实是处于早期的一个项目,在如突破单机性能走入分布式环境、如何实现和Spark内部的分析组件的结合,怎么能帮用户更高效用R来实现分布式分析等方面,还需要探索。目前,社区中已有比较多的应用研究,但在工业应用中还很少,这也是我们合作的重点。”
是的,Spark在今年早些时候刚成为Apache的顶级项目,而2-3年前,其还是英特尔和UC Berkeley合作的一个研究项目。Spark的发展时间相比其他项目确实比较短。但业内对其关注和使用的增长速度都非常快。在Apache社区活跃度甚至可以排名第一。而生产环境需要时间,戴金权认为:“从大家觉得它好,到试用,然后生产上线,再到大规模推广,这肯定是一个过程。已经有非常多的人把Spark应用在生产的环境当中,然后再慢慢把它推广。随着Spark对更多功能的支持,如SQL的支持、R的支持、机器学习的支持,相信其应用场景会越来越广泛。”
事实上,Spark的参与者已经越来越多。英特尔也在和众多的开源社区和行业合作伙伴如Cloudera、Databricks、UC Berkeley、华为等在Spark方面紧密合作。从另一个层面来说,英特尔在底层基础设施和平台级别也在做大量工作,帮助更多伙伴提供适合用户需求的方案。
Hadoop已经成为大数据工业级的标准,有很多组件,如Hive、Hbase、HDFS等。而Spark也是Hadoop生态系统中非常重要的组成部分。戴金权对其的定义是“Hadoop生态中下一代分析的引擎或者数据处理的引擎”。当然,这也是业内的共识。