Spark初識-Spark與Hadoop的比較

Spark,是分布式計算平臺,是一個用scala語言編寫的計算框架,基于內存的快速、通用、可擴展的大數據分析引擎

Hadoop,是分布式管理、存儲、計算的生態系統;包括HDFS(存儲)、MapReduce(計算)、Yarn(資源調度)

一、Spark VS Hadoop 概覽

Hadoop和Spark都是并行計算,兩者都是用MR模型進行計算

img

Hadoop一個作業稱為一個Job,Job里面分為Map Task和Reduce Task階段,每個Task都在自己的進程中運行,當Task結束時,進程也會隨之結束;

Spark用戶提交的任務稱為application,一個application對應一個SparkContext,app中存在多個job,每觸發一次action操作就會產生一個job。這些job可以并行或串行執行,每個job中有多個stage,stage是shuffle過程中DAGScheduler通過RDD之間的依賴關系劃分job而來的,每個stage里面有多個task,組成taskset,由TaskScheduler分發到各個executor中執行;executor的生命周期是和app一樣的,即使沒有job運行也是存在的,所以task可以快速啟動讀取內存進行計算。

ps:一個Application -> 多個job ->一個job多個stage -> 一個stage多個task

mapreduce 讀 – 處理 - 寫磁盤 – 讀 - 處理 - 寫
spark 讀 - 處理 - 處理 --(需要的時候)寫磁盤 - 寫

HadoopSpark
類型基礎平臺,包括計算、調度、存儲分布式計算工具
場景大規模數據集上的批處理迭代計算、交互式計算、流計算
價格對機器要求低、便宜對內存有要求、相對較貴
編程范式Map+Reduce,API較為底層、適應性差RDD組成DAG有向無環圖,API較為頂層,方便使用
數據存儲結構MapReduce計算結果存在HDFS磁盤上,延遲大RDD中間運算結果存在內存上,延遲小
運行方式Task以進程的方式維護,任務啟動慢Task以線程的方式維護,任務啟動快

二、Spark相對Hadoop的優越性

Spark 是在借鑒了 MapReduce 之上發展而來的,繼承了其分布式并行計算的優點并改進了 MapReduce 明顯的缺陷,(spark 與 hadoop 的差異)具體如下:

首先,Spark 把中間數據放到內存中,迭代運算效率高。MapReduce 中計算結果需要落地,保存到磁盤上,這樣勢必會影響整體速度,而 Spark 支持 DAG 圖的分布式并行計算的編程框架,減少了迭代過程中數據的落地,提高了處理效率。(延遲加載)

其次,Spark 容錯性高。Spark 引進了彈性分布式數據集 RDD (Resilient DistributedDataset) 的抽象,它是分布在一組節點中的只讀對象集合,這些集合是彈性的,如果數據集一部分丟失,則可以根據“血統”(即允許基于數據衍生過程)對它們進行重建。另外在RDD 計算時可以通過 CheckPoint 來實現容錯。

最后,Spark 更加通用。mapreduce 只提供了 Map 和 Reduce 兩種操作,Spark 提供的數據集操作類型有很多,大致分為:Transformations 和 Actions 兩大類。Transformations包括 Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort 等多種操作類型,同時還提供 Count, Actions 包括 Collect、Reduce、Lookup 和 Save 等操作

