提到大資料處理,很多人可能都會想到google的《mapreduce:simplied data processing on large clusters》,畢竟google算是應用大資料最早的企業了。
大講台老師認為,hadoop流行的主要原因是它的開源,否則,google的mapreduce、gfs和bigtable開源的話,估計就沒有現在的hadoop了。
(一)大資料處理框架分類
不論是系統中存在的歷史資料,還是持續不斷接入系統中的實時資料,只要資料是可訪問的,我們就可以對資料進行處理。按照對所處理的資料形式和得到結果的時效性分類,資料處理框架可以分為兩類:
批處理系統
流處理系統
批處理是一種用來計算大規模資料集的方法。批處理的過程包括將任務分解為較小的任務,分別在集群中的每個計算機上進行計算,根據中間結果重新組合資料,然後計算和組合最終結果。當處理非常巨大的資料集時,批處理系統是最有效的。
典型的批處理系統就是apache hadoop。而流處理則對由連續不斷的單條資料項組成的資料流進行操作,注重資料處理結果的時效性。典型的流處理系統有apache storm,apache samza。還有一種系統,同時具備批處理與流處理的能力,這種稱為混合處理系統,比如apache spark,apache flink。接下來我們來詳細介紹這三種處理系統。
(二)大資料處理框架的選擇
1. 對於初學者
由於apache hadoop在大資料領域的廣泛使用,因此仍推薦作為初學者學習資料處理框架的首選。雖然mapreduce因為效能原因以後的應用會越來越少,但是yarn和hdfs依然作為其他框架的基礎元件被大量使用(比如hbase依賴於hdfs,yarn可以為spark、samza等框架提供資源管理)。學習hadoop可以為以後的高階打下基礎。
apache spark在目前的企業應用中應該是當之無愧的王者。在批處理領域,雖然spark與mapreduce的市場占有率不相上下,但spark穩定上公升,而mapreduce卻穩定下降。而在流處理領域,spark streaming與另一大流處理系統apache storm共同佔據了大部分市場(當然很多公司會使用內部研發的資料處理框架,但它們多數並不開源)。伯克利的正統出身、活躍的社群以及大量的商用案例都是spark的優勢。除了可用於批處理和流處理系統,spark還支援互動式查詢、圖計算和機器學習。spark在未來幾年內仍然會是大資料處理的主流框架,推薦同學們認真學習。
另乙個作為混合處理框架的apache flink則潛力無限,被稱作「下一代資料處理框架」。雖然目前存在社群活躍度不夠高、商用案例較少等情況,不過「是金子總會發光」,如果flink能在商業應用上有突出表現,則可能挑戰spark的地位。
2. 對於企業應用
如果企業中只需要批處理工作,並且對時間並不敏感,那麼可以使用成本較其他解決方案更低的hadoop集群。
如果企業僅進行流處理,並且對低延遲有著較高要求,storm更加適合,如果對延遲不非常敏感,可以使用spark streaming。而如果企業內部已經存在kafka和hadoop集群,並且需要多團隊合作開發(下游團隊會使用上游團隊處理過的資料作為資料來源),那麼samza是乙個很好的選擇。
如果需要同時兼顧批處理與流處理任務,那麼spark是乙個很好的選擇。混合處理框架的另乙個好處是,降低了開發人員的學習成本,從而為企業節約人力成本。flink提供了真正的流處理能力並且同樣具備批處理能力,但商用案例較少,對於初次嘗試資料處理的企業來說,大規模使用flink存在一定風險。
大資料處理
大資料處理的流程主要包括以下四個環節 採集 匯入 預處理 統計 分析 挖掘,下面針對這四環節進行簡單闡述。大資料處理之一 採集 在大資料的採集過程中,其主要特點和挑戰是併發數高,因為同時有可能會有成千上萬的使用者來進行訪問和操作,比如火車票售票 和 它們併發的訪問量在峰值時達到上百萬,所以需要在採集...
大資料處理框架 Hadoop簡單了解
大資料 收集 整理和處理大容量資料集,並從中獲得見解所需的非傳 略和技術的總稱。人工智慧 圖靈測試 指人和機器在被隔開的情況下,通過一些裝置向機器隨意提問,經過多次測試後,如果有超過30 的人不能確定被測試者是人還是機器,那麼這台機器就通過了測試,並被認為具有人類智慧型。如果乙個東西具有學習 分類和...
大資料處理平台與案例
大資料能夠在國內得到快速發展,甚至是國家層面的支援,最為重要的一點就是我們純國產大資料處理技術的突破以及跨越式發展。在網際網路深刻改變我們的生活 工作方式的當下,資料就成為了最為重要的資料。尤其是資料安全問題就更為突出,前階段的facebook使用者資料洩漏所引發產生的一系列問題,就充分的說明了資料...