成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Spark的性能特點有哪些

本篇內(nèi)容主要講解“Spark的性能特點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Spark的性能特點有哪些”吧!

專注于為中小企業(yè)提供網(wǎng)站設計、網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)陸港免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

Spark:

Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設計的快速通用的計算引擎。

Spark是UC Berkeley AMP lab (加州大學伯克利分校的AMP實驗室)所開源的類Hadoop  MapReduce的通用并行框架,Spark擁有Hadoop  MapReduce所具有的優(yōu)點;但不同于MapReduce的是Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機器學習等需要迭代的MapReduce的算法。

Spark 是一種與 Hadoop 相似的開源集群計算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark  在某些工作負載方面表現(xiàn)得更加優(yōu)越,換句話說,Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負載。

Spark 是在 Scala 語言中實現(xiàn)的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的  Scala 可以像操作本地集合對象一樣輕松地操作分布式數(shù)據(jù)集。

盡管創(chuàng)建 Spark 是為了支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實際上它是對 Hadoop 的補充,可以在 Hadoop 文件系統(tǒng)中并行運行。通過名為  Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People  Lab) 開發(fā),可用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應用程序。

Spark的性能特點:

1.更快的速度:內(nèi)存計算下,Spark 比 Hadoop 快100倍。

  • 內(nèi)存計算引擎,提供Cache機制來支持需要反復迭代計算或者多次數(shù)據(jù)共享,減少數(shù)據(jù)讀取的I/O開銷

  • DAG引擎,減少多次計算之間中間結(jié)果寫到HDFS的開銷;

  • 使用多線程池模型來減少task啟動開銷,shuffle過程中避免不必要的sort操作已經(jīng)減少磁盤I/O操作;

2.易用性:

  • Spark 提供了80多個高級運算符。

  • 提供了豐富的API,支持JAVA,Scala,Python和R四種語言;

  • 代碼量比MapReduce少2~5倍;

3.通用性:Spark 提供了大量的庫,包括SQL、DataFrames、MLlib、GraphX、Spark Streaming。  開發(fā)者可以在同一個應用程序中無縫組合使用這些庫。

4.支持多種資源管理器:Spark 支持 Hadoop YARN,Apache Mesos,及其自帶的獨立集群管理器

Spark基本原理:

Spark  Streaming:構(gòu)建在Spark上處理Stream數(shù)據(jù)的框架,基本的原理是將Stream數(shù)據(jù)分成小的時間片斷(幾秒),以類似batch批量處理的方式來處理這小部分數(shù)據(jù)。Spark  Streaming構(gòu)建在Spark上,一方面是因為Spark的低延遲執(zhí)行引擎(100ms+),雖然比不上專門的流式數(shù)據(jù)處理軟件,也可以用于實時計算,另一方面相比基于Record的其它處理框架(如Storm),一部分窄依賴的RDD數(shù)據(jù)集可以從源數(shù)據(jù)重新計算達到容錯處理目的。此外小批量處理的方式使得它可以同時兼容批量和實時數(shù)據(jù)處理的邏輯和算法。方便了一些需要歷史數(shù)據(jù)和實時數(shù)據(jù)聯(lián)合分析的特定應用場合。

Spark背景:

1.MapReduce局限性:

Spark的性能特點有哪些

1.僅支持Map和Reduce兩種操作;

2.處理效率低效;不適合迭代計算(如機器學習、圖計算等),交互式處理(數(shù)據(jù)挖掘)和流失處理(日志分析)

3.Map中間結(jié)果需要寫磁盤,Reduce寫HDFS,多個MR之間通過HDFS交換數(shù)據(jù);

4.任務調(diào)度和啟動開銷大;

5.無法充分利用內(nèi)存;(與MR產(chǎn)生時代有關,MR出現(xiàn)時內(nèi)存價格比較高,采用磁盤存儲代價小)

6.Map端和Reduce端均需要排序;

7.MapReduce編程不夠靈活。(比較Scala函數(shù)式編程而言)

8.框架多樣化[采用一種框架技術(Spark)同時實現(xiàn)批處理、流式計算、交互式計算]:

  • 批處理:MapReduce、Hive、Pig;

  • 流式計算:Storm

  • 交互式計算:Impala

Spark核心概念:

  • RDD:Resilient Distributed Datasets,彈性分布式數(shù)據(jù)集

Spark的性能特點有哪些

  • 分布在集群中的只讀對象集合(由多個Partition 構(gòu)成);

  • 可以存儲在磁盤或內(nèi)存中(多種存儲級別);

  • 通過并行“轉(zhuǎn)換”操作構(gòu)造;

  • 失效后自動重構(gòu);

  • RDD基本操作(operator)

