一、spark是一個基於內存計算的開源的集羣計算系統,目的是讓數據分析更加快速。所以運行spark的機器應該儘可能的大內存,如96G以上。
二、spark全部操做均基於RDD,操做主要分紅2大類:transformation與action。
三、spark提供了交互處理接口,相似於shell的使用。
四、spark能夠優化迭代工做負載,由於中間數據均保存於內存中。
五、spark 是在 Scala 語言中實現的,它可使用scala、python進行交互式操做,還可使用scala、python、java進行編程。
六、spark能夠經過mesos運行在hdfs上,但hadoop2.x提供了YARN,這更方便於spark運行在hdfs,YARN還提供了內存、CPU的集羣管理功能。
七、Spark提供的數據集操做類型有不少種,不像Hadoop只提供了Map和Reduce兩種操做。好比 map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多種操做類型,他們把這些操做稱爲Transformations。同時還提供Count,collect, reduce, lookup, save等多種actions。這些多種多樣的數據集操做類型,給上層應用者提供了方便。各個處理節點之間的通訊模型再也不像Hadoop那樣就是惟一的 Data Shuffle一種模式。用戶能夠命名,物化,控制中間結果的分區等。能夠說編程模型比Hadoop更靈活.
==========================================================
如下內容摘自:http://www.itpub.net/thread-1864721-3-1.html
一、 Spark VSHadoop有哪些異同點?
Hadoop:分佈式批處理計算,強調批處理,經常使用於數據挖掘、分析
Spark:是一個基於內存計算的開源的集羣計算系統,目的是讓數據分析更加快速, Spark 是一種與 Hadoop 類似的開源集羣計算環境,可是二者之間還存在一些不一樣之處,這些有用的不一樣之處使 Spark 在某些工做負載方面表現得更加優越,換句話說,Spark 啓用了內存分佈數據集,除了可以提供交互式查詢外,它還能夠優化迭代工做負載。
Spark 是在 Scala 語言中實現的,它將 Scala 用做其應用程序框架。與 Hadoop 不一樣,Spark 和 Scala 可以緊密集成,其中的 Scala 能夠像操做本地集合對象同樣輕鬆地操做分佈式數據集。
盡 管建立 Spark 是爲了支持分佈式數據集上的迭代做業,可是實際上它是對 Hadoop 的補充,能夠在 Hadoop 文件系統中並行運行。經過名爲Mesos的第三方集羣框架能夠支持此行爲。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms,Machines,and People Lab) 開發,可用來構建大型的、低延遲的數據分析應用程序。
雖然 Spark 與 Hadoop 有類似之處,但它提供了具備有用差別的一個新的集羣計算框架。首先,Spark 是爲集羣計算中的特定類型的工做負載而設計,即那些在並行操做之間重用工做數據集(好比機器學習算法)的工做負載。爲了優化這些類型的工做負 載,Spark 引進了內存集羣計算的概念,可在內存集羣計算中將數據集緩存在內存中,以縮短訪問延遲.
在大數據處理方面相信你們對hadoop已經耳熟能詳,基於GoogleMap/Reduce來實現的Hadoop爲開發者提供了map、reduce原 語,使並行批處理程序變得很是地簡單和優美。Spark提供的數據集操做類型有不少種,不像Hadoop只提供了Map和Reduce兩種操做。好比 map,filter, flatMap,sample, groupByKey, reduceByKey, union,join, cogroup,mapValues, sort,partionBy等多種操做類型,他們把這些操做稱爲Transformations。同時還提供Count,collect, reduce, lookup, save等多種actions。這些多種多樣的數據集操做類型,給上層應用者提供了方便。各個處理節點之間的通訊模型再也不像Hadoop那樣就是惟一的 Data Shuffle一種模式。用戶能夠命名,物化,控制中間結果的分區等。能夠說編程模型比Hadoop更靈活.
二、Spark在容錯性方面是否比其餘工具更有優越性?
從Spark的論文《Resilient Distributed Datasets: AFault-TolerantAbstraction for In-Memory Cluster Computing》中沒看出容錯性作的有多好。卻是提到了分佈式數據集計算,作checkpoint的兩種方式,一個是checkpoint data,一個是loggingthe updates。貌似Spark採用了後者。可是文中後來又提到,雖而後者看似節省存儲空間。可是因爲數據處理模型是相似DAG的操做過程,因爲圖中的某 個節點出錯,因爲lineage chains的依賴複雜性,可能會引發所有計算節點的從新計算,這樣成本也不低。他們後來講,是存數據,仍是存更新日誌,作checkpoint仍是由用 戶說了算吧。至關於什麼都沒說,又把這個皮球踢給了用戶。因此我看就是由用戶根據業務類型,衡量是存儲數據IO和磁盤空間的代價和從新計算的代價,選擇代 價較小的一種策略。取代給中間結果進行持久化或創建檢查點,Spark會記住產生某些數據集的操做序列。所以,當一個節點出現故障時,Spark會根據存 儲信息從新構造數據集。他們認爲這樣也不錯,由於其餘節點將會幫助重建。
三、Spark對於數據處理能力和效率有哪些特點?
Spark提供了高的性能和大數據處理能力,使得用戶能夠快速獲得反饋體驗更好。另外一類應用是作數據挖掘,由於Spark充分利用內存進行緩存,利用 DAG消除沒必要要的步驟,因此比較合適作迭代式的運算。而有至關一部分機器學習算法是經過屢次迭代收斂的算法,因此適合用Spark來實現。咱們把一些常 用的算法並行化用Spark實現,能夠從R語言中方便地調用,下降了用戶進行數據挖掘的學習成本。
Spark配 有一個流數據處理模型,與Twitter的 Storm框架相比,Spark採用了一種有趣並且獨特的辦法。Storm基本上是像是放入獨立事務的管道,在其中事務會獲得分佈式的處理。相 反,Spark採用一個模型收集事務,而後在短期內(咱們假設是5秒)以批處理的方式處理事件。所收集的數據成爲他們本身的RDD,而後使用Spark 應用程序中經常使用的一組進行處理。做者聲稱這種模式是在緩慢節點和故障狀況下會更加穩健,並且5秒的時間間隔一般對於大多數應用已經足夠快了。這種方法也很 好地統一了流式處理與非流式處理部分。
隨着大數據相關技術和產業的逐漸成熟,單個組織內每每須要同時進行多種類型的大數據分析做業:傳統Hadoop MapReduce最爲擅長的批量計算、各類機器學習算法爲表明的迭代型計算、流式計算、社交網絡中經常使用的圖計算、SQL關係查詢、交互式即席查詢等。在 Spark出現前,要在一個組織內同時完成以上數種大數據分析任務,就不得不與多套獨立的系統打交道,一方面引入了不容小覷的運維複雜性,另外一方面還免不 了要在多個系統間頻繁進行代價高昂的數據轉儲。
Spark是發源於美國加州大學伯克利分校AMPLab的集羣計算平臺,它立足於內存計算,性能超過Hadoop百倍,從多迭代批量處理出發,兼收幷蓄數 據倉庫、流處理和圖計算等多種計算範式,是罕見的全能選手。Spark當下已成爲Apache基金會的頂級開源項目,擁有着龐大的社區支持(活躍開發者人 數已超過Hadoop MapReduce),技術也逐漸走向成熟。
一、spark因爲啓用了內存分佈數據集,充分利用了分佈式內存技術使其運算效率在hadoop至少;使用Scala語言編寫;另外隨着hadoop 2.0的發佈,Spark亦可直接運行在YARN上。
二、容錯特性:Spark 引進彈性分佈式數據集(RDD) 。RDD 是分佈在一組節點中的只讀對象集合。集合是彈性的,若是數據集一部分丟失,則能夠對它們進行重建。重建部分數據集的過程依賴於容錯機制,該機制能夠維護 "血統"(即容許基於數據衍生過程重建部分數據集的信息)。
三、很明顯採用內存計算的效率遠高於具備大量磁盤IO操做的Hadoop
四、迷你書,能在最短的時間內掌握儘量多的內容,看起來不至於太累。
咱們公司如今數據的處理主要是在hadoop上 可是也搭建了10臺的spark的集羣
hadoop 可使用比較廉價的PC機器 可是spark儘可能仍是使用內存配置比較高的 咱們這用的是64G內存的
網上資料說盡可能使用96G內存以上的 可是咱們這沒那麼好的機器作測試
相比較於hadoop 咱們使用的spark以爲有幾下幾個優勢
第一 spark基於內存計算,速度很明顯 。 10臺的SPARK的集羣的速度能夠和咱們這hadoop集羣的50臺的差很少 可是 hadoop 的集羣內存大小不一 有8G的 有16G的
第二 spark是基於Scala 相比較hadoop基於java spark更適合數據挖掘 由於scala就是技術機器挖掘的
第三 hadoop 編程模式處理數據很死 只有map 和reduce 而spark編程模式更靈活
第四 聽說 spark的算法比hadoop算法更厲害 這個咱們這也不知道怎麼看 只知道處理數據速度確實快了不少
一、Spark VS Hadoop有哪些異同點?
Spark是基於map reduce算法實現的分佈式計算,擁有Hadoop MapReduce所具備的優勢;但不一樣於MapReduce的是Job中間輸出和結果能夠保存在內存中,從而再也不須要讀寫HDFS,所以Spark能更 好地適用於數據挖掘與機器學習等須要迭代的map reduce的算法。
二、Spark在容錯性方面是否比其餘工具更有優越性?
現有的數據流系統對兩種應用的處理並不高效:一是迭代式算法,這在圖應用和機器學習領域很常見;二是交互式數據挖掘工具。這兩種狀況下,將數據保存在內存 中可以極大地提升性能。爲了有效地實現容錯,RDD提供了一種高度受限的共享內存,即RDD是隻讀的,而且只能經過其餘RDD上的批量操做來建立。儘管如 此,RDD仍然足以表示不少類型的計算,包括MapReduce和專用的迭代編程模型(如Pregel)等。Spark實現的RDD在迭代計算方面比 Hadoop快二十多倍,同時還能夠在5-7秒的延時內交互式地查詢1TB的數據集。
三、Spark對於數據處理能力和效率有哪些特點?
與Hadoop進行對比,結果以下:
(1)對於迭代式機器學習應用,Spark比Hadoop快20多倍。這種加速比是由於:數據存儲在內存中,同時Java對象緩存避免了反序列化操做(deserialization)。
(2)用戶編寫的應用程序執行結果很好。例如,Spark分析報表比Hadoop快40多倍。
(3)若是節點發生失效,經過重建那些丟失的RDD分區,Spark可以實現快速恢復。
(4)Spark可以在5-7s延時範圍內,交互式地查詢1TB大小的數據集。
一、Spark VS Hadoop有哪些異同點?
做爲通用的並行處理框架,Spark具備相似Hadoop的一些優勢,並且Spark採用了更好的內存管理,
在迭代計算上具備比Hadoop更高的效率,Spark還提供了更爲普遍的數據集操做類型,大大方便了
用戶的開發,checkpoint的應用使Spark具備很強容錯能力,衆多優越的性能和比Hadoop更普遍
的適用面讓Spark的進一步發展值得期待。
二、Spark在容錯性方面是否比其餘工具更有優越性?
在分佈式數據集計算時經過checkpoint來實現容錯,而checkpoint
有兩種方式,一個是checkpoint data,一個是logging the updates。
用戶能夠控制採用哪一種方式來實現容錯。
三、Spark對於數據處理能力和效率有哪些特點?
因爲Spark處理數據利用內存,所以它的速度是很是快的,
Spark Streaming:大大提升Spark流處理的能力和穩定性,
使用戶能夠用同一套代碼進行大數據流處理和批量處理。
html
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。java