① 大數據所謂的分布式運算是指什麼
這個問題復中有兩個關制鍵詞,『大數據』和『分布式運算』,其實包含了三個問題:『什麼是大數據』,什麼是『分布式運算』,以及『什麼是大數據處理的分布式運算』。
假設你已經知道了前面的兩個問題(『什麼是大數據』,什麼是『分布式運算』)的答案的,因此只對第3個『什麼是大數據處理的分布式運算』做些回答;
大數據處理的最大特點是需要(計算)處理/參照的對象數據量的巨大。眾所周知現在的計算機結構對待需要處理/參照的數據是需要放在與承擔數據處理的CPU可直接交互(立刻調用)的存儲器中。而每個CPU可直接交互的數據量有限,對大數據的處理方式就需要用多CPU的集群(並行運算)系統來處理。這種處理可以用超級計算機系統的大數據處理,但現在更多是用網路將大量的計算機(成千上萬台)連接起來,實施分布式的集群運算來處理大數據。這里的分布,不只是CPU的分布,也是指存儲器(磁碟或內存)的分布。將待處理的大數據分布在連接在網路上的存儲器中,分布處理。現在的大數據分布式處理方式有Redis、Gemfire、SAP HANA……等等
② 分布式操作系統內容與雲計算,大數據有何關聯,如何理解這樣一些關聯
1,大數據(big data),指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產
2,大數據與雲計算的關系就像一枚硬幣的正反面一樣密不可分。大數據必然無法用單台的計算機進行處理,必須採用分布式計算架構。它的特色在於對海量數據的挖掘,但它必須依託雲計算的分布式處理、分布式資料庫、雲存儲和虛擬化技術。
他倆之間的關系你可以這樣來理解,雲計算技術就是一個容器,大數據正是存放在這個容器中的水,大數據是要依靠雲計算技術來進行存儲和計算的。
(2)分布式計算和大數據擴展閱讀:
大數據的4V特點:Volume(大量)、Velocity(高速)、Variety(多樣)、Value(價值)。
雲計算的關鍵詞在於「整合」,無論你是通過現在已經很成熟的傳統的虛擬機切分型技術,還是通過google後來所使用的海量節點聚合型技術,他都是通過將海量的伺服器資源通過網路進行整合,調度分配給用戶,從而解決用戶因為存儲計算資源不足所帶來的問題。
大數據正是因為數據的爆發式增長帶來的一個新的課題內容,如何存儲如今互聯網時代所產生的海量數據,如何有效的利用分析這些數據等等。
大數據的趨勢:
趨勢一:數據的資源化
何為資源化,是指大數據成為企業和社會關注的重要戰略資源,並已成為大家爭相搶奪的新焦點。因而,企業必須要提前制定大數據營銷戰略計劃,搶占市場先機。
趨勢二:與雲計算的深度結合
大數據離不開雲處理,雲處理為大數據提供了彈性可拓展的基礎設備,是產生大數據的平台之一。自2013年開始,大數據技術已開始和雲計算技術緊密結合,預計未來兩者關系將更為密切。除此之外,物聯網、移動互聯網等新興計算形態,也將一齊助力大數據革命,讓大數據營銷發揮出更大的影響力。
趨勢三:科學理論的突破
隨著大數據的快速發展,就像計算機和互聯網一樣,大數據很有可能是新一輪的技術革命。隨之興起的數據挖掘、機器學習和人工智慧等相關技術,可能會改變數據世界裡的很多演算法和基礎理論,實現科學技術上的突破
③ 20分鍾看懂大數據分布式計算
這是一篇科普性質的文章,希望能過用一個通俗易懂的例子給非計算機專業背景的朋友講清楚大數據分布式計算技術。大數據技術雖然包含存儲、計算和分析等一系列龐雜的技術,但分布式計算一直是其核心,想要了解大數據技術,不妨從MapRece分布式計算模型開始。該理論模型並不是什麼新理念,早在2004年就被Google發布,經過十多年的發展,儼然已經成為了當前大數據生態的基石,可謂大數據技術之道,在於MapRece。
在進入到分布式計算技術這個概念之前,我們要先回顧一下傳統計算技術,為了使計算機領域的相關概念能夠生動形象深入淺出,我們要將計算機類比為人:
下面我們要用一個簡單的案例,分析「人型計算機」是如何利用傳統計算技術解決實際問題的。在開始之前,要增加一些限定,如同正常計算機的內存是有上限的,我們的「人型計算機」也存在記憶力的上限,這里我們假設一個「人型計算機」最多可以同時在「內存」中記住4種信息,例如:蘋果、梨等四種水果的個數:
好了,背景知識已經足夠了,讓我們進入正題
首先,什麼是分布式計算?簡單點理解就是將大量的數據分割成多個小塊,由多台計算機分工計算,然後將結果匯總。這些執行分布式計算的計算機叫做集群,我們仍然延續前文中人和計算機的類比,那麼集群就是一個團隊,單兵作戰的時代已經過去,團隊合作才是王道:
為什麼需要分布式計算?因為「大數據」來了,單個計算機不夠用了,即數據量遠遠超出單個計算機的處理能力范圍:有時候是單位時間內的數據量大,比如在12306網上買票,每秒可能有數以萬計的訪問;也有可能是數據總量大,比如網路搜索引擎,要在伺服器上檢索數億的中文網頁信息。
實現分布式計算的方案有很多,在大數據技術出現之前就已經有科研人員在研究,但一直沒有被廣泛應用。直到2004年Google公布了MapRece之後才大熱了起來。大數據技術、分布式計算和MapRece的關系可以用下圖來描述,MapRece是分布式計算在大數據領域的應用:
MapRece模型是經過商業實踐的成熟的分布式計算框架,與Google的分布式文件系統GFS、分布式數據存儲系統BigTable一起,號稱Google的大數據「三寶」,為大數據技術的發展提供了堅實的理論基礎。但遺憾的是,谷歌並沒有向外界公布自己的商業產品,而真正讓大數據技術大踏步前進的是按照Google理論實現的開源免費產品Hadoop,目前已經形成了以Hadoop為核心的大數據技術生態圈。
讓我們回到數撲克牌這個例子中,大數據時代的撲克牌問題是什麼樣子的?
我個人在查閱了一些資料、進行了一些實踐以後,認為MapRece的技術可以簡單地用四字訣來總結:分、變、洗、合,分別代表「切分」、「變換」、「洗牌」、「合並」四個步驟:
下面來看如何用四字訣解決大數據撲克牌問題。
既然單個「人型計算機」無法完全處理完所有的撲克,那麼我們就把撲克牌隨機分成多份,每份撲克牌由一個「人型計算機」來處理,個數不超過單個計算機的處理上限,而且盡量讓每份的數量比較平均。
這里我們要講一下角色分工的問題,多台計算機合作,肯定要有角色分工,我們把負責數據切分的「人型計算機」可以理解為「指揮官」,「指揮官」一般只有一個(在實際中可能有多個),統籌調度之類的工作都歸他管。負責執行具體運算任務的「人型計算機」則是「計算兵」,「計算兵」按照承擔的任務不同分為「變計算兵」和「合計算兵」,前者負責第二步「變換「,後者負責最後一步「合並「。
「指揮官」在切分撲克牌之前,會先分配好「變計算兵」和「合計算兵」的數量,然後根據「變計算兵」的數量把撲克拆分成相應的份數,將每份撲克分給一個「變計算兵」,然後進入下一步。
每一個「變計算兵」都要對自己分得的每一張撲克牌按照相同的規則做變換,使得後續的步驟中可以對變換後的結果做處理。這種變換可以是加減乘除等數學運算,也可以是對輸入數據的結構的轉換。例如對於我們這個撲克牌問題來講,目的是為了計數,所以可以將撲克牌轉換為一種計算機更容易處理的數值結構:將每張撲克牌上貼一張小便簽,這條小便簽上寫明了其個數為1。
我們把這種貼了標簽的撲克牌叫做變種撲克牌。當在後續的步驟中統計牌型個數時,只需要把每個標簽上的數字加起來就可以。有的朋友肯定會好奇為什麼不讓每個「計算兵」直接統計各自的所有牌型的撲克的個數,這是因為這種「映射變換」運算的本質在於將每張撲克牌都進行同一種相同規則的變換,統計個數的工作要留在最後一步完成。嚴格的流水化操作,會讓整體的效率更高,而且變換的規則要根據具體問題來制定,更容易適配不同種類的計算。
變換的運算完成之後,每個「變計算兵」要將各自的變種撲克牌按照牌型分成多個小份,每個小份要最終被一個指定的「合計算兵」進行結果合並統計,這個過程就是「洗牌」,是「變計算兵」將變換後的撲克牌按照規則分組並分配給指定的「合計算兵」的過程。
洗牌分兩個階段,第一階段是每個「變計算兵」將變種撲克牌按照一定的規則分類,分類的規則取決於每個「合計算兵」的統計范圍,分類的個數取決於「合計算兵」的個數。如上圖所示,假設有3個「合計算兵」分別負責不同范圍的牌型的統計,那麼「變計算兵」需要根據每個「合計算兵」負責的牌型將自己的變種撲克牌分成3個小份,每份交給對應的「合計算兵」。洗牌的第二階段,「合計算兵」在指揮官的指揮下,去各個「變計算兵」的手中獲取屬於他自己的那一份變種撲克牌,從而使得牌型相同的撲克牌只會在一個「合計算兵」的手上。洗牌的意義在於使相同牌型的變種撲克牌匯聚在了一起,以便於統計。
「合計算兵」將手中的變種撲克牌按照相同的計算規則依次進行合並,計算規則也需要根據具體問題來制定,在這里是對撲克牌上標簽的數值直接累加,統計出最終的結果。
然後所有的「合計算兵」把自己的計算結果上交給「指揮官」,「指揮官」匯總後公布最終統計的結果。
ok,「分變洗合」四字訣介紹完畢,完整過程如下:
分布式處理技術在邏輯上並不復雜,但在具體的實現過程中會有很多復雜的過程,譬如「指揮官」如何協調調度所有的「運算兵」,「運算兵」之間如何通信等等,但對於使用MapRece來完成計算任務的程序員來講,這些復雜的過程是透明的,分布式計算框架會自己去處理這些問題,程序員只需要定義兩種計算規則:第二步中變換的規則和第四步中合並的規則。
正所謂大道至簡,萬變不離其宗,理解了MapRece就理解了大數據分布式處理技術,而理解大數據分布式處理技術,也就理解了大數據技術的核心。
如果你還沒有理解或者發現了文中的邏輯漏洞,歡迎留言討論。
④ 大數據的四種主要計算模式包括
大數據的四種主要計算模式包括:批處理模式、流處理模式、互動式處理模式、圖處理模式。
1、批處理模式(Batch Processing):將大量數據分成若干小批次進行處理簡隱隱,通常是非實時的、離線的方式進行計算,用途包括離線數據分析、離線數據挖掘等。
2、流處理模式(Stream Processing):針對數據源的實時性要求更高,實時計算每個事件(Event)或者一組事件的處理結果,能夠進行非常低延遲的計算和響應,用途包括實時監控、實時推薦等。
3、互動式處理模式(Interactive Processing):這種模式的特點是快速響應交互請求,在數據中進行查詢、分組、排序等等,處理的時間通常在數秒內,用途包括復雜報表生成、數據可視化、數據探索等。
4、圖處理模式(Graph Processing):針對數據之間的關系進行計算,通常以圖的形式表示數據之間的聯系,能夠解決一些復雜的問攜遲題,如社交網路分析、路徑規劃、推薦系統等。
這四種計算模式通常都需要在大規模分布式計算框架中實現,如Hadoop、Spark、Storm、Flink等,以應對大數據量的處理需求。
大數據技術主要涉及以下方面的學科
1、數學和統計學:大數據處理離不開高等數學、線性代數、概率論和數理統計等數學和統計學的基礎。
2、攔廳計算機科學:大數據分析和處理需要有扎實的計算機編程基礎,掌握各種編程語言和開發工具,並熟悉分布式系統和資料庫等技術。
3、數據挖掘:數據挖掘是從大量數據中發現隱藏的關系、規律和趨勢的過程,需要深入理解各種數據挖掘演算法和技術。
4、人工智慧:人工智慧技術中的機器學習、深度學習等方法也常常用於大數據分析和處理,並能夠為大數據提供更深入、更高級的分析。
5、網路和通信:現代大數據技術需要支持海量數據的傳輸和處理,因此還需要掌握網路和通信技術,如雲計算、分布式存儲和通信協議等。
總之,大數據技術是涉及多個學科領域的綜合性學科,需要廣泛的知識面和深入的專業技能,未來有很大的發展空間和挑戰。