三、 各方面比較

  1. Spark對標于Hadoop中的計算模塊MR,但是速度和效率比MR要快得多;
  2. Spark沒有提供文件管理系統,所以,它必須和其他的分布式文件系統進行集成才能運作,它只是一個計算分析框架,專門用來對分布式存儲的數據進行計算處理,它本身并不能存儲數據;
  3. Spark可以使用Hadoop的HDFS或者其他云數據平臺進行數據存儲,但是一般使用HDFS;
  4. Spark可以使用基于HDFS的HBase數據庫,也可以使用HDFS的數據文件,還可以通過jdbc連接使用Mysql數據庫數據;Spark可以對數據庫數據進行修改刪除,而HDFS只能對數據進行追加和全表刪除;
  5. Spark數據處理速度秒殺Hadoop中MR;
  6. Spark處理數據的設計模式與MR不一樣,Hadoop是從HDFS讀取數據,通過MR將中間結果寫入HDFS;然后再重新從HDFS讀取數據進行MR,再刷寫到HDFS,這個過程涉及多次落盤操作,多次磁盤IO,效率并不高;而Spark的設計模式是讀取集群中的數據后,在內存中存儲和運算,直到全部運算完畢后,再存儲到集群中;
  7. Spark是由于Hadoop中MR效率低下而產生的高效率快速計算引擎,批處理速度比MR快近10倍,內存中的數據分析速度比Hadoop快近100倍(源自官網描述);
  8. Spark中RDD一般存放在內存中,如果內存不夠存放數據,會同時使用磁盤存儲數據;通過RDD之間的血緣連接、數據存入內存中切斷血緣關系等機制,可以實現災難恢復,當數據丟失時可以恢復數據;這一點與Hadoop類似,Hadoop基于磁盤讀寫,天生數據具備可恢復性;
  9. Spark引進了內存集群計算的概念,可在內存集群計算中將數據集緩存在內存中,以縮短訪問延遲,對7的補充;
  10. Spark中通過DAG圖可以實現良好的容錯。

四、三大分布式計算系統

Hadoop適合處理離線的靜態的大數據;

Spark適合處理離線的流式的大數據;

Storm/Flink適合處理在線的實時的大數據。

*、本文參考

Spark和Hadoop的區別和比較
Spark與Hadoop相比的優缺點
[Spark 和 Hadoop MapReduce 對比](

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535559.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535559.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535559.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spark初識-Spark基本架構概覽使用

當需要處理的數據量超過了單機尺度(比如我們的計算機有4GB的內存,而我們需要處理100GB以上的數據)這時我們可以選擇spark集群進行計算,有時我們可能需要處理的數據量并不大,但是計算很復雜,需要大量的時間,這時我們也可…

Spark初識-彈性分布式數據集RDD

Spark 的核心是建立在統一的抽象彈性分布式數據集(Resiliennt Distributed Datasets,RDD)之上的,這使得 Spark 的各個組件可以無縫地進行集成,能夠在同一個應用程序中完成大數據處理。 一、RDD概念 RDD 是 Spark 提供…

nmon

1).采集數據: #nmon -s10 -c60 -f -m /home/ 參數解釋: -s10 每 10 秒采集一次數據。 -c60 采集 60 次,即為采集十分鐘的數據。 -f 生成的數據文件名中包含文件創建的時間。 -m 生成的數據文件的存放目錄。 這樣就會生成一個 nmon 文件&…

Spark入門- Spark運行Local本地模式

一、Spark單機模式部署 Spark版本 : spark-2.4.7-bin-hadoop2.7 1、安裝配置JDK環境 2、下載Spark 官網下載http://spark.apache.org/ 然后上傳到LInux服務器上 3、解壓 tar -zxvf spark-2.4.7-bin-hadoop2.7.tgz解壓目錄說明 bin 可執行腳本 conf …

Spark入門-了解Spark核心概念

在本文中我們將從Spark集群角度和程序應用的角度來對相關概念進行了解 一. 站在集群角度 1.1 Master Spark 特有資源調度系統的 Leader。掌管著整個集群的資源信息,類似于 Yarn 框架中的 ResourceManager,主要功能: 監聽 Worker&#xff0…

Spark運行standalone集群模式

spark的集群主要有三種運行模式standalone、yarn、mesos,其中常被使用的是standalone和yarn,本文了解一下什么是standalone運行模式,并嘗試搭建一個standalone集群 一、standalone模式 standalone模式,是spark自己實現的&#xf…

docker原理