Spark的性能特點有哪些

Transformation具體內(nèi)容

  • map(func) :返回一個新的分布式數(shù)據(jù)集,由每個原元素經(jīng)過func函數(shù)轉(zhuǎn)換后組成

  • filter(func) : 返回一個新的數(shù)據(jù)集,由經(jīng)過func函數(shù)后返回值為true的原元素組成

*flatMap(func) :  類似于map,但是每一個輸入元素,會被映射為0到多個輸出元素(因此,func函數(shù)的返回值是一個Seq,而不是單一元素)

  • flatMap(func) :  類似于map,但是每一個輸入元素,會被映射為0到多個輸出元素(因此,func函數(shù)的返回值是一個Seq,而不是單一元素)

  • sample(withReplacement, frac, seed) :

根據(jù)給定的隨機種子seed,隨機抽樣出數(shù)量為frac的數(shù)據(jù)。

  • union(otherDataset) : 返回一個新的數(shù)據(jù)集,由原數(shù)據(jù)集和參數(shù)聯(lián)合而成

  • groupByKey([numTasks]) :

在一個由(K,V)對組成的數(shù)據(jù)集上調(diào)用,返回一個(K,Seq[V])對的數(shù)據(jù)集。注意:默認情況下,使用8個并行任務進行分組,你可以傳入numTask可選參數(shù),根據(jù)數(shù)據(jù)量設置不同數(shù)目的Task

  • reduceByKey(func, [numTasks]) :  在一個(K,V)對的數(shù)據(jù)集上使用,返回一個(K,V)對的數(shù)據(jù)集,key相同的值,都被使用指定的reduce函數(shù)聚合到一起。和groupbykey類似,任務的個數(shù)是可以通過第二個可選參數(shù)來配置的。

  • join(otherDataset, [numTasks]) :

在類型為(K,V)和(K,W)類型的數(shù)據(jù)集上調(diào)用,返回一個(K,(V,W))對,每個key中的所有元素都在一起的數(shù)據(jù)集

  • groupWith(otherDataset, [numTasks]) :  在類型為(K,V)和(K,W)類型的數(shù)據(jù)集上調(diào)用,返回一個數(shù)據(jù)集,組成元素為(K, Seq[V], Seq[W])  Tuples。這個操作在其它框架,稱為CoGroup

cartesian(otherDataset) : 笛卡爾積。但在數(shù)據(jù)集T和U上調(diào)用時,返回一個(T,U)對的數(shù)據(jù)集,所有元素交互進行笛卡爾積。

  • flatMap(func) :

類似于map,但是每一個輸入元素,會被映射為0到多個輸出元素(因此,func函數(shù)的返回值是一個Seq,而不是單一元素)

Actions具體內(nèi)容

  • reduce(func) :  通過函數(shù)func聚集數(shù)據(jù)集中的所有元素。Func函數(shù)接受2個參數(shù),返回一個值。這個函數(shù)必須是關聯(lián)性的,確??梢员徽_的并發(fā)執(zhí)行

  • collect() :  在Driver的程序中,以數(shù)組的形式,返回數(shù)據(jù)集的所有元素。這通常會在使用filter或者其它操作后,返回一個足夠小的數(shù)據(jù)子集再使用,直接將整個RDD集Collect返回,很可能會讓Driver程序OOM

  • count() : 返回數(shù)據(jù)集的元素個數(shù)

  • take(n) :  返回一個數(shù)組,由數(shù)據(jù)集的前n個元素組成。注意,這個操作目前并非在多個節(jié)點上,并行執(zhí)行,而是Driver程序所在機器,單機計算所有的元素(Gateway的內(nèi)存壓力會增大,需要謹慎使用)

  • first() : 返回數(shù)據(jù)集的***個元素(類似于take(1))

saveAsTextFile(path) :  將數(shù)據(jù)集的元素,以textfile的形式,保存到本地文件系統(tǒng),hdfs或者任何其它hadoop支持的文件系統(tǒng)。Spark將會調(diào)用每個元素的toString方法,并將它轉(zhuǎn)換為文件中的一行文本

  • saveAsSequenceFile(path) :  將數(shù)據(jù)集的元素,以sequencefile的格式,保存到指定的目錄下,本地系統(tǒng),hdfs或者任何其它hadoop支持的文件系統(tǒng)。RDD的元素必須由key-value對組成,并都實現(xiàn)了Hadoop的Writable接口,或隱式可以轉(zhuǎn)換為Writable(Spark包括了基本類型的轉(zhuǎn)換,例如Int,Double,String等等)

  • foreach(func) : 在數(shù)據(jù)集的每一個元素上,運行函數(shù)func。這通常用于更新一個累加器變量,或者和外部存儲系統(tǒng)做交互

