Hadoop框架中最核心的設計就是MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的一句話解釋MapReduce就是“任務的分解與結果的匯總”。HDFS是Hadoop分布式文(Hadoop Distributed FileSystem)的縮寫,為分布式計算存盤提供了底層支持。MapReduce從它名字上來看就大致可以看出個緣由,兩個動詞Map和Reduce,“Map(展開)”就是將一個任務分解成為多個任務,“Reduce”就是將分解后多任務處理的結果匯總起來,得出最后的分析結果。這不是什么新思想,其實在前面提到的多執行緒,多任務的設計就可以找到這種思想的影子。不論是現實社會,還是在程式設計中,一項作業往往可以被拆分成為多個任務,任務之間的關系可以分為兩種:一種是不相關的任務,可以并行執行;另一種是任務之間有相互的依賴,先后順序不能夠顛倒,這類任務是無法并行處理的。回到大學時期,教授上課時讓大家去分析關鍵路徑,無非就是找最省時的任務分解執行方式。在分布式系統中,機器集群就可以看作硬體資源池,將并行的任務拆分,然后交由每一個空閑機器資源去處理,能夠極大地提高計算效率,同時這種資源無關性,對于計算集群的擴展無疑提供了最好的設計保證。
批處理計算:針對大規模資料的批量處。MapReduce可以并行執行大規模資料處理任務,用于大規模資料集的并行運算(單輸入、兩階段、粗粒度資料并行的分布式框架)。它將復雜的、運行于大規模集群上的并行計算程序高度抽象到了兩個函式——Map和Reduce,并把一個大資料集切分成多個小資料集,分布到不同的機器上進行并行處理,極大地方便了分布式編程作業。在MapReduce中,資料流從一個穩定的來源,進行一系列加工處理后,流出到一個穩定的檔案系統(如HDFS)。
Spark是一個針對超大資料集合的低延遲的集群分布式計算系統。它啟用了記憶體分布資料集,可以提供互動式查詢、優化迭代作業負載。在MapReduce中,資料流從一個穩定的來源,進行一系列加工處理后,流出到一個穩定的檔案系統(如HDFS)。而Spark則用記憶體替代HDFS或本地磁盤來存盤中間結果,因此要快很多。
流計算:流資料(或資料流)是指在時間分布和數量上無限的一系列動態資料集合體,資料的價值隨著時間的流逝而降低,因此必須實時計算給出秒級回應。業內有許多流計算框架與平臺:第一類,商業級流計算平臺(IBMInfoSphere Streams、IBM StreamBase等);第二類,開源流計算框架(Twitter Storm、S4等);第三類,公司為支持自身業務開發的流計算框架。
圖計算:如Pregel、Giraph、GraphX、PowerGraph等。
查詢分析計算針對超大規模資料的存盤管理和查詢分析,需要提供實時或準實時回應。如Dremel、Impala等。
云計算:云計算的關鍵技術:虛擬化、分布式存盤、分布式計算、多租戶(資料隔離、客戶化配置、架構擴展、性能定制)等。
物聯網:物聯網的技術架構:感知層、網路層、處理層、應用層。
物聯網的關鍵技術:識別和感知技術、網路和通信技術、資料挖掘和融合技術。
三者之間的關系:1、區別:大資料側重對海量資料的存盤、處理、分析,發現價值,服務生活;云計算本質旨在整合和優化各種IT資源并通過網路以服務的方式,廉價地提供給用戶;物聯網的發展目標是實作物物相連,應用創新是物聯網發展的核心。
2、聯系:三者彼此滲透、相互融洽。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/20572.html
標籤:網絡
上一篇:kylin2.5.2啟動webUI打不開,日志報錯如下
下一篇:第十一章 大資料技術與實踐
