張焰等
【摘要】 隨著互聯網、移動互聯網和物聯網的發展,我們已經迎來了數據大爆炸的時代,數據的快速增長帶來了數據存儲、處理、分析的巨大壓力,而大數據技術(Big data)的引入,不但滿足了系統功能和性能的要求,帶來良好的可擴展性,降低了IT部署的成本,還拓展了數據智能分析的應用領域。同時,大數據分析與云計算的發展密切相關,云計算是大數據處理的基礎,而大數據技術是云計算的延伸,云計算的分布式存儲和計算架構為大數據的快速處理和智能分析提供了一種合適的解決方案。本文將探討建立在云計算基礎上的大數據處理技術,包括分布式計算框架、分布式文件系統、大數據管理技術、實時流數據處理、機器學習以及可視化技術等。
【關鍵詞】 云計算 大數據 MapReduce Hadoop一、大數據
1.1什么是大數據
大數據概念可以從四個維度去解,即三個V和一個C。三個V分別指的是數據量大(Volume)、數據種類多(Variety)和數據增長速度快(Velocity),最后一個C指的是處理、升級或利用大數據的分析手段比處理結構化數據要復雜的多(Complexity)。大數據分析常和云計算聯系到一起,因為實時的大型數據集分析需要像Map-Reduce一樣的并行計算框架將復雜的計算任務分配到“云”中成百上千的節點。
1.2大數據與云計算
大數據本身就是一個問題集,云計算技術是目前解決大數據問題集最重要最有效的手段。云計算提供了基礎的架構平臺,大數據應用在這個平臺上運行。目前公認為分析大數據集最有效手段的分布式處理技術,也是云計算思想的一種具體體現。
云計算是分布式處理、并行處理和網格計算的發展,或者說是這些計算機科學概念的商業實現。云計算將網絡上分布的計算、存儲、服務構件、網絡軟件等資源集中起來,基于資源虛擬化的方式,為用戶提供方便快捷的服務, 實現了資源和計算的分布式共享和并行處理,能夠很好地應對當前互聯網數據量高速增長的勢頭。
1.3大數據與Hadoop
Hadoop是一個Apache的開源項目,主要面向存儲和處理成百上千TB直至PB級別的結構化、半結構化或非結構化的大數據。Hadoop提供的Map-Reduce能將大數據問題分解成多個子問題,并將它們分配到成百上千個處理節點之上,再將結果匯集到一個小數據集當中,從而更容易分析得出最后的結果。
Hadoop項目包括三部分,分別是Hadoop Distributed File System(HDFS)、Map Reduce編程模型,以及Hadoop Common。Hadoop具備低廉的硬件成本、開源的軟件體系、較強的靈活性、允許用戶自己修改代碼等特點,同時能支持海量數據的存儲和計算任務。這些特點讓Hadoop被公認為是新一代的大數據處理平臺。 Hadoop同樣具備出色的大數據集處理能力,在獲取、存儲、管理和分析數據方面遠遠超越傳統的數據庫軟件工具。Hadoop經常在構建大數據解決方案時被用作基礎構架軟件。
二、大數據技術綜述
大數據處理不僅僅是Hadoop,許多特定的數據應用場景是需要實時分析和互動反饋的,這時候就需要利用包括內存檢索、流處理和實時計算等其他技術。而云計算的分布式存儲和計算架構開啟了大數據技術研究的大門,打造健全的大數據生態環境,所有這些技術結合在一起,才是一個完整的大數據處理系統。
2.1分布式計算框架
MapReduce是Google開發的一種簡化的分布式編程模型和高效的任務調度模型,用于大規模數據集(大于1TB)的并行運算,使云計算環境下的編程變得十分簡單。
MapReduce將數據處理任務抽象為一系列的Map(映射)和Reduce(化簡)操作對。Map主要完成數據的分解操作,Reduce主要完成數據的聚集操作.輸入輸出數據均以〈key,value〉格式存儲.用戶在使用該編程模型時,只需按照自己熟悉的語言實現Map函數和Reduce函數即可,MapReduce算法框架會自動對任務進行劃分以做到并行執行。
Pregel是Google 提出的迭代處理計算框架,它具有高效、可擴展和容錯的特性,并隱藏了分布式相關的細節,展現給人們的僅僅是一個表現力很強、很容易編程的大型圖算法處理的計算框架。Pregel的主要應用場景是大型的圖計算,例如交通線路、疾病爆發路徑、WEB 搜索等相關領域。
2.2分布式文件系統
為保證高可用、高可靠和經濟性,基于云計算的大數據處理系統采用分布式存儲的方式來保存數據,用冗余存儲的方式保證數據的可靠性。目前廣泛使用的分布式文件系統是Google的GFS和Hadoop團隊開發的GFS的開源實現HDFS。
GFS即Google文件系統,是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。GFS的設計思想不同于傳統的文件系統,是針對大規模數據處理和Google應用特性而設計的,運行成本低廉,并提供容錯功能。
HDFS即Hadoop分布式文件系統,受到GFS很大啟發,具有高容錯性,并且可以被部署在低價的硬件設備之上。HDFS很適合那些有大數據集的應用,并且提供了數據讀寫的高吞吐率。HDFS是一個master/slave的結構,在master上只運行一個Namenode,而在每一個slave上運行一個Datanode。HDFS支持傳統的層次文件組織結構,對文件系統的操作(如建立、刪除文件和文件夾)都是通過Namenode來控制,Datanode用來存放數據塊。
2.3大數據管理技術
互聯網數據已超出關系型數據庫的管理范疇,電子郵件、超文本、博客、標簽(Tag)以及圖片、音視頻等各種非結構化數據逐漸成為大數據的重要組成部分,而面向結構化數據存儲的關系型數據庫已經不能滿足數據快速訪問、大規模數據分析的需求,隨之而來,一系列新型的大數據管理技術和工具應運而生。
2.3.1 非關系型數據庫
NoSQL,也有人理解為Not Only SQL,它是一類非關系型數據庫的統稱。其特點是:沒有固定的數據表模式、可以分布式和水平擴展。NoSQL并不是單純的反對關系型數據庫,而是針對其缺點的一種補充和擴展。典型的NoSQL數據存儲模型有文檔存儲、鍵-值存儲、圖存儲、對象數據、列存儲等。而比較流行的,不得不提到Google的Bigtable,它把所有數據都作為對象來處理,形成一個巨大的表格,用來分布存儲大規模結構化數據,數據量可達PB級。而HBase是Hadoop團隊基于Bigtable的開源實現,使用HDFS作為其文件存儲系統。同時,Cassandra(K/V型數據庫)、MongoDB(文檔數據庫)和Redis等一系列優秀的非關系型數據庫產品如雨后春筍般問世。
2.3.2 數據查詢工具
Hive是Facebook提出的基于Hadoop的大型數據倉庫,其目標是簡化Hadoop上的數據聚集、即席查詢及大數據集的分析等操作,以減輕程序員的負擔.它借鑒關系數據庫的模式管理、SQL接口等技術,把結構化的數據文件映射為數據庫表,提供類似于SQL的描述性語言HiveQL供程序員使用,可自動將HiveQL語句解析成一優化的MapReduce任務執行序列.此外,它也支持用戶自定義的MapReduce函數。
PigLatin是Yahoo!提出的類似于Hive的大數據集分析平臺.兩者的區別主要在于語言接口.Hive提供了類似SQL的接口,PigLatin提供的是一種基于操作符的數據流式的接口.可以說Pig利用操作符來對Hadoop進行封裝,Hive利用SQL進行封裝。
Google Dremel是個可擴展的、交互式的即時查詢系統,用于完成大規模查詢結構化數據集(如日志和事件文件)。它支持類SQL語法,區別在于它只能查詢,不支持修改或者創建功能,也沒有表索引。數據被列式存儲,這樣有助于提升查詢的速度。Google將Dremel作為MapReduce的一種補充,被用于分析MapReduce的結果或者是作為大規模計算的測試。
2.4實時流處理技術
伴隨著互聯網業務發展的步調,以及業務流程的復雜化,企業的注意力越來越集中在“數據流”而非“數據集”上面,他們需要的是能夠處理隨時發生的數據流的架構,現有的分布式計算架構并不適合數據流處理。流計算強調的是數據流的形式和實時性。MapReduce系統主要解決的是對靜態數據的批量處理,當MapReduce任務啟動時,一般數據已經到位了(比如保存到了分布式文件系統上),而流式計算系統在啟動時,一般數據并沒有完全到位,而是經由外部數據源源不斷地流入,重視的是對數據處理的低延遲,希望進入的數據越快處理越好。數據越快被處理,結果就越有價值,這也是實時處理的價值所在。
流計算的數據本身就是數據流,不需要數據準備的時間,有數據流入就開始計算,解決了數據準備和延遲的兩個問題。現有的解決方案中,Twitter的Storm和雅虎的S4框架更適合數據流計算的場景。Storm是開源的分布式實時計算系統,可以可靠的處理流式數據并進行實時計算,單機性能可達到百萬記錄每秒,開發語言為Clojure和Java,并具備容錯特性。S4是面向流式數據和實時處理的,所以針對實時性較高的業務,可以很好地對數據做出高效的分析處理,而且系統一旦上線,很少需要人工干預,源源不斷的數據流會被自動路由并分析。對于海量數據,它和MapReduce都可以應對,但它能比后者更快地處理數據。
三、思考與展望
以云計算為基礎的信息存儲、分享和挖掘手段為知識生產提供了工具,通過對大數據分析、預測會使得決策更為精準,這對媒體融合具有重要意義。
新聞媒體的數據庫中擁有海量信息存儲,這些多媒體數據包括文字,圖片,視頻和音頻等多種格式,符合大數據處理的基本特征,利用大數據技術對這些資源進行存儲,計算和分析,了解用戶行為,挖掘數據本質和關聯,為領導提供決策支持,為終端用戶提供更好的服務和新聞定制,增強新聞信息產品的質量和影響力。
如今,在開源社區,圍繞Google MapReduce框架,已經成長出了一批優秀的開源項目。這些項目在技術和實現上相互支持和依托,逐漸形成了一個特有的“大數據”生態系統。系統為我們實現優質廉價的大數據分析和管理提供了堅實的技術基礎。
新聞媒體可以順應大數據的技術趨勢,加強技術調研,早日選型,搭建大數據處理平臺,利用云計算項目資源,將海量數據統籌管理,通過分析和挖掘,實現新聞產品的創新和跨越式發展,以現代化的傳播手段向世界展示中國。