自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Spark Streaming 妙用之實(shí)現(xiàn)工作流調(diào)度器

大數(shù)據(jù) Spark
開(kāi)發(fā)一個(gè)完善的工作流調(diào)度器應(yīng)該并不是一件簡(jiǎn)單的事情。但是通過(guò)Spark Streaming,我們也許能簡(jiǎn)化這些工作。

之前有說(shuō)過(guò)要設(shè)計(jì)一個(gè)工作流調(diào)度器。開(kāi)發(fā)一個(gè)完善的工作流調(diào)度器應(yīng)該并不是一件簡(jiǎn)單的事情。但是通過(guò)Spark Streaming(基于Transfomer架構(gòu)的理念),我們可能能簡(jiǎn)化這些工作。我在這塊并沒(méi)有什么經(jīng)驗(yàn),這只是一個(gè)存在于腦海中的東西。

下面是Azkaban的架構(gòu)圖:

 

也就是說(shuō)要搭建一個(gè)穩(wěn)定可靠的Azkaban的工作流調(diào)度器,你可能需要

  • 兩臺(tái) 互為主備MySQL
  • 兩臺(tái)Executor Server
  • 一臺(tái)Web Server

你需要做架構(gòu)設(shè)計(jì),考慮WebServer 和 Executor Server的通訊問(wèn)題

擴(kuò)展性問(wèn)題。Executor 能夠動(dòng)態(tài)調(diào)整?

穩(wěn)定性問(wèn)題。畢竟24小時(shí)運(yùn)行的

然而,我們其實(shí)是不需要關(guān)注這么多東西的。我們真正關(guān)注的是:

  • Web UI
  • 工作流的生成,解析,運(yùn)行和存儲(chǔ)

其他的都是基礎(chǔ)設(shè)施。按照Transfomer架構(gòu)的設(shè)計(jì)理念,我們應(yīng)該可以找到一個(gè)Estimator ,作為我們的基礎(chǔ)設(shè)施,我們只要關(guān)注上面兩點(diǎn)即可,不需要為部署,高可用,穩(wěn)定等發(fā)愁。同時(shí)我們也希望譬如WebUI等工作不是從頭開(kāi)始,而是按部就班添加新功即可。所以有了Estimator,我們只要做三點(diǎn):

  • 實(shí)現(xiàn)業(yè)務(wù)邏輯,也就是工作流的生成,解析,運(yùn)行和存儲(chǔ)等操作。
  • 實(shí)現(xiàn)管理頁(yè)面邏輯
  • 指定需要的資源cpu/內(nèi)存,就能Run起來(lái)這個(gè)Transformer

我搜羅了一圈,發(fā)現(xiàn)Spark Streaming 是能夠滿(mǎn)足該需求的一個(gè)Estimator。

這得益于,Spark Streaming 從某個(gè)角度而言就是個(gè)定時(shí)任務(wù)調(diào)度系統(tǒng),也就是我們說(shuō)的微批處理。對(duì)于工作流調(diào)度器而言,無(wú)非就是每個(gè)周期(duration)在Driver端啟動(dòng)線(xiàn)程掃描MySQL,實(shí)現(xiàn)任務(wù)的分發(fā)和執(zhí)行。

那如果實(shí)現(xiàn)一個(gè)類(lèi)似Azkaban 能夠的做的事情,前面我們提到,要做三件事情,分別對(duì)應(yīng)為:

1.實(shí)現(xiàn)業(yè)務(wù)邏輯,也就是工作流的生成,解析,運(yùn)行和存儲(chǔ)等操作。其中生成,解析,存儲(chǔ) 三個(gè)環(huán)節(jié)可以放在Driver端,也可以都放在Executor 端。也就是說(shuō):Driver的設(shè)計(jì)可重可輕。重的設(shè)計(jì)可由Driver讀取MySQL 并且解析成工作流任務(wù),然后發(fā)送給Executor 去執(zhí)行。輕的設(shè)計(jì)Driver僅僅是讀取MySQL,然后就簡(jiǎn)單將id分發(fā)給各個(gè)Executor,各個(gè)Executor 負(fù)責(zé)解析執(zhí)行和反饋結(jié)果。

2.增強(qiáng) Spark Streaming UI,添加管理頁(yè)面,實(shí)現(xiàn)Azkaban Web Server類(lèi)似界面。

3.按標(biāo)準(zhǔn)的Spark Streaming 程序提交該實(shí)現(xiàn)到集群即可完成部署。

我們看到,我們真正做到了只關(guān)注核心業(yè)務(wù)邏輯的實(shí)現(xiàn),所謂部署,安裝,運(yùn)行等環(huán)節(jié)都實(shí)現(xiàn)了平臺(tái)化(其實(shí)Estimator完成了)。 而且實(shí)現(xiàn)了資源的細(xì)粒度(CPU/內(nèi)存)劃分,而不再是以服務(wù)器為基本單元。

事實(shí)上,我們也可以將一個(gè)Spark Streaming當(dāng)做一個(gè)crontab 任務(wù),這樣就自然具有了一個(gè)分布式的crontab系統(tǒng),并且提供更友好的管理,甚至能將任務(wù)本身融入到crontab中。

后話(huà)

Spark Streaming 不一定是最合適的Estimator,你可以自己實(shí)現(xiàn)一套類(lèi)似的Estimator,最終形成所謂的 Azkaban On Yarn的程序。

責(zé)任編輯:Ophira 來(lái)源: 簡(jiǎn)書(shū)
相關(guān)推薦

2009-03-03 09:13:36

工作流BPM業(yè)務(wù)流程

2022-10-26 08:00:43

Activiti工作流BPM

2021-10-14 11:34:05

技術(shù)工作流引擎

2024-04-25 08:00:00

DevOps架構(gòu)軟件開(kāi)發(fā)

2013-04-23 10:28:08

IBeamMDAAWF

2022-07-07 08:38:15

Springflowable引擎

2017-06-06 08:31:10

Spark Strea計(jì)算模型監(jiān)控

2012-07-23 10:36:46

工作流

2010-01-04 17:42:50

SilverLight

2023-01-04 08:02:16

工作流架構(gòu)設(shè)計(jì)

2011-12-14 09:58:58

JavajBPM

2023-07-05 09:48:44

Activiti部署

2017-08-14 10:30:13

SparkSpark Strea擴(kuò)容

2023-06-12 08:01:57

Camunda工作流引擎

2016-12-19 14:35:32

Spark Strea原理剖析數(shù)據(jù)

2015-07-14 09:26:28

微型工作流引擎設(shè)計(jì)

2024-08-05 12:46:51

2015-06-24 10:18:26

2009-09-01 18:19:39

C#工作流

2013-09-29 17:13:59

PowerShell工作流
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)