大數據系統發展的技術路線

自從大數據出來後,數據管理界發生了巨大的變化,技術驅動成爲大數據管理系統的一個主要變革力量。


 QQ圖片20190612134905.png


傳統的數據庫管理系統以結構化數據爲主,因此關係數據庫系統(RDBMS)可以一統天下滿足各類應用需求。然而,大數據往往是半結構化和非結構化數據爲主,結構化數據爲輔,而且各種大數據應用通常需要對不同類型的數據內容檢索、交叉比對、深度挖掘與綜合分析。面對這類應用需求,傳統數據庫無論在技術上還是功能上都難以爲繼。因此,近幾年出現了oldSQL、NoSQL 與NewSQL 並存的局面。(這幾個術語後面專題討論)


總體上,按數據類型與計算方式的不同,面向大數據的管理系統與處理採用不同的技術路線,大致可以分爲四類。


 

很多初學者,對大數據的概念都是模糊不清的,大數據是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大數據學習qq羣:199427210,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系


1、MPP並行數據庫和內存數據庫


第一類技術路線主要面對的是大規模的結構化數據。針對這類大數據,通常採用新型數據庫集羣。它們通過列存儲或行列混合存儲以及粗粒度索引等技術,結合MPP(Massive Parallel Processing)架構高效的分佈式計算模式,實現對PB 量級數據的存儲和管理。列存儲數據庫技術針對數據分析的特點,能夠對數據進行高性能的壓縮,查詢也只需訪問必要的列,節省了很多I/O,分析性能比傳統行存儲數據庫有了很大的提升(可以多達兩個數據量級)。


同時,隨着內存成本的降低、單機內存的增大,以SAP HANA爲代表的內存數據庫也採用了列存儲技術,支持更高性能的數據分析。這些技術的發展,使得它們成爲TB級別數據倉庫的最先進技術,已經涵蓋了絕大多數OLAP市場,在企業分析類應用領域已獲得廣泛應用。


然而,MPP並行數據庫和內存數據庫依賴昂貴的硬件配置,其中的很多商業軟件還有價格高昂的使用許可證,這些成本並不是每個公司都能夠承擔或者願意承擔的;而開源大數據系統採用通用、廉價的硬件設施,使得人們更容易嘗試和使用這些系統,數據和業務遷移的成本也更低。同時,以Hadoop爲代表的開源大數據系統形成較大的社區之後,就會有各種相關係統補充進來,構成生態圈,滿足人們不同的需求,具有非常好的開放性。因此,就出現了第二類以Hadoop爲典型的開源系統技術路線,並逐漸得到認可,併成爲大數據分析的新寵兒。


2、基於Hadoop開源體系的大數據系統


 


第二類技術路線要面對的是半結構化和非結構化數據。應對這類應用場景,基於Hadoop開源體系的系統平臺更爲擅長。它們通過對Hadoop生態體系的技術擴展和封裝,實現對半結構化和非結構化數據的存儲、管理、計算等功能。


目前,Hadoop、MapReduce這類分佈式處理方式已經成爲大數據處理各環節的通用處理方法。Hadoop是一個由Apache基金會開發的大數據分佈式系統基礎架構。用戶可以在不瞭解分佈式底層細節的情況下,輕鬆地在Hadoop上開發和運行處理大規模數據的分佈式程序,充分利用集羣的威力高速運算和存儲。Hadoop是一個數據管理系統,作爲數據分析的核心,彙集了結構化和非結構化的數據,這些數據分佈在傳統的企業數據棧的每一層。Hadoop也是一個大規模並行處理框架,擁有超級計算能力,定位於推動企業級應用的執行。Hadoop又是一個開源社區,主要爲解決大數據的問題提供工具和軟件。雖然Hadoop提供了很多功能,但仍然應該把它歸類爲多個組件組成的Hadoop生態圈,這些組件包括數據存儲、數據集成、數據處理和其他進行數據分析的專門工具。一個典型的Hadoop 生態系統主要由HDFS、MapReduce、Hbase、Zookeeper、Oozie、Pig、Hive等核心組件構成,另外還包括Sqoop、Flume等框架,用來與其他企業融合。(很多新名詞,可以自行Google)


