Spark executor中task的數(shù)量與最大并發(fā)數(shù)

關(guān)于executor和task的概念可以參考官方文檔
本文使用的源碼是spark 2.0.0版本

Task的數(shù)量

根據(jù)類DAGScheduler中的submitMissingTasks方法可以知道损俭,在stage中會(huì)為每個(gè)需要計(jì)算的partition生成一個(gè)task医增,換句話說也就是每個(gè)task處理一個(gè)partition把沼。

//From submitMissingTasks
......   
val tasks: Seq[Task[_]] = try {
      stage match {
        case stage: ShuffleMapStage =>
          partitionsToCompute.map { id =>
            val locs = taskIdToLocations(id)
            val part = stage.rdd.partitions(id)
            new ShuffleMapTask(stage.id, stage.latestInfo.attemptId,
              taskBinary, part, locs, stage.latestInfo.taskMetrics, properties)
          }

        case stage: ResultStage =>
          val job = stage.activeJob.get
          partitionsToCompute.map { id =>
            val p: Int = stage.partitions(id)
            val part = stage.rdd.partitions(p)
            val locs = taskIdToLocations(id)
            new ResultTask(stage.id, stage.latestInfo.attemptId,
              taskBinary, part, locs, id, properties, stage.latestInfo.taskMetrics)
          }
      }
    }
......

Task的最大并發(fā)數(shù)

當(dāng)task被提交到executor之后,會(huì)根據(jù)executor可用的cpu核數(shù),決定一個(gè)executor中最多同時(shí)運(yùn)行多少個(gè)task箫津。在類TaskSchedulerImplresourceOfferSingleTaskSet方法中婿崭,CPUS_PER_TASK的定義為val CPUS_PER_TASK = conf.getInt("spark.task.cpus", 1),也就是說默認(rèn)情況下一個(gè)task對(duì)應(yīng)cpu的一個(gè)核躺枕。如果一個(gè)executor可用cpu核數(shù)為8服猪,那么一個(gè)executor中最多同是并發(fā)執(zhí)行8個(gè)task供填;假如設(shè)置spark.task.cpus為2,那么同時(shí)就只能運(yùn)行4個(gè)task罢猪。

//From resourceOfferSingleTaskSet
......
      if (availableCpus(i) >= CPUS_PER_TASK) {
        try {
          for (task <- taskSet.resourceOffer(execId, host, maxLocality)) {
            tasks(i) += task
            val tid = task.taskId
            taskIdToTaskSetManager(tid) = taskSet
            taskIdToExecutorId(tid) = execId
            executorIdToTaskCount(execId) += 1
            executorsByHost(host) += execId
            availableCpus(i) -= CPUS_PER_TASK
            assert(availableCpus(i) >= 0)
            launchedTask = true
          }
        } catch {
          case e: TaskNotSerializableException =>
            logError(s"Resource offer failed, task set ${taskSet.name} was not serializable")
            // Do not offer resources for this task, but don't throw an error to allow other
            // task sets to be submitted.
            return launchedTask
        }
      }
......

Yarn的task與Spark中task的區(qū)別

在Yarn的NodeManager節(jié)點(diǎn)上啟動(dòng)一個(gè)map task或者reduce task近她,在物理上啟動(dòng)的是一個(gè)jvm進(jìn)程;而Spark的task是Executor進(jìn)程中的一個(gè)線程膳帕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粘捎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子危彩,更是在濱河造成了極大的恐慌攒磨,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汤徽,死亡現(xiàn)場(chǎng)離奇詭異娩缰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)泻骤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門漆羔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狱掂,你說我怎么就攤上這事演痒。” “怎么了趋惨?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵鸟顺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我器虾,道長(zhǎng)讯嫂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任兆沙,我火速辦了婚禮欧芽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘葛圃。我一直安慰自己千扔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布库正。 她就那樣靜靜地躺著曲楚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪褥符。 梳的紋絲不亂的頭發(fā)上龙誊,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音喷楣,去河邊找鬼趟大。 笑死鹤树,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的护昧。 我是一名探鬼主播魂迄,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼惋耙!你這毒婦竟也來了捣炬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤绽榛,失蹤者是張志新(化名)和其女友劉穎湿酸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灭美,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡推溃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了届腐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铁坎。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖犁苏,靈堂內(nèi)的尸體忽然破棺而出硬萍,到底是詐尸還是另有隱情,我是刑警寧澤围详,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布朴乖,位于F島的核電站,受9級(jí)特大地震影響助赞,放射性物質(zhì)發(fā)生泄漏买羞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一雹食、第九天 我趴在偏房一處隱蔽的房頂上張望畜普。 院中可真熱鬧,春花似錦群叶、人聲如沸漠嵌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至化撕,卻和暖如春几晤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背植阴。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工蟹瘾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留圾浅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓憾朴,卻偏偏與公主長(zhǎng)得像狸捕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子众雷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊閱讀 18,321評(píng)論 0 85
  • 本文1灸拍、2、3節(jié)介紹了Spark 內(nèi)存相關(guān)之識(shí)砾省,第4節(jié)描述了常見錯(cuò)誤類型及產(chǎn)生原因并給出了解決方案鸡岗。 1 堆內(nèi)和堆...
    荒湖閱讀 23,008評(píng)論 4 33
  • 1 前言 在大數(shù)據(jù)計(jì)算領(lǐng)域,Spark已經(jīng)成為了越來越流行编兄、越來越受歡迎的計(jì)算平臺(tái)之一轩性。Spark的功能涵蓋了大數(shù)...
    wisfern閱讀 2,438評(píng)論 3 39
  • Spark的性能調(diào)優(yōu)實(shí)際上是由很多部分組成的,不是調(diào)節(jié)幾個(gè)參數(shù)就可以立竿見影提升作業(yè)性能的狠鸳。我們需要根據(jù)不同的業(yè)務(wù)...
    東皇Amrzs閱讀 1,620評(píng)論 0 17
  • 一個(gè)人揣苏,伴隨著夏天;一張床件舵,躺滿了童年卸察;一面墻,貼著一個(gè)童年的夏天芦圾。
    林之源閱讀 303評(píng)論 0 1