【编者按】 51CTO 2014 WOT全球软件技术峰会将在2014年7月25-26日在北京富力万丽酒店召开。从本周开始,我们将陆续公布会议内容,并针对即将参会的架构师访谈,以便大家进一步了解会议内容。会议详细议程见: http://wot.51cto.com/2014/。
本次访谈的对象是DataBricks软件工程师、Intel物联技术研究院研究连城,毕业于浙江大学;《Erlang/OTP并发编程实战》及《Erlang并发编程(第一篇)》译者。目前专注于Apache Spark分布式内存计算框架。在本次WOT全球软件技术峰会上,连城将为我们带来Spark方面的技术分享。
连城(微博@连城404)
以下是访谈实录:
记者:最近,Cloudera已经宣布抛弃MapReduce,拥抱Spark。您认为是什么原因让Cloudera决定采用Spark?
连城:说“抛弃”未免危言耸听了,毕竟Hadoop MapReduce仍然是当前大数据领域应用最广泛、生态最完善的分布式计算框架。不过相对于MapReduce,Spark确实体现出了令人印象深刻的优势。实际上,从DataBricks近期的官方博客上可以看出,除了Cloudera以外,MapR、Pivotal、Datastax等老牌大数据厂商都对Spark敞开了怀抱。Hortonworks也于五月份推出了HDP 2.1 Spark组件的技术预览版。
传统MapReduce只有map和reduce两个阶段,在表达较为复杂的分布式计算任务时,难免要引入一些map-only型作业,作业和作业之间又只能以HDFS为媒介进行数据交换,这是MapReduce效率低下的主要原因。和Google的Dremel、微软的Dryad、Hadoop 2的Tez等系统类似,Spark以有向无环图(DAG)来表示计算,可以通过流水线优化有效合并不必要的map-only型作业,缩减作业数量;同时,与Dremel、Dryad、Tez等现有系统不同的是,Spark采用弹性分布式数据集(RDD,Resilient Distributed Datasets)作为数据共享抽象,可以有效利用集群的内存,共享被多个作业频繁使用的数据,消除了不必要的HDFS访问开销,从而大大提升作业的执行效率。以上两点,使得Spark在以机器学习为代表的迭代型计算上表现出众,可以轻松胜出MapReduce一到两个数量级。
与此同时,实验数据和Twitter等公司近期的实际工程经验也证明,即便是针对非迭代型的工作流作业,Spark的性能也比MapReduce高出近一个数量级。原因在于传统MapReduce采用的是进程级并行和基于心跳的同步通讯,而Spark采用的是线程级并行和异步通讯。这使得Spark的任务启动开销和任务调度开销大大降低。再者,对于应用层不需要排序的作业,Spark不会像MapReduce那样一视同仁地在mapper端进行代价高昂的排序操作,又进一步削减了作业的平均延迟。
最后,RDD这一数据共享抽象,使得Spark能够在一套框架内有效表达批量计算、交互式查询、流计算、图计算、SQL关系查询等多种数据分析范式,甚至允许用户混合使用多种范式共同搭建一体化的大数据流水线。这一点是性能因素之外Spark最大的亮点。
记者:Spark的数据处理能力很强大。但有一种声音表示Spark作为一种内存计算框架,在处理大数据量时,集群的内存总量会成为巨大的瓶颈。这会给Spark的应用带来什么样的影响?
连城:内存计算的确是Spark的一大卖点。很多新手都容易产生这样一个误区,认为必须要将完整的数据集装入内存才能进行内存计算。这显然是不必要的,否则仅就当前常见的集群内存容量,Spark根本不可能踏入“大数据”这个领域。对于内存计算框架而言,直观上的确是集群内存总量越大越好,但内存总量不高并不会带来太大的限制,最多是作业的执行效率有所下降。原因有四:第一,根据来自Facebook的Hive数据仓库的统计,绝大部分计算任务的完整数据集都可以放入集群的内存;第二,在大部分任务中,需要反复频繁使用、值得进入内存缓存的数据往往是总体数据集中的一小部分(例如从1TB日志数据中过滤出的50GB错误日志数据);第三,具体到单个工作节点,对于不进入内存缓存的数据,Spark访问数据时是利用iterator逐条记录按流式访问的,并不会不分青红皂白地一次性将所有输入数据都加载进内存;最后,在内存不足的情况下,Spark可以妥善地线性回退,不至于出现剧烈下滑。
阿里、百度、京东、淘宝、谷歌、Facebook、Tesla都到2014 WOT全球软件技术峰会了,你还等什么?这些顶级的公司将首次对外公开技术,涵盖八大主题,共有40+课程,部署实施、运维开发、大数据、Spark、敏捷开发一个都不少。除了第一手的经验之外,还有未来两三年的技术趋势,你会让自己错过这样的技术大会吗?
【编辑推荐】