標籤:
趨勢一:混合架構將逐漸消失
當初,Hadoop的誕生是為了更方便地處理非結構化資料和半結構化資料,但是處理結構化資料的時候功能就顯得不夠完整。使用者還需要使用資料庫或者MPP(大規模平行處理)資料庫,協助Hadoop處理結構化的資料。另外,Hadoop是為處理幾百TB和幾PB資料而設計的,但是,當資料量小於10TB的時候,Hadoop的處理效能往往還不如MPP資料庫。
為解決這些問題,使用者往往會考慮混合架構的部署方式:把即時資料放到MPP資料庫裡,把曆史資料放到Hadoop裡;或者把大部分資料放在Hadoop裡,小部分資料放到MPP資料庫裡進行計算。
過去三年,Hadoop發展非常迅猛,很多公司快速啟動了SQL on Hadoop的開發,其效能也有很大提升。目前,市場上在Hadoop系統裡原生開發的SQL引擎技術主要有4種:第一種是Impala,採用類似於MPP的引擎;第二種是Tez,吸收了Spark的一些設計思想;第三種是Transwarp Inceptor,基於Spark開發的SQL引擎;第四種是Spark SQL和Drill。
隨著SQL on Hadoop技術的快速發展,SQL完整程度的大幅提高和效能的提升,孫元浩認為混合架構正在逐漸消失。做出這樣的預測是因為,過去MPP資料庫的3個優勢隨著SQL on Hadoop的成熟逐漸被削弱。第一,傳統MPP資料庫對SQL的支援相對完整,而現在,Hadoop對SQL的支援程度已經接近MPP資料庫。第二,傳統MPP資料處理效能高,而現在,Hadoop的效能已經超過MPP資料庫數倍。第三,傳統MPP資料庫上外延工具非常豐富,而現在,很多傳統BI廠商都已經支援Hadoop,一些新興創業公司都已經在Hadoop上開發了全新的BI工具,Hadoop系統上的外延工具也越來越豐富,Hadoop生態系統將很快超越傳統MPP資料庫。
未來,Hadoop將逐漸取代MPP資料庫,使用者將逐漸不需要使用混合架構,不需要在不同資料庫之間遷移。MPP資料庫將逐漸消失並慢慢地融入Hadoop。使用者的資料量無論大小將全部都可以在Hadoop上處理,真正做到無限的線性擴充。
趨勢二:固態盤將替代記憶體
隨著硬體技術的發展,孫元浩發現,作為緩衝,記憶體可以被大容量的SSD(固態硬碟)取代。記憶體讀取資料的速度是磁碟的百倍甚至千倍,但是SSD 的效能已經開始接近記憶體了。同時,SSD的價格也在迅速下降。今天,在中國市場可以以1萬至2萬元的價格購買到1TB容量的SSD。孫元浩認為,用SSD替代記憶體是當前比較好的方案。
Hadoop2.6中提出一個概念叫Storage Tier(儲存層)。它在HDFS(Distributed File System)上提供三層儲存:磁碟層、SSD層和記憶體層。以大小為128MB的資料區塊為單位,使用者可以把檔案放在指定的層,以此來提升資料的存取速度。但是,使用者很快發現事情沒有那麼簡單。因為,Hadoop最早是為大容量低速磁碟而設計的,SSD比普通磁碟順序讀寫效能高10倍,它的隨機訪問效能是磁碟的1000倍,如果不能利用隨機訪問的效能優勢,提升的效能不會像硬體指標這麼顯著。
因此,孫元浩認為,基於磁碟讀寫的Hadoop在2015年將慢慢開始為SSD做最佳化,未來會有更多的最佳化專門針對SSD。另外,記憶體資料庫廠商將開始感受到記憶體不足的瓶頸,SSD將成為記憶體最理想的替代品。
趨勢三:即時大資料得到更多關注
隨著感應器網路、物聯網的發展,資料產生的速度越來越快,使得即時大資料的技術開始得到更多的關注。
到今天為止,沒有哪個技術既能處理即時資料又能處理大量曆史資料。孫元浩表示,針對即時資料和曆史資料的處理,Nathan Marz提出了Lambda架構(一種基於MapReduce和Storm建立的流處理應用)。即時資料進入一個流處理系統進行檢測分析,曆史資料在Hadoop上進行分析,然後將兩種資料分析的結果再進行融合,應用程式可以訪問融合之後的資料庫。
但是,這種混合架構還存在3個問題:第一,即時資料的流處理系統處理完之後就把資料丟棄了,只留下分析結果,使用者不能對即時資料進行隨機查詢;第二,把即時資料和曆史資料分離後,怎麼形成統一的視圖,最後怎麼拼接起來;第三,融合兩種分析結果的資料可以完成快速查詢但不能做複雜的統計分析和資料採礦。
Druid項目的出現不僅解決了快速採集的問題,還化解了統一視圖的問題:把即時資料和曆史資料全部拼接起來製成一張視圖,把即時資料離線狀態下收集起來拼成一張曆史視圖。但是,Druid項目還沒能解決複雜的統計分析和資料採礦的問題。
孫元浩指出,比較理想的架構是全量資料經過流處理以後直接進入一個資料庫。這個資料庫可以完整地把即時資料和曆史資料拼接起來,基於這些資料既可以進行高速查詢又能進行迭代分析。這樣,IT人員可以省去維護兩套架構的麻煩,而且既能對即時資料進行分析,又能對曆史資料進行分析。
趨勢四:雲端運算與大資料終將融合
最近一兩年,虛擬化技術的快速發展不亞於一場新的技術革命。首先,輕量級Linux Container(簡稱LXC,一種核心虛擬化技術)的出現,Container(容器)之間可以做資源隔離,這使得虛擬機器變得非常輕量級。為此,Docker公司開發了一個工具,它讓使用者建立單個容器或者應用時遷移起來更加容易。但是,當建立多個容器或應用時,使用者移轉起來還是會覺得很困難。此時,Google的一個開源項目Kubernetes出現了。它簡化了使用者建立Hadoop叢集和傳統應用,提供多容器叢集的部署和一些基礎服務,例如一些調度服務。
2013年,Hadoop2.0資源管理方面一個革命性的架構Yarn(一種新的MapReduce架構)誕生了。Yarn把資源管理放在最底層,在其架構上可以運行多種計算架構。在應用的過程中,使用者發現Yarn對記憶體/磁碟/IO的資源隔離做得不夠好。為此,Hortonworks公司嘗試把Google的Kubernetes作為Yarn的應用管理器,用Docker(一種開源的應用程式容器引擎)進行資源調度。同時,Mesosphere公司以Mesos(一種叢集管理器)計算架構為資源調度核心,以Docker為容器的管理工具,開發了一套分布式資源管理架構,並提出了資料中心作業系統的概念。
孫元浩指出,資料中心作業系統可以分三層。最底層與作業系統核心的功能一樣,可以快速地建立、釋放計算資源,實現對CPU/網路/記憶體/儲存的管理。中介層是在最底層的基礎上繼續加一些基礎服務。最上面一層則提供平台服務,可以建立和部署Hadoop、Spark等應用。
根據資料中心作業系統的概念,目前市場上主要有兩大技術方向。第一個技術方向是把Yarn作為資源調度的基礎,Kubernetes作為運行在Yarn上的一個應用程式框架,而且Kubernetes與Yarn並列在同一層。另外一個技術方向是把調度器抽象出來作為外掛程式,例如Yarn和Mesos都可以作為Kubernetes的調度器,當然也可以實現自己的發送器,使用Docker或者CoreOS(一種基於Linux 核心的輕量級作業系統)進行容器管理,而Hadoop等分布式服務運行在Kubernetes之上。第二個技術對底層能夠提供資源隔離和管理,對最上層能夠提供各種服務。孫元浩認為,第二個技術方向可能是明年的主流趨勢。
大資料走向融合——星環科技CTO孫元浩談大資料基礎技術的演化趨勢