大数据系统发展的技术路线
自從大數據出來后,數據管理界發生了巨大的變化,技術驅動成為大數據管理系統的一個主要變革力量。
?
傳統的數據庫管理系統以結構化數據為主,因此關系數據庫系統(RDBMS)可以一統天下滿足各類應用需求。然而,大數據往往是半結構化和非結構化數據為主,結構化數據為輔,而且各種大數據應用通常需要對不同類型的數據內容檢索、交叉比對、深度挖掘與綜合分析。面對這類應用需求,傳統數據庫無論在技術上還是功能上都難以為繼。因此,近幾年出現了oldSQL、NoSQL 與NewSQL 并存的局面。(這幾個術語后面專題討論)
總體上,按數據類型與計算方式的不同,面向大數據的管理系統與處理采用不同的技術路線,大致可以分為四類。
?
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為核心的大數據系統將逐漸挑戰傳統數據庫市場,并逐步代替傳統的數據倉庫。
?
技術!技術!
總結
以上是生活随笔為你收集整理的大数据系统发展的技术路线的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: http请求头有哪些字段
- 下一篇: 气象统计 第三次实习 落后交叉相关系数和