算子分類

大致可以分為三大類算子:

  • Value數(shù)據(jù)類型的Transformation算子,這種變換并不觸發(fā)提交作業(yè),針對處理的數(shù)據(jù)項是Value型的數(shù)據(jù)。

  • Key-Value數(shù)據(jù)類型的Transfromation算子,這種變換并不觸發(fā)提交作業(yè),針對處理的數(shù)據(jù)項是Key-Value型的數(shù)據(jù)對。

  • Action算子,這類算子會觸發(fā)SparkContext提交Job作業(yè)。

Spark的性能特點有哪些

  • Spark RDD cache/persist

Spark RDD cache

1.允許將RDD緩存到內(nèi)存中或磁盤上,以便于重用

2.提供了多種緩存級別,以便于用戶根據(jù)實際需求進行調(diào)整

Spark的性能特點有哪些

3.cache使用

Spark的性能特點有哪些

  • 之前用MapReduce實現(xiàn)過WordCount,現(xiàn)在我們用Scala實現(xiàn)下wordCount.是不是很簡潔呢?!

import org.apache.spark.{SparkConf, SparkContext}  object SparkWordCount{  def main(args: Array[String]) {  if (args.length == 0) {  System.err.println("Usage: SparkWordCount <inputfile> <outputfile>")  System.exit(1)  }   val conf = new SparkConf().setAppName("SparkWordCount")  val sc = new SparkContext(conf)   val file=sc.textFile("file:///hadoopLearning/spark-1.5.1-bin-hadoop2.4/README.md")  val counts=file.flatMap(line=>line.split(" "))  .map(word=>(word,1))  .reduceByKey(_+_)  counts.saveAsTextFile("file:///hadoopLearning/spark-1.5.1-bin-hadoop2.4/countReslut.txt")   } }
  • 關于RDD的Transformation與Action的特點我們介紹下;

1.接口定義方式不同:

Transformation: RDD[X]&ndash;>RDD[y]

Action:RDD[x]&ndash;>Z (Z不是一個RDD,可能是一個基本類型,數(shù)組等)

2.惰性執(zhí)行:

Transformation:只會記錄RDD轉(zhuǎn)化關系,并不會觸發(fā)計算

Action:是觸發(fā)程序執(zhí)行(分布式)的算子。

Spark的性能特點有哪些

程序的執(zhí)行流程:

Spark的性能特點有哪些

Spark運行模式:

Local(本地模式):

1.單機運行,通常用于測試;

  • local:只啟動一個executor

  • local[k]:啟動k個executor

  • local[*]:啟動跟cpu數(shù)目相同的executor

2.standalone(獨立模式)

獨立運行在一個集群中

Spark的性能特點有哪些

3.Yarn/mesos

1.運行在資源管理系統(tǒng)上,比如Yarn或mesos

2.Spark On Yarn存在兩種模式

yarn-client

Spark的性能特點有哪些

yanr-cluster

Spark的性能特點有哪些

兩種方式的區(qū)別:

Spark的性能特點有哪些

Spark在企業(yè)中的應用場景

  • 基于日志數(shù)據(jù)的快速查詢系統(tǒng)業(yè)務;

構(gòu)建于Spark之上的SparkSQL ,利用其快速以及內(nèi)存表等優(yōu)勢,承擔了日志數(shù)據(jù)的即席查詢工作。

  • 典型算法的Spark實現(xiàn)

預測用戶的廣告點擊概率;

計算兩個好友間的共同好友數(shù);

用于ETL的SparkSQL和DAG任務。

到此,相信大家對“Spark的性能特點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

分享題目:Spark的性能特點有哪些
文章起源:http://jinyejixie.com/article22/ghogjc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、用戶體驗ChatGPT、網(wǎng)站排名外貿(mào)建站、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設
玉环县| 宁津县| 邵东县| 井陉县| 讷河市| 托克逊县| 鲜城| 晋江市| 亳州市| 蓬莱市| 富阳市| 襄垣县| 花莲市| 兴安盟| 紫云| 保靖县| 沂源县| 潜江市| 永安市| 墨江| 吴川市| 尚志市| 天等县| 顺平县| 绥阳县| 安乡县| 巴彦淖尔市| 兴海县| 万载县| 曲周县| 烟台市| 甘肃省| 汽车| 沈丘县| 五华县| 龙川县| 中方县| 新津县| 新兴县| 尉氏县| 沽源县|