WOT架構師系列訪談(6)Databricks研究員連城
原創【編者按】 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、敏捷開發一個都不少。除了第一手的經驗之外,還有未來兩三年的技術趨勢,你會讓自己錯過這樣的技術大會嗎?
【編輯推薦】