一種基於插裝機制的APP任務執行方法及系統與流程
2023-06-03 11:44:51 3

本發明涉及計算機技術領域,具體涉及一種基於插裝機制的APP任務執行方法及系統。
背景技術:
隨著大數據時代的來臨,數據的處理框架層出不窮,其中,Spark作為全棧式的大數據處理框擁有Hadoop MapReduce所具有的優點;但不同於MapReduce的是任務中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的MapReduce的算法。因此,基於Spark的APP的開發及測試被廣泛的應用。
然而,目前Spark App的提交和執行,大都採用手工調用spark-submit腳本的方式。這種方式對Spark App的提交執行人員提出了要求,需要了解Shell命令(大部分Spark Client部署在Linux、Unix等非Windows作業系統下);需要了解spark-submit參數對應的含義;需要能根據spark-submit腳本錯誤,分析spark-submit執行命令的語法。如果由安全分析人員負責測試及執行Spark App,他們關心的只是App計算的結果,並不關心App執行過程以及過程中的錯誤,以上要求無疑提高了安全人員的使用成本和負擔。
因此,如何使安全分析人員能夠方便的對APP進行測試及執行,是計算機技術領域亟待解決的問題。
技術實現要素:
本發明所要解決的技術問題是針對現有技術中所存在的上述缺陷,提供一種基於插裝機制的APP任務執行方法及系統,用以解決現有技術中存在的基於SPARK的APP開發及測試執行不能分離,導致基於SPARK的APP的測試及執行複雜的問題。
為實現上述目的,本發明提供一種基於插裝機制的APP任務執行方法,所述方法包括如下步驟:
獲取APP信息,並根據所述APP信息在插件表中註冊生成APP插件記錄;
根據所述APP插件記錄生成初始APP任務;
對所述初始APP任務進行參數配置,並執行參數配置後的APP任務。
優選的,所述APP信息包括APP算法信息,則在所述獲取APP信息的步驟之後,根據所述APP信息在插件表中註冊生成APP插件記錄的步驟之前,所述方法還包括:判斷是否支持所述APP算法信息中的算法,若不支持,則在預設的算法表中增加所述APP信息中的算法。
優選的,所述在預設的算法信息表中增加所述APP信息中的算法,包括:在預設的算法表中創建所述APP信息中的APP算法記錄,以及在預設的插件算法關聯表中創建APP插件算法關聯記錄。
優選的,所述參數包括算法參數和執行參數;所述對所述初始APP任務進行參數配置,具體包括:對所述初始APP任務在預設的算法參數表中創建APP算法參數記錄,並在預設的任務參數賦值表中創建APP執行參數賦值記錄。
本發明還提供一種基於插裝機制的APP任務執行系統,包括:
獲取模塊,用於獲取APP信息;
插件管理模塊,用於根據所述APP信息在插件表中註冊生成APP插件記錄;
任務管理模塊,用於根據所述APP插件記錄生成初始APP任務;
參數配置模塊,用於對所述初始APP任務進行參數配置;
任務執行模塊,用於執行參數配置後的APP任務。
優選的,所述獲取模塊,具體用於獲取所述APP信息,所述APP信息包括APP算法信息,則所述系統還包括:判斷模塊和算法管理模塊;所述判斷模塊,用於在所述獲取模塊獲取APP信息之後,在所述插件管理模塊根據所述APP信息在插件表中註冊生成APP插件記錄之前,判斷是否支持所述APP算法信息中的算法,若不支持,則指示所述算法管理模塊,用於在預設的算法表中增加所述APP信息中的算法。
優選的,所述算法管理模塊,具體用於在預設的算法表中創建所述APP信息中的APP算法記錄,以及在預設的插件算法關聯表中創建APP插件算法關聯記錄。
優選的,所述參數包括算法參數和執行參數;所述參數配置模塊,具體用於對所述初始APP任務在預設的算法參數表中創建APP算法參數記錄,並在預設的任務參數賦值表中創建APP執行參數賦值記錄。
本發明所提供基於插裝機制的APP任務執行方法及系統,能夠將APP的開發工作及測試執行工作相分離,開發人員注重APP的功能開發,測試執行人員可以在只具備相對簡單的技術背景,及掌握相對簡單的測試技能的前提下,便能很好的完成APP的測試執行任務,使得APP的開發及測試執行工作分工更加明確,流程更加簡單,人力成本也相對下降,並能減少SPARK APP調用SPARK-SUBMIT腳本提交和執行過程中的人為因素導致的異常和錯誤。
附圖說明
為了更清楚的說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖做簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他附圖。
圖1為本發明提供的一種基於插裝機制的APP任務執行方法的流程示意圖;
圖2為本發明提供的一種基於插裝機制的APP任務執行系統功能模塊結構示意圖;
圖3為本發明提供的一種基於插裝機制的APP任務執行系統的實現結構示意圖;
圖4為本發明提供的一種基於插裝機制的APP任務執行系統的資料庫設計圖;
圖5為本發明提供的一種基於插裝機制的APP任務執行系統的插件生成輸入界面;
圖6為本發明提供的一種基於插裝機制的APP任務執行系統的任務生成輸入界面;
圖7為本發明提供的一種基於插裝機制的APP任務執行系統的任務管理界面;
圖8為本發明提供的一種基於插裝機制的APP任務執行系統的任務結果展示界面。
具體實施方式
為使本領域技術人員更好地理解本發明的技術方案,下面結合附圖和實施例對本發明作進一步詳細描述。顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
圖1為本發明提供的一基於插裝機制的APP任務執行方法的流程示意圖,圖1所示的一種基於插裝機制的APP任務執行方法的流程包括:
步驟S101,獲取APP信息,並根據所述APP信息在插件表中註冊生成APP插件記錄。
具體的,在對APP進行測試執行之前,需要獲知的APP的信息包括,APP需要調用的算法,APP在資料庫中的數據包路徑,APP的運行類入口,即APP的運行類信息,以便進行插件的註冊。
本發明提供一種優選的方式,為適應APP的多樣性,在獲取APP信息步驟之後,所述方法還包括:判斷是否支持所述APP算法信息中的算法,若不支持,則在預設的算法表中增加所述APP信息中的算法。
由於APP的多樣性,導致APP需要調用的算法,不一定是插件表中已經具備的算法,為保證插件的順利註冊及任務的順利生成,實現檢查APP需要的算法是否具備,是本發明提供的一項優選的步驟。
其中,在所述算法信息表中增加所述APP信息中的算法,包括:在預設的算法表中創建所述APP信息中的APP算法記錄,以及在預設的插件算法關聯表中創建APP插件算法關聯記錄。
所述APP算法表包括算法名稱,算法描述,狀態,樂觀鎖,創建人,創建時間,所述APP插件算法關聯記表包括插件名稱和算法名稱。通過建立新的算法記錄,並與插件表進行關聯後,APP需要調用的算法便具備了被調用的基礎。
上述的插件表、算法表及插件算法關聯表,其資料庫的具體實現方式,如圖4所示。
根據所述APP信息在插件表中註冊生成APP插件記錄,所述APP插件記錄包括插件名稱,插件編碼,APP信息,插件狀態,樂觀鎖,創建人,創建時間。生成APP插件記錄後,形成了一個基於插裝機制的APP執行插件,通過調用相應的算法,便可以發送給系統中的APP管理模塊生成APP執行任務,實現開發及測試執行分離的APP管理流程。
本發明還提供圖形化的人機互動界面,方便用戶的使用和操作,其中圖5為插件生成輸入界面,通過頁面顯示可以看出,生成APP插件記錄的必須項,主要涉及到使用的算法及插件的類型。
步驟S102,根據所述APP插件記錄生成初始APP任務。
具體的,根據APP插件記錄生成後,結合APP運行需要的業務場景生成初始APP任務。
由於APP的多樣性,所述APP運行所需要的業務場景也是非常多樣的,所述初始APP任務,包括:在任務表中創建初始APP任務記錄,所述初始APP任務記錄包括插件名稱,算法名稱,業務參數,SPARK運行參數,任務調度參數,任務開始時間,任務結束時間,任務失敗異常,任務狀態,任務類型,樂觀鎖,創建人,創建時間。同樣,所述初始任務所對應的任務表如圖4的任務表所示。
步驟S103,對所述初始APP任務進行參數配置,並執行參數配置後的APP任務。
具體的,所述參數包括算法參數和執行參數;所述對所述初始APP任務進行參數配置,具體包括:對所述初始APP任務在預設的算法參數表中創建APP算法參數記錄,並在預設的任務參數賦值表中創建APP執行參數賦值記錄。
初始APP任務需要進行算法參數及執行參數的完善,生成完整的APP任務。由於APP任務是APP插件負責具體生成的,其涉及的算法及執行的信息等,需要本發明提供的APP插件管理模塊進行具體設置。圖6為本發明提供的人機互動界面中的任務生成界面,由於一個APP插件可對應多個APP任務,不同的APP任務都有獨立的任務名稱及相應的設置。
所述任務配置包括算法參數配置和執行參數配置,其中:所述算法參數配置包括在算法參數表中創建APP算法參數記錄,所述APP算法參數記錄包括算法名稱,參數類型,參數描述,所述執行參數配置包括在任務參數賦值表中創建APP執行參數賦值記錄,所述APP執行參數賦值記錄包括任務名稱,算法參數名稱和參數值。
對APP任務進行了算法參數配置及執行參數配置以後,便生成了完整的基於插裝機制的APP執行方法的任務,可以發送給APP任務執行模塊,其中一個APP插件可以對應多個APP任務。本領域技術人員很容易理解的是,在進行任務的配置時,進行定時任務的配置,或進行人為設定執行的配置,均是任務執行配置中的常規選擇,本發明亦可使用這兩種配置,此處不再進行詳述。
本發明還提供一種優選的方法,在任務執行管理模塊執行參數配置後的APP任務後,所述方法還包括:輸出所述APP計算結果。
即,本發明可以對APP的計算結果進行提取和展示,並提供圖形化的人機友好界面,在圖5至圖8中,對本發明提供的基於插裝機制的APP執行方法中,重要的人機互動頁面進行了展示。在人機互動界面中,此步驟涉及的主要有兩個界面,如圖7為任務管理界面,圖8為任務結果展示界面。通過任務管理界面可對任務的執行情況進行監控,通過任務結果展示界面,可以對多個APP任務進行統計和分析。
本發明提供的基於插裝機制的APP任務執行方法,通過創建APP插件並生成相應的APP任務的方法,使得APP的開發工作及測試執行工作分工明確,整個APP的生成流程清晰,並能減少APP測試執行人員的人為失誤,降低人力成本。
圖2為本發明提供的一種基於插裝機制的APP任務執行系統功能模塊結構示意圖,如圖2所示的一種基於插裝機制的APP任務執行系統功能模塊包括:
獲取模塊201,用於獲取APP信息,具體用於獲取所述APP信息,所述APP信息包括APP算法信息。
插件管理模塊202,用於根據所述APP信息在插件表中註冊生成APP插件記錄。
任務管理模塊203,用於根據所述APP插件記錄生成初始APP任務。
參數配置模塊204,用於對所述初始APP任務進行參數配置,具體用於對所述初始APP任務在預設的算法參數表中創建APP算法參數記錄,並在預設的任務參數賦值表中創建APP執行參數賦值記錄。
任務執行模塊205,用於執行參數配置後的APP任務。
判斷模塊206,用於在所述獲取模塊獲取APP信息之後,在所述插件管理模塊根據所述APP信息在插件表中註冊生成APP插件記錄之前,判斷是否支持所述APP算法信息中的算法,若不支持,則指示算法管理模塊207在預設的算法表中增加所述APP信息中的算法。
算法管理模塊207,具體用於在預設的算法表中創建所述APP信息中的APP算法記錄,以及在預設的插件算法關聯表中創建APP插件算法關聯記錄。
本發明所提供的基於插裝機制的APP任務執行系統,將APP開發功能及測試執行功能分別在不同的模塊執行,使得測試執行人員只需輸入較少的運行參數及算法參數等,便可以順利的完成測試執行的整個流程,使得整個APP的開發及測試執行過程流程清晰,人為失誤大大降低。
為更好的對本發明所提供的方法及系統進行說明,下面結合圖3對本發明在實際系統中的實現進行進一步的說明。
圖3為本發明提供的一種基於插裝機制的APP任務執行系統的實現結構示意圖,如圖3所示的一種基於插裝機制的APP任務執行系統的實現結構包括:
平臺伺服器301,主要用於承載插件管理模塊202,算法管理模塊207,和任務管理模塊203,是本發明所提供的基於插裝機制的APP任務執行系統的核心平臺。
插件伺服器302,主要用於與平臺伺服器301,用於生成初步APP任務。
ZOOKEEPER集群303,主要用於整個APP任務執行系統的狀態監控。
MYSQL304,主要用於存儲插件APP的數據。
HDFS305,主要用於存儲插件APP數據,以及執行APP任務。
appMgr306,主要用於APP任務的調度和APP任務的下發執行。
Spark集群307,主要用於執行APP任務。
存儲308,主要用於APP數據的存儲。
基於圖3的具體實現方式可以看出,本發明所提供的基於插裝機制的APP任務執行方法及系統,充分利用了大數據平臺中的各項資源,實現了APP開發及測試執行流程的清晰管理。
在本申請所提供的實施例中,應該理解到,所揭露的方法、設備和系統,可以通過其它的方式實現。例如,以上所描述的設備實施例僅是是示意性的,所述功能模塊的劃分,僅為一種邏輯功能的劃分,實際實現時可以有另外的劃分方式,例如多個模塊可以結合或者可以集成到另一個系統,或者一些特徵可以忽略,或不執行。
最後應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。