1. 程式人生 > >Spark——分散式平行計算概念

Spark——分散式平行計算概念

一,概念

   一個資源密集型的任務,需要一組資源並行的完成,當計算機任務過重,就把計算任務拆分,然後放到多個計算節點上同時執行,這就是分散式平行計算啦。分散式平行計算,強呼叫硬體的堆疊,來解決問題。

   spark解決的問題:有了spark,只要把資料和程式交給spark,它會機智地進行資料切分、演算法複製、分佈執行、結果合併。spark遮蔽了分佈平行計算的細節,讓我們可以快速開發分佈並行的應用。

二,基於資料集的計算框架

   spark的計算正規化是資料集上的計算,在實用spark的時候,要按照spark的正規化寫演算法。Spark在資料集的層次上進行分佈平行計算,它只認成堆的資料。    提交給spark的任務,都必須滿足兩個條件:
  1. 資料是可以分塊的,每塊構成一個集合。
  2. 演算法只能在集合級別執行操作。

     比如,對於文字檔案,在Spark中,一行就是一條記錄,若干條記錄組成一個集合。我們 原來的演算法直接在每一行上進行計算,就不行了。需要先構建資料集,然後通過資料集的操作, 實現我們的目的

     所以,Spark是一種粗粒度、基於資料集的平行計算框架。

三,Spark基本概念及拆分任務的流程

  1,將資料載入並構造資料集,在spark中,這個資料集被稱為RDD(彈性分佈資料集)。  2,對資料集進行map操作,指定行為  3,對map中的資料集進行collect操作,並獲得合併的結果。

相關推薦

Spark——分散式平行計算概念

一,概念   一個資源密集型的任務,需要一組資源並行的完成,當計算機任務過重,就把計算任務拆分,然後放到多個計算節點上同時執行,這就是分散式平行計算啦。分散式平行計算,強呼叫硬體的堆疊,來解決問題。 

巧用zookeeper實現分散式平行計算

雲端計算的技術話題中少不了“分散式”,“平行計算” 這些個關鍵詞,我們知道硬體擴充套件的條件(​Scale-up)始終是有限制的,將計算分散到網路中更多機器的CPU上提供更高的計算效能(Scale-out),並在這基礎上能將計算同時進行,那麼總體計算瓶頸會減小,計算的效能會

科普:平行計算分散式計算、叢集計算和雲端計算

1. 平行計算(Parallel Computing)     平行計算或稱平行計算是相對於序列計算來說的。平行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程。為執行平行計算,計算資源應包括一臺配有多處理機(並行處理)的計算機、一個與網路相連的計算機專有編

工業網際網路平臺核心技術之三:平行計算分散式計算

之所以將兩種計算技術放在一起,是因為這兩種計算具有共同的特點,都是運用並行來獲得更高效能運算,把大任務分為N個小任務。但兩者還是有區別的,關於兩者的區別在後面說。 一、平行計算 1、平行計算概念 平行計算又稱平行計算是指一種能夠讓多條指令同時進行的計算模式,可分為時

分散式計算平行計算差異

Mapreduce是分散式計算的典型技術,MPI則是平行計算的典型技術。總結下來主要兩點區別: 1、分散式計算(如MapReduce)的計算節點任務往往是獨立的,鬆散的。不涉及大規模的資料互動,因此節點之間執行幾乎互不影響。體現到技術架構上就使得可以做到計算和儲存在同一個節點上,不存在計算節

平行計算分散式計算、叢集計算和雲端計算

科普:平行計算、分散式計算、叢集計算和雲端計算   1. 平行計算(Parallel Computing)     平行計算或稱平行計算是相對於序列計算來說的。平行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程。為執行平行計算,計算資源應

分散式計算平行計算、雲端計算概述

1、什麼是分散式計算: 經科學研究發現,目前存在很多萬億次計算例項,其中涉及的問題都需要非常巨大的計算能力才能解決,這類問題很多還是跨學科的、極富挑戰性。除此之外還有很多研究專案需要巨大的計算能力 比如: 1)解決複雜的數學問題 2)尋找最安全的密碼系統 3)生物病理研究

分散式儲存和平行計算的一點思考

分散式儲存: 首先是檔案在HDFS上面以128M塊大小儲存(3份),這三塊是在不同節點的(機架感知),我覺的好處是容錯還有當計算是這個節點資源不夠可以去塊所在的另一節點執行,不用拉取資料。 可以通過fs.getfileblocklocation()獲取塊位置 平行計算: 1、MR使用預設的輸

