欧美14一16sex性处,免费裸体黄网站18禁免费看,麻豆果冻传媒2021精品传媒一区,女人被弄到高潮的免费视频,免费看又黄又无码的网站

返回

美林數據技術專家團隊 | 大數據資源調度系統多樣化適配過程中的業(yè)務和設計


瀏覽【26827】  2021-09-09 10:50:00



大數據人工智能快速發(fā)展,加大了數據中心處理數據,資源的能力,加劇了人們對于提升資源效率的需求。為了合理分配大規(guī)模集群的資源,滿足日益增多的服務和任務的資源需求,出現了一系列的集群資源調度系統。
當下,主流大數據資源調度平臺有Yarn、Mesos、K8s。這些平臺背后技術路線不同,接口不同,安全認證過程不同,因此要統一管理運行在這些平臺是一個不小的挑戰(zhàn)。
如果有統一的服務將不同資源調度平臺透明化,業(yè)務系統只關心業(yè)務程序本身,剩下的交給單個標準接口處理,將大大降低這些資源調度平臺的應用成本。

需求過程和設計過程
我們需要考慮幾個問題:
1、不同資源調度平臺間的接口調用如何統一?
2、不同資源調度平臺間的安全認證的證書如何管理?
3、業(yè)務系統應用程序本身的資源文件,如果管理?
4、從業(yè)務應用程序本身來說,可能要面臨程序文件、程序資源文件、程序運行環(huán)境等業(yè)務程序執(zhí)行所關聯的要素如何管理的問題?
針對問題1
針對問題1,我們可以使用適配器模式完成各個大數據資源調度系統的統一接口適配。這種相對比較容易實現。但是,如何業(yè)務上完成一定程度的統一,從而減輕某一類業(yè)務的底層技術的實現難度,是必須要面對問題。
例如,我們目前大部分數據處理業(yè)務都要使用Spark平臺,并且有數據處理業(yè)務流程化(DAG)的需求。
流程化過程可以分為兩個部分。一個是流程定義,另一個是流程執(zhí)行。
對于流程定義,可以考慮將業(yè)務過程以過程描述文件的方法定義,并將任務接口以ID標識的方式設計,并形成基礎的SDK。此SDK包含基礎的所需的程序lib文件、程序資源文件,并且預留DAG過程入口API,從實現部分業(yè)務統一化的需求。
例如,數據分析類應用可以按照下圖完成流程描述文件的設計。

數據分析類應用

通過設計流程與節(jié)點描述,根據出入路徑實現DAG進行設計可以完成大部分流程類應用的業(yè)務。
而對于流程執(zhí)行,實際上是一個流程驅動的過程。這個驅動過程可以使用以下思路實現:

驅動過程實現思路

我們可將節(jié)點間描述邏輯實體化到系統中,連接邏輯和流轉邏輯使用Transition完成,使用Builder完成所有流程要素的生成。Process負責所有流程對象的承載,并觸發(fā)這個流程的執(zhí)行。Behavior是我們業(yè)務程序的入口定義,Meta則是節(jié)點間的數據傳遞和業(yè)務元數據定義邏輯,而Execution,則是所有業(yè)務入口的驅動對象。
針對問題2-4
我們可以看到,其核心是如何管理大數據資源調度平臺的相關配置文件和業(yè)務系統的相關程序文件。可以統一抽象出資源的類定義,然后根據資源類型使用面向對象方法進行規(guī)劃。

大數據資源調度平臺

此處引入頂層資源的概念,從頂層資源可以繼承出文件資源、配置資源、應用資源等。配置資源可以拓展出Hadoop配置資源、K8s配置資源。應用資源可以繼續(xù)拓展出基于Spark的應用資源、基于Flink的應用資源等。
基于以上面向對象方法完成的規(guī)劃可以在后續(xù)的需求中比較容易的拓展出其他類型的資源調度平臺的應用,例如K8s應用。同時,K8s應用可以快速的組合其他的配置資源、文件資源等。
適配資源調度系統過程中若干設計要素
從需求側我們可以總結出以下幾個業(yè)務要素:
1、大數據資源調度與管理平臺,如K8s、Yarn、Mesos等。
2、業(yè)務應用,如基于Spark的應用、基于Flink的應用、從底層實現各種數據處理程序等。
3、一個大數據任務管理服務,此服務可以使用相同形式的接口將各個應用提交到大數據資源管理平臺。
4、可以實現部分業(yè)務過程的抽象統一化適配,提供適配過程的SDK開發(fā)包。
基于以上設計要素,可以實現以下系統邏輯架構圖:

系統邏輯架構圖

業(yè)務應用通過API接口將程序提交到Yarn、K8s、Mesos等大數據資源調度平臺中執(zhí)行。大數據任務管理服務提供對執(zhí)行任務的監(jiān)控、日志提取和任務管理的接口,是業(yè)務應用系統程序在云計算環(huán)境中執(zhí)行的橋接服務。
服務內部通過注冊資源和應用完成對程序資源的管理和應用管理,其中系統資源類型包括容器類(K8s、Yarn),程序基礎框架類(Spark、Hive、Hbase),開發(fā)語言類(Python、Java),服務提供應用系統的定時、實時調度功能。
服務對外提供一套應用系統管理的REST接口。
1、應用系統管理:提供注冊、禁用、提取狀態(tài),配置應用系統的調度功能的接口。
2、作業(yè)管理:針對已注冊應用,可以動態(tài)提交基于該應用系統的作業(yè),實時執(zhí)行并獲取執(zhí)行狀態(tài)、日志。
3、授權管理:針對每個應用系統的授權碼的管理。
基于以上各設計要素,可以實現一個通用的橋接服務,通過該服務可將資源調度過程透明化,并可適配未來出現的未知資源調度平臺。
總結
適配多個大數據資源調度平臺是一個比較復雜的過程,通過使用面向對象的資源化設計方法,是一個比較自然且易于擴展的思路。
部分業(yè)務應用中可以抽象出一些基礎的業(yè)務邏輯,例如流程驅動的數據處理業(yè)務。此時我們可以抽象出通用的SDK,業(yè)務應用直接基于此SDK開發(fā),可以快速實現流程驅動的數據處理類應用。資源化各個設計要素后,系統可以通過組合不同的資源快速實現各種基于大數據資源調度平臺的業(yè)務應用。