Spark 編程模型(上)

      網(wǎng)友投稿 611 2022-05-30

      從Hadoop MR到Spark

      回顧hadoop—mapreduce計(jì)算過(guò)程

      MR VS Spark

      Spark編程模型

      核心概念

      注意:對(duì)比mr里的概念來(lái)學(xué)習(xí)

      Spark Application的組成

      Spark應(yīng)用程序的組成

      ● Driver

      ● Executor

      注意:對(duì)照helloworld來(lái)思考

      Spark Application基本概念

      Spark Application編程模型

      Spark 應(yīng)用程序編程模型

      Spark 編程模型(上)

      – Driver Program ( SparkContext )

      – Executor ( RDD 操作)

      ● 輸入Base-> RDD

      ● Transformation RDD->RDD

      ● Action RDD->driver or Base

      ● 緩存 Persist or cache()

      – 共享變量

      ● broadcast variables(廣播變量)

      ● accumulators(累加器)

      回顧Spark Hello World

      初識(shí)RDD

      什么是RDD

      定義:Resilient distributed datasets (RDD), an efficient, general-purpose and fault-tolerant abstraction for sharing data in cluster applications.

      RDD 是只讀的。

      RDD 是分區(qū)記錄的集合。

      RDD 是容錯(cuò)的。--- lineage

      RDD 是高效的。

      RDD 不需要物化。---物化:進(jìn)行實(shí)際的變換并最終寫(xiě)入穩(wěn)定的存儲(chǔ)器上

      RDD 可以緩存的。---課指定緩存級(jí)別

      RDD是spark的核心,也是整個(gè)spark的架構(gòu)基礎(chǔ),RDD是彈性分布式集合(Resilient Distributed Datasets)的簡(jiǎn)稱,是分布式只讀且已分區(qū)集合對(duì)象。這些集合是彈性的,如果數(shù)據(jù)集一部分丟失,則可以對(duì)它們進(jìn)行重建。

      RDD接口

      RDD的本質(zhì)特征

      RDD--partitions

      Spark中將1~100的數(shù)組轉(zhuǎn)換為rdd

      通過(guò)第15行的size獲得rdd的partition的個(gè)數(shù),此處創(chuàng)建rdd顯式指定定分區(qū)個(gè)數(shù)2,默認(rèn)數(shù)值是這個(gè)程序所分配到的資源的cpu核的個(gè)數(shù)

      RDD-preferredLocations

      返回此RDD的一個(gè)partition的數(shù)據(jù)塊信息,如果一個(gè)數(shù)據(jù)塊(block)有多個(gè)備份在返回所有備份的location地址信息

      主機(jī)ip或域名

      作用:spark在進(jìn)行任務(wù)調(diào)度室盡可能根據(jù)block的地址做到本地計(jì)算

      RDD-dependencies

      RDD之間的依賴關(guān)系分為兩類:

      ● 窄依賴

      每個(gè)父RDD的分區(qū)都至多被一個(gè)子RDD的分區(qū)使用,即為OneToOneDependecies;

      ● 寬依賴

      多個(gè)子RDD的分區(qū)依賴一個(gè)父RDD的分區(qū),即為ShuffleDependency 。例如,map操作是一種窄依賴,而join操作是一種寬依賴(除非父RDD已經(jīng)基于Hash策略被劃分過(guò)了,co-partitioned)

      窄依賴相比寬依賴更高效資源消耗更少

      允許在單個(gè)集群節(jié)點(diǎn)上流水線式執(zhí)行,這個(gè)節(jié)點(diǎn)可以計(jì)算所有父級(jí)分區(qū)。例如,可以逐個(gè)元素地依次執(zhí)行filter操作和map操作。

      相反,寬依賴需要所有的父RDD數(shù)據(jù)可用并且數(shù)據(jù)已經(jīng)通過(guò)類MapReduce的操作shuffle完成。

      在窄依賴中,節(jié)點(diǎn)失敗后的恢復(fù)更加高效。

      因?yàn)橹挥衼G失的父級(jí)分區(qū)需要重新計(jì)算,并且這些丟失的父級(jí)分區(qū)可以并行地在不同節(jié)點(diǎn)上重新計(jì)算。

      與此相反,在寬依賴的繼承關(guān)系中,單個(gè)失敗的節(jié)點(diǎn)可能導(dǎo)致一個(gè)RDD的所有先祖RDD中的一些分區(qū)丟失,導(dǎo)致計(jì)算的重新執(zhí)行。

      RDD-compute

      分區(qū)計(jì)算

      Spark對(duì)RDD的計(jì)算是以partition為最小單位的,并且都是對(duì)迭代器進(jìn)行復(fù)合,不需要保存每次的計(jì)算結(jié)果

      RDD- partitioner

      分區(qū)函數(shù):目前spark中提供兩種分區(qū)函數(shù):

      HashPatitioner(哈希分區(qū))

      RangePatitioner(區(qū)域分區(qū))

      且partitioner只存在于(K,V)類型的RDD中,rdd本身決定了分區(qū)的數(shù)量。

      RDD- lineage

      val lines = sc.textFile("hdfs://...")

      // transformed RDDs

      val errors = lines.filter(_.startsWith("ERROR"))

      val messages = errors.map(_.split("\t")).map(r => r(1))

      messages.cache()

      // action 1

      messages.filter(_.contains("mysql")).count()

      // action 2

      messages.filter(_.contains("php")).count()

      RDD經(jīng)過(guò)trans或action后產(chǎn)生一個(gè)新的RDD,RDD之間的通過(guò)lineage來(lái)表達(dá)依賴關(guān)系,lineage是rdd容錯(cuò)的重要機(jī)制,rdd轉(zhuǎn)換后的分區(qū)可能在轉(zhuǎn)換前分區(qū)的節(jié)點(diǎn)內(nèi)存中

      典型RDD的特征

      不同角度看RDD

      Scheduler Optimizations

      分布式 spark 緩存 大數(shù)據(jù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:華為大咖解讀:軟件開(kāi)發(fā)云如何踐行DevOps?
      下一篇:友達(dá)光電攜手云合同電子合同,45000+員工將排隊(duì)告別紙質(zhì)勞動(dòng)合同
      相關(guān)文章
      亚洲AV无码久久精品成人| 亚洲视频在线精品| 国产亚洲综合视频| 一区二区亚洲精品精华液| 亚洲熟妇色自偷自拍另类| 色婷婷亚洲十月十月色天| 日韩亚洲一区二区三区| 日韩亚洲一区二区三区| 亚洲不卡中文字幕无码| 亚洲av无码国产精品夜色午夜| 亚洲人成色777777在线观看| 夜夜春亚洲嫩草影院| 国产亚洲精品激情都市| 亚洲成a人片在线观看国产| 亚洲国产日韩在线观频| 亚洲精品国产电影| 亚洲日韩VA无码中文字幕 | 亚洲精品自产拍在线观看动漫| 亚洲成a人片在线观看日本| 亚洲精品成人网站在线观看 | 亚洲白色白色在线播放| 亚洲精品成人av在线| 久久亚洲私人国产精品vA| 久久精品国产亚洲AV嫖农村妇女| 亚洲黄色免费观看| 亚洲免费电影网站| 亚洲午夜无码久久| 朝桐光亚洲专区在线中文字幕| 午夜亚洲国产成人不卡在线| 亚洲一级特黄大片在线观看 | 亚洲 欧洲 视频 伦小说| 亚洲区日韩精品中文字幕| 国产精品久久久久久亚洲影视| 亚洲国产精品一区二区第一页免 | 亚洲第一视频在线观看免费| 国产亚洲精品激情都市| 亚洲Aⅴ无码专区在线观看q| 亚洲最新黄色网址| 国产午夜亚洲精品| 亚洲国产精品一区二区九九| 亚洲中文久久精品无码|