a.更快速的支付和部署:開發者可以使用一個標準的鏡像來構建一套開發容器 ,開發完成之后,運維人員可以直接使用這個容器來部署代碼。 b.更高效的虛擬化: Docker容器的運行不需要額外的hypervisor支持,它是內核級的虛擬化,因此 可以實現更高的性能和效。 I 0c更輕松的遷移和擴展…

創造型模式——工廠模式

工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,并且是通過使用一個共同的…

創造型模式——抽象工廠模式

抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創建其他工廠。該超級工廠又稱為其他工廠的工廠。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 在抽象工廠模式中,接口是負責創建一個相關對象的…

Iptables防火墻原理

一、IPTABLES概念 iptables是隔離主機以及網絡的工具,通過自己設定的規則以及處理動作對數據報文進行檢測以及處理。從設備上分類,防火墻分為軟件防火墻、硬件防火墻、芯片級防火墻。從技術上分類,防火墻分為數據包過濾型防火墻、應用代理型防火墻。這是因為四層模型的每一…

創造型模式——單例模式

單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個對象被創建…

trap命令

trap命令用于指定在接收到信號后將要采取的行動,信號的信息前面已經提到。 trap 命令的一種常見用途是在腳本程序被中斷時完成清理工作。 歷史上,shell 總是用數字來代表信號,而新的腳本程字應該使用信號的名字,它們保存在用#include命令包含進來的signal.h頭文件中,在使用…

創造型模式——建造者模式

建造者模式(Builder Pattern)使用多個簡單的對象一步一步構建成一個復雜的對象。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 一個 Builder 類會一步一步構造最終的對象。該 Builder 類是獨立于其他對象的。 一、介紹…

shell知識點

靜態語言是編譯型語言,強類型的語言 如C,C++,java(面向對象),C#, 動態語言是解釋型語言,弱類型的語言,邊解釋邊執行 ,需要解釋器,解釋器是用靜態語言開發的如shell(面向過程), perl,asp,asp.net,php,python(面向對象) 腳本執行 1.…

創造性模式——原型模式

原型模式(Prototype Pattern)是用于創建重復的對象,同時又能保證性能。這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 這種模式是實現了一個原型接口,該接口用于創建當前對象的克隆。當直接創建…

Consider defining a bean of type ‘java.lang.String‘ in your configuration

Consider defining a bean of type ‘java.lang.String’ in your configuration 總結了網上的幾種解決方案: 1、多余的autowired 2、待實例化的類里必須有默認的構造方法(即沒有參數的那種) Consider defining a bean of type ‘XXXX’ …

SpringBoot-探索回顧Spring框架本質

自始至終,SpringBoot框架都是為了能夠幫助使用Spring框架的開發 快速高效地構建 一個個基于Spring框架以及Spring生態體系的應用解決方案。要深刻理解SpringBoot框架,首先我們需要深刻理解Spring框架。 一、Spring 中的 IoC、DI 和 DL 部分Java開發者對…

redis精解

概念Redis是完全開源免費的,遵守BSD協議,是-一個高性能的key-value數據庫。它支持存儲的value類型很多,包括string(字符串)、list(鏈表)、set(集合)、(Zset(有序集合),這些數據類型都支持。 push/pop、add/remove及 取交集和并集及更豐富的操作,Redis支持各種不同方式的排序)…

@SpringBootApplication揭秘

一、SpringBoot初體驗 一個典型的SpringBoot應用長什么樣子呢?如果我們使用http://start.spring.io/創建一個最簡單的依賴Web模塊的SpringBoot應用,一般情況下, 我們會得到一個SpringBoot應用的啟動類,如下面代碼所示&#xff1a…

SpringApplication:SpringBoot程序啟動的一站式解決方案

我們說SpringBoot是Spring框架對“約定優先于配置(Convention Over Configuration)"理念的最佳實踐的產物,一個典型的SpringBoot應用本質上其 實就是一個基于Spring框架的應用 如果非說SpringBoot微框架提供了點兒自己特有的東西,在核心類層面&…