Spark上如何做分散式AUC計算

by 王犇 20160115 AUC是分類模型常用的評價手段,目前的Spark mllib裡面evaluation包中所提供的auc方法是拿到了roc曲線中的各個點之後再進行auc的計算,但是實際應用場景中(以邏輯迴歸為例),我們常常是對每個樣本進行打分之後整合樣本的lab

平行計算分散式計算

主要內容來自維基百科 先上一張圖大略直觀感受一下: 分散式系統是聯網計算機組,其工作目標相同。術語“ 併發計算 ”,“ 平行計算 ”和“分散式計算”有很多重疊,它們之間沒有明顯的區別。[15]同一系統可以表徵為“並行”和“分散式”; 典型分散式系統中的

平行計算實踐(二)(spark streaming+graphx+kafka)

上回利用transform方法實現對於資料流的圖平行計算過程,今天繼續改進完善已有的計算機制,加入updateStateByKey和checkpoint機制,保障圖平行計算在故障中仍能保證零誤差。 import kafka.serializer.Strin

分散式計算 網格計算 平行計算 雲端計算

 Wikipedia的解釋:    雲端計算(cloud computing,分散式計算技術的一種,其最基本的概念,是透過網路將龐大的計算處理程式自動分拆成無數個較小的子程式,再交由多部伺服器所組成的龐大系統經搜尋、計算分析之後將處理結果回傳給使用者。透過這項技術,網路服務提供者可以在數秒之內,達成處理數以千

平行計算】用MPI進行分散式記憶體程式設計(二)

 通過上一篇中,知道了基本的MPI編寫並行程式,最後的例子中,讓使用0號程序做全域性的求和的所有工作,而其他的程序卻都不工作,這種方式也許是某種特定情況下的方案,但明顯不是最好的方案。舉個例子,如果我們讓偶數號的程序負責收集求和的工作,情況會怎麼樣?如下圖:  

平行計算分散式處理的區別

一、一些概念 1.1 物理處理器:      一個單核CPU,多核CPU的某個核心,都是一個物理處理器;   1.2 邏輯處理器:     通過超執行緒技術可以將一個物理處理器模擬成多個邏輯處理器,     超執行緒技術的目的是提高物理處理器的利用效率,開銷是模擬的多個邏輯

雲端計算分散式計算,網格計算平行計算對比分析

現在把早上看到的雲端計算和分散式計算,網格計算,平行計算的概念對比分析一下。 其實是要了解雲端計算,但是這幾個名字叫得容易把問題搞混。就先從關係最不大的說吧。 平行計算(Parallel Computing) 並 行計算或稱平行計算是相對於序列計算來說的;所謂平行計算可分為時

spark 平行計算 前n項和

      在單執行緒計算中前n項和計算一直沒有障礙,隨著資料量的膨脹,單執行緒計算已經無法滿足資料計算。計算逐漸被遷移到spark或者hadoop叢集上平行計算,但是無論spark還是hadoop平行計算前n項和一直是一個痛點,只能做到每個結點或者容器上的前N項和,卻無法

平行計算vs分散式計算

中國科學院博士,程式碼潔癖重度患者,10年以上Java Web架構、開發經驗,非單一語言愛好者,熟悉C++/MFC/java/Scala開發技術,著有《標準C++開發入門與程式設計實踐》、《把脈VC++》,以及“白喬原創”系列技術文章多篇。 開源貢獻,歡迎star: https://gith

分散式計算平行計算的異同

轉載:http://www.equn.com/forum/thread-4876-1-1.html 解決物件上:都是大任務化為小任務,這是他們共同之處。但是分散式的任務包互相之間有獨立性,上一個任務包的結果未返回或者是結果處理錯誤,對下一個任務包的處理幾乎沒有什麼影響。因此

[OSDI 12] PoweGraph: 分散式平行計算框架 學習總結

        今天要講的文章是OSDI 2012年的一篇文章,PowerGraph:Distributed Graph-Parallel Computation on Natural Graphs。本文主要想解決的問題就是:現有的圖資料,如社交網路、Web網頁等都是一種Po

Spark分散式計算和RDD模型研究

1背景介紹現今分散式計算框架像MapReduce和Dryad都提供了高層次的原語,使使用者不用操心任務分發和錯誤容忍,非常容易地編寫出平行計算程式。然而這些框架都缺乏對分散式記憶體的抽象和支援,使其在某