低成本、高可靠、高擴展、高有效、高容錯等特性讓Hadoop成爲最流行的大數據分析系統,然而其賴以生存的HDFS 和MapReduce 組件卻讓其一度陷入困境——批處理的工作方式讓其只適用於離線數據處理,在要求實時性的場景下毫無用武之地。因此,各種基於Hadoop的工具應運而生。爲了減少管理成本,提升資源的利用率,有當下衆多的資源統一管理調度系統,例如Twitter的Apache Mesos、Apache的YARN、Google 的Borg、騰訊搜搜的Torca、Facebook Corona等。Apache Mesos是Apache孵化器中的一個開源項目,使用ZooKeeper實現容錯複製,使用Linux Containers 來隔離任務,支持多種資源計劃分配(內存和CPU)。提供高效、跨分佈式應用程序和框架的資源隔離和共享,支持Hadoop、MPI、Hypertable、Spark 等。YARN又被稱爲MapReduce 2.0,借鑑Mesos,YARN 提出了資源隔離解決方案Container,提供Java 虛擬機內存的隔離。在YARN平臺上可以運行多個計算框架,如MR、Tez、Storm、Spark等。


此外,由Cloudera開發的Impala是一個開源的Massively Parallel Processing(MPP)查詢引擎。與Hive 相同的元數據、SQL語法,可以直接在HDFS或HBase上提供快速、交互式SQL 查詢。Impala是在Dremel的啓發下開發的,不再使用緩慢的Hive + MapReduce 批處理,而是通過與商用並行關係數據庫中類似的分佈式查詢引擎,可以直接從HDFS 或者HBase 中用SELECT、JOIN 和統計函數查詢數據,從而大大降低了延遲。Hadoop社區正努力擴展現有的計算模式框架和平臺,以便解決現有版本在計算性能、計算模式、系統構架和處理能力上的諸多不足。


3、MPP並行數據庫與Hadoop的混合集羣


 


第三類技術路線主要面對的是結構化和非結構化混合的大數據。採用MPP並行數據庫與Hadoop的混合集羣來實現對百PB量級、EB量級數據的存儲和管理。用MPP來管理計算高質量的結構化數據,提供強大的SQL和OLTP型服務;同時,用Hadoop實現對半結構化和非結構化數據的處理,以支持諸如內容檢索、深度挖掘與綜合分析等新型應用。


 


4、內存計算與Hadoop的混合


 


第四類技術路線Hadoop與內存計算模式的混合,目前已經成爲實現高實時性的大數據查詢和計算分析新的趨勢。這種混合計算模式之集大成者當屬UC Berkeley AMP Lab開發的Spark生態系統。


Spark是開源的類似Hadoop的通用的數據分析集羣計算框架,用於構建大規模、低延時的數據分析應用,建立於HDFS之上。Spark提供強大的內存計算引擎,幾乎涵蓋了所有典型的大數據計算模式,包括迭代計算、批處理計算、內存計算、流式計算(Spark Streaming)、數據查詢分析計算(Shark)以及圖計算(GraphX)。Spark 使用Scala 作爲應用框架,採用基於內存的分佈式數據集,優化了迭代式的工作負載以及交互式查詢。Spark支持分佈式數據集上的迭代式任務,實際上可以在Hadoop文件系統上與Hadoop一起運行(通過YARN、Mesos等實現)。另外,基於性能、兼容性、數據類型的研究,還有Shark、Phoenix、Apache Accumulo、Apache Drill、Apache Giraph、Apache Hama、Apache Tez、Apache Ambari 等其他開源解決方案。未來相當長一段時間內,主流的Hadoop平臺改進後將與各種新的計算模式和系統共存,並相互融合,形成新一代的大數據處理系統和平臺。同時,由於有Spark SQL的支持,Spark是既可以處理非結構化數據,也可以處理結構化數據的,爲統一這兩類數據處理平臺提供了非常好的技術方案,成爲目前的一個新的趨勢。


 


總之,我們可以得出以下結論(或預測):


Hadoop、Spark這類分佈式處理系統已經成爲大數據處理各環節的通用處理方法,並進一步構成生態圈;


結構化大數據與非結構化大數據處理平臺將逐漸融合與統一,而不必爲每類數據單獨構建大數據平臺;


MapReduce將逐漸被淘汰,被Spark這類高性能內存計算模式取代,同時Hadoop的HDFS將繼續向前發展,成爲大數據存儲的標準;


傳統的SQL技術將在大數據時代繼續發揚光大,有了SQL on Hadoop/Spark的技術支持,SQL將繼續作爲大數據時代的霸主,同時也被NoSQL補充;


以SQL、Hadoop/Spark爲核心的大數據系統將逐漸挑戰傳統數據庫市場,並逐步代替傳統的數據倉庫。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章