本發明涉及計算機技術領域,特別是涉及一種大數據計算管理方法及系統。
背景技術:
近年來,隨著信息化的不斷發展,在各個領域,數據都呈現出爆炸性增長的趨勢,進而隨著大數據、云計算技術的發展,面向大數據處理的大數據計算框架也層出不窮。比如MapReduce、Storm、Spark和Flink等等。
不同的大數據計算框架有著其自身不同的擅長領域,例如,MapReduce專攻離線處理,Storm專攻流計算處理,以及Spark和Flink集離線計算與流計算于一身等。所以在多種應用程序和任務共存的情況下,不同的業務場景需要使用不同的大數據計算框架,大數據處理過程中多種不同的大數據計算框架并存。
圖1所示為現有的大數據分析的系統架構圖,如圖1所示,該系統包括:大數據計算框架和資源管理框架,目前,當用戶需要使用上述系統分析大數據時,首先需要分析具體的大數據作業任務應該使用具體的哪個大數據計算框架,然后用戶將大數據作業任務請求的參數,以不同的大數據計算框架所要求的不同方式,提交至對應的大數據計算框架,再者,大數據計算框架對該大數據任務解析,最后將解析后的任務腳本提交至資源管理框架,對任務腳本進行處理。如此,現有應用多種大數據計算框架進行大數據處理時需要用戶將大數據作業任務與不同的大數據計算框架進行匹配,并且管理多種不同的大數據計算框架需要有不同的管理手段,使得大數據處理開發和管理復雜度高、效率低。
技術實現要素:
本發明實施例的目的在于提供一種大數據計算管理方法及系統,以提高大數據處理開發和管理的效率,降低開發和管理的復雜度。具體技術方案如下:
本發明實施例公開了一種大數據計算管理方法,包括:
接收第一大數據任務消息,其中,所述第一大數據任務消息為預設規范格式的任務消息,所述第一大數據任務消息包括:待處理的任務、第一任務參數、以及用戶選擇的第一大數據計算框架;
將所述第一任務參數轉換為所述第一大數據計算框架對應格式的第二任務參數;
將所述任務和所述第二任務參數,發送至所述第一大數據計算框架,以使所述第一大數據計算框架根據所述第二任務參數,運行計算所述任務。
優選的,在所述將所述第一任務參數轉換為所述第一大數據計算框架對應格式的第二任務參數,之后,所述大數據計算管理方法還包括:
將所述第二任務參數發送至資源管理框架,請求所述任務所需的資源;
分配通過所述資源管理框架針對所述請求得到的所述資源,至所述第一大數據計算框架。
優選的,在所述將所述任務和所述第二任務參數,發送至所述第一大數據計算框架,之后,所述大數據計算管理方法還包括:
接收第二大數據任務消息,所述第二大數據任務消息包括:待處理的任務、第二任務參數、以及用戶選擇的第二大數據計算框架;
將所述第二任務參數,轉換為所述第二大數據計算框架能夠處理的第三任務參數;
將所述第三任務參數發送至所述第二大數據計算框架,以使所述第二大數據計算框架運行計算所述任務。
優選的,在所述接收第二大數據任務消息之前,所述大數據計算管理方法還包括:
接收任務停止消息;
將所述任務停止消息,發送至所述第一大數據計算框架,以使所述第一大數據計算框架,停止運行計算所述大數據任務。
優選的,所述大數據計算管理方法,還包括:
接收第三大數據任務消息,其中,所述第三大數據任務消息包括:待處理的任務、第四任務參數以及第三大數據計算框架;
將所述任務和所述第四任務參數,發送至所述第三大數據計算框架,以使所述第三大數據計算框架根據所述第四任務參數,運行計算所述任務,其中,所述任務僅能根據所述第四任務參數,通過所述第三大數據計算進行處理。
本發明實施例還公開了一種大數據計算管理系統,包括:
第一接收模塊,用于接收第一大數據任務消息,其中,所述第一大數據任務消息為預設規范格式的任務消息,所述第一大數據任務消息包括:待處理的任務、第一任務參數、以及用戶選擇的第一大數據計算框架;
第一轉換模塊,用于將所述第一任務參數轉換為所述第一大數據計算框架對應格式的第二任務參數;
第一計算模塊,用于將所述任務和所述第二任務參數,發送至所述第一大數據計算框架,以使所述第一大數據計算框架根據所述第二任務參數,運行計算所述任務。
優選的,所述大數據計算管理系統,還包括:
請求資源模塊,用于將所述第二任務參數發送至資源管理框架,請求所述任務所需的資源;
分配資源模塊,用于分配通過所述資源管理框架針對所述請求得到的所述資源,至所述第一大數據計算框架。
優選的,所述大數據計算管理系統,還包括:
第二接收模塊,用于接收第二大數據任務消息,所述第二大數據任務消息包括:待處理的任務、第二任務參數、以及用戶選擇的第二大數據計算框架;
第二轉換模塊,用于將所述第二任務參數,轉換為所述第二大數據計算框架能夠處理的第三任務參數;
第二計算模塊,用于將所述第三任務參數發送至所述第二大數據計算框架,以使所述第二大數據計算框架運行計算所述任務。
優選的,所述大數據計算管理系統,還包括:
接收停止消息模塊,用于接收任務停止消息;
停止任務模塊,用于將所述任務停止消息,發送至所述第一大數據計算框架,以使所述第一大數據計算框架,停止運行計算所述大數據任務。
優選的,所述大數據計算管理系統,還包括:
第三接收模塊,用于接收第三大數據任務消息,其中,所述第三大數據任務消息包括:待處理的任務、第四任務參數以及第三大數據計算框架;
第三計算模塊,用于將所述任務和所述第四任務參數,發送至所述第三大數據計算框架,以使所述第三大數據計算框架根據所述第四任務參數,運行計算所述任務,其中,所述任務僅能根據所述第四任務參數,通過所述第三大數據計算進行處理。
本發明實施例提供的大數據計算管理方法及系統,通過統一規范編程方法,統一規范不同大數據計算框架使用統一規范標準的調用程序,提高開發效率;通過提供統一的編程接口,進而使得可以通過平臺化管理對多個不同的大數據計算框架進行統一的管理,提高大數據處理管理的效率,降低管理的復雜度。當然,實施本發明的任一產品或方法必不一定需要同時達到以上所述的所有優點。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有的大數據分析的系統架構圖;
圖2為本發明實施例大數據分析的系統架構圖;
圖3為本發明實施例大數據計算管理方法的流程圖;
圖4為本發明實施例統一規范格式過程的示意圖;
圖5為本發明實施例提供的更換大數據計算框架的流程圖;
圖6為本發明實施例大數據計算管理系統的結構示意圖;
圖7為本發明實施例大數據計算管理系統的另一種結構示意圖;
圖8為本發明實施例大數據計算管理系統的再一種結構示意圖;
圖9為本發明實施例大數據計算管理系統的又一種結構示意圖;
圖10為本發明實施例大數據計算管理系統的又再一種結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
隨著大數據、云計算技術的發展,面向大數據處理的大數據計算框架也層出不窮,用于分析大數據以得到用于企業發展決策與市場定位結果的大數據計算框架種類繁多,例如:支持離線處理的大數據計算框架MapReduce,支持在線處理的大數據計算框架Storm,支持迭代式計算的大數據計算框架Spark等等;支持不同的大數據計算框架運行的資源管理框架也種類繁多,例如:Yarn和Mesos。
參照圖2,圖2所示為本發明實施例大數據分析的系統架構圖,本發明實施例在現有的大數據分析的系統架構圖,即在圖1的基礎上增加了大數據計算管理平臺。大數據計算管理平臺對不同的大數據計算框架進行統一的平臺化管理,該大數據計算管理平臺可以為多種類型的大數據計算框架提供統一的接口,通過該統一的接口,將任務以統一規范格式提交,大數據計算管理平臺將任務解析適配到具體的大數據計算框架,以使具體的大數據計算框架運行處理任務。需要說明的是,將任務提交至大數據計算框架前還需要向資源管理框架請求資源。
本發明實施例的方案可以應用于現有的大數據計算框架所在的服務器,也可以重新設置服務器,本發明不對其加以限制。
值得注意的是,為了使本發明實施例的方案描述的更加清楚,下述各個步驟的執行主體為服務器,而該服務器可以是上述描述中的任一種。
現有技術中在部署有多種大數據計算框架的情況下,不同的大數據計算框架有不同的調用API(Application Programming Interface,應用程序編程接口),所以需要針對每一種大數據計算框架開發不同的調用程序,使得開發效率較低。而本發明實施例通過統一規范編程方法,統一規范不同大數據計算框架使用統一規范的標準調用程序,提高開發效率。
下面通過具體的實施例說明本發明的方案。
圖3為本發明實施例大數據計算管理方法的流程圖,參照圖3對本發明大數據計算管理方法進行詳細說明,具體包括:
步驟301,接收第一大數據任務消息,其中,第一大數據任務消息為預設規范格式的任務消息,第一大數據任務消息包括:待處理的任務、第一任務參數、以及用戶選擇的第一大數據計算框架。
Spark編程簡單例子:
1/*SimpleApp.scala*/
2 import org.apache.spark.SparkContext
3 import org.apache.spark.SparkContext._
4 import org.apache.spark.SparkConf
5 object SimpleApp{
6 def main(args:Array[String]){
7 val logFile="YOUR_SPARK_HOME/README.md"http://Should be some file on your system
8 val conf=new SparkConf().setAppName("Simple Application")
9 val sc=new SparkContext(conf)
10 val logData=sc.textFile(logFile,2).cache()
11 val lineRDD=logData.filter(line=>line.contains("a")).filter(line=>
12 line.startWith("hi"))
13 val num=lineRDD.count()
14 println("Lines with a:%s,Lines with b:%s".format(numAs,numBs))
15}
16}
這段代碼的意思是,把所有含有a且以hi開頭的行過濾出來,整個程序是一個數據的處理邏輯,也就是一個執行通道Pipeline,上述代碼中第10行定義了數據輸入源,從logFile這個文件里讀數據;第11行和第12行定義了數據的轉換過程,其中logData和lineRDD都是collection,濾波filter是數據的轉換關系;第13行輸出過程,計算行數,并輸出到程序控制臺。
這是針對一個簡單的任務,即將所有含有a且以hi開頭的行過濾出來,使用大數據計算框架Spark的具體編程,即提交任務時的任務參數,對輸入、輸出、數據的轉換等運行模式都有自己的定義。而在實際的應用過程中,存在有多種類型的大數據計算框架,每種大數據計算框架都有其自身對輸入、輸出、數據轉換以及其他運行模型的定義,如此使得針對具體的任務有多種復雜的編程方法,用戶需要熟悉多種不同的這些大數據計算框架運行模式對應的格式,開發難度增加。
本發明實施例為了向各種不同類型的大數據計算框架提供更加便捷與統一的預設規范格式的任務消息,將所要計算處理的任務進行抽象,向多源大數據計算框架提供統一的編程與開發方法。具體的包括:
統一規范任務執行的運算規則;統一規范抽象數據類型;統一規范分布式抽象數據類型到另一個抽象數據類型的轉換方式,其中,數據轉換格式可以包括:一對一轉換map、過濾轉換filter或者多對一轉換reduce過程等;統一規范數據輸入源和數據輸出源等,并提供數據讀入寫出動能,在實際的應用過程中,輸入源和輸出源可以是流式數據源,例如消息中間文件,也可以是離線數據源,例如文件系統,統一規范的過程具體參照圖4進行說明。
所有的大數據計算框架的使用者,不需要再在各個不同的大數據計算框架之間進行切換,可以用統一的編程方法提升開發的效率。
步驟302,將第一任務參數轉換為第一大數據計算框架對應格式的第二任務參數。
在實際的應用過程中,用戶使用統一規范的標準進行編程,但是具體的任務運行計算,最終還是在具體的大數據計算框架上執行,所以需要將用戶發送的預設規范的第一任務參數解析、轉換為用戶選擇的第一大數據計算框架對應的第二任務參數,使得任務可以運行計算。按照上述規范統一的編程與開發方法的標準,將接收到的第一任務參數轉換為第一大數據任務消息中用戶選擇的大數據計算框架要求格式的第二任務參數。
步驟303,將任務和第二任務參數,發送至第一大數據計算框架,以使第一大數據計算框架根據第二任務參數,運行計算任務。
第二任務參數是第一大數據計算框架對應格式要求的任務參數,即第一大數據計算框架能夠處理的任務參數,所以將任務和第二任務參數,發送至第一大數據計算框架,然后第一大數據計算框架根據第二任務參數,運行計算該任務。這里所說的第一大數據計算框架可以包括具體的支持離線處理的大數據計算框架MapReduce,支持在線處理的大數據計算框架Storm,支持迭代式計算的大數據計算框架Spark等等,通過具體的大數據計算框架MapReduce、Storm以及Spark等計算運行任務的方法與現有技術的通過具體的大數據計算框架運行、計算任務的方法是一樣的,此處不再贅述。
本發明實施例通過提供預設規范格式的任務消息,也就是說,無論用戶需要使用哪種大數據計算框架運行計算任務,用戶不需要針對每一種不同的大數據計算框架的不同的任務消息的格式,通過不同的、多樣的格式提交任務,只需要按照本發明實施例中規定的統一的預設規范格式的任務消息提交任務,然后,本發明實施例中將用戶提交的任務消息解析為用戶選擇的大數據計算框架能夠處理的格式的任務消息,從而使得用戶選擇的大數據計算框架運行計算任務,完成對大數據的處理。同時,大數據計算框架的運維人員,不需要對不同的大數據計算框架提供不同的入口機支持,當有新的大數據計算框架時,則只需要在該新的大數據計算框架中提供相應的,本發明實施例提供的編程、平臺接口即可,大大提升開發、推進新型技術的效率。
在本發明的一種優選的實現方式中,將第一任務參數轉換為第一大數據計算框架對應格式的第二任務參數,將任務和第二任務參數,發送至第一大數據計算框架,以使第一大數據計算框架根據第二任務參數,運行計算任務之前,先將第二任務參數發送至資源管理框架,請求任務所需的資源;分配通過資源管理框架針對請求得到的資源,至第一大數據計算框架,第一大數據計算框架獲得資源后運行計算任務。
上述第一大數據任務消息中還可以包括用戶指定的處理上述待處理的任務所需的資源管理框架,此時,當第一大數據計算框架接收到待處理的任務和第二任務參數時,還會接收到用戶指定的資源管理框架,向該資源管理框架請求處理該任務所需要的資源,第一大數據計算框架獲得處理任務所需的資源,然后根據第二任務參數對任務進行運行計算。
在實際的運行中,很有可能因為正在使用的大數據計算框架性能受限或者其他原因,出現正在使用的大數據計算框架報錯或運行失敗,或者,在使用用戶指定的大數據計算框架運行計算任務的過程中,需要使用別的大數據計算框架運行計算任務。那么此時,用戶需要將之前的任務提交至其他的大數據計算框架,以使其他的大數據計算框架運行計算該任務,以使該任務能繼續正常地運行、處理。
而現有技術中,往往需要將之前提交的任務消息重新按照新的大數據計算框架的格式重新編程,以匹配所重新選擇的大數據計算框架規定的格式。
而本發明中,無需重新編寫上述的第一大數據任務消息的格式,僅僅只需要將其中的大數據計算框架類型加以改變即可,圖5所示為本發明實施例提供的更換大數據計算框架的流程圖,如圖5所示,本實施例的計算管理方法,包括:
步驟501,接收第二大數據任務消息,第二大數據任務消息包括:待處理的任務、第二任務參數、以及用戶選擇的第二大數據計算框架。
本步驟中,用戶可以發送第二大數據任務消息,而第二大數據任務消息中相對于第一大數據任務消息改變的僅僅為:將運行計算任務的第一大數據計算框架更改為此時運行計算任務的第二大數據計算框架,類似的,這里所說的第二大數據計算框架和第一大數據計算框架一樣,可以包括具體的大數據計算框架MapReduce、Storm以及Spark等等。
步驟502,將第二任務參數,轉換為第二大數據計算框架能夠處理的第三任務參數。
本步驟執行的具體實現方式與上述的步驟302相同,此處不再贅述。
步驟503,將第三任務參數發送至第二大數據計算框架,以使第二大數據計算框架運行計算任務。
本步驟執行的具體實現方式與上述的步驟303相同,此處不再贅述。
如果在使用用戶選擇的第一大數據計算框架運行計算任務的過程中,用戶可能想要使用其他的大數據計算框架運行計算任務或者需要使用其他的大數據計算框架的場景下,在本發明一種可實現方式中,當接收到第二大數據任務消息時,則默認停止使用第一大數據計算框架運行計算任務,然后執行上述使用第二大數據計算框架運行計算任務的步驟;在另一種實現方式中,用戶可以提前發送任務停止請求消息,當接收任務停止消息后,將任務停止請求消息發送至第一大數據計算框架,以使該第一大數據計算框架停止運行計算任務。然后執行上述步驟501至步驟503。
本發明的一種可實現方式中,接收到的任務消息可以是接預設規范的任務消息,也可以是沒有按照預設規范的標準得到的任務消息,這是可以理解的。當接收到的是沒有按照預設規范的標準得到的任務消息,即是針對每個具體的不同的計算框架,按照其自身的格式進行編程得到的任務消息,本發明也是可以處理的,具體的處理過程如下:
接收第三大數據任務消息,其中,第三大數據任務消息包括:待處理的任務、第四任務參數以及第三大數據計算框架;
將任務和第四任務參數,發送至大數據計算框架,以使第三大數據計算框架根據第四任務參數,運行計算任務,其中,任務僅能根據第四任務參數,通過第三大數據計算進行處理。
用戶不依賴于本發明實施例提供的統一規范的格式將按照具體的大數據計算框架匹配到對應的大數據計算框架,雖然只能匹配到對應的唯一的大數據計算框架,當正在使用的大數據計算框架性能受限或者其他原因,出現正在使用的大數據計算框架報錯或運行失敗,或者,在使用用戶指定的大數據計算框架運行計算任務的過程中,需要使用別的大數據計算框架運行計算任務時,不能很好地處理,但是針對接收到的是沒有按照預設規范的標準得到的任務消息這種情況是可以處理的。
本發明實施例通過提供統一的編程接口,進而使得可以通過平臺化管理對多個不同的大數據計算框架進行統一的管理,提高大數據處理管理的效率,降低管理的復雜度。同時,可以根據各個大數據計算框架的任務負載,實現對各個大數據計算框架運行任務的統一調度、管理。
另外,本發明實施例還提供了一種大數據計算管理系統,圖6為本發明實施例大數據計算管理系統的一種結構示意圖,參照圖6對本發明實施例大數據計算管理系統進行詳細說明,具體包括:
第一接收模塊601,用于接收第一大數據任務消息,其中,第一大數據任務消息為預設規范格式的任務消息,第一大數據任務消息包括:待處理的任務、第一任務參數、以及用戶選擇的第一大數據計算框架。
第一轉換模塊602,用于將第一任務參數轉換為第一大數據計算框架對應格式的第二任務參數。
第一計算模塊603,用于將任務和第二任務參數,發送至第一大數據計算框架,以使第一大數據計算框架根據第二任務參數,運行計算任務。
優選的,圖7為本發明實施例大數據計算管理系統的另一種結構示意圖,參照圖7進行詳細說明,本發明實施例大數據計算管理系統還包括:
請求資源模塊604,用于將第二任務參數發送至資源管理框架,請求任務所需的資源。
分配資源模塊605,用于分配通過資源管理框架針對請求得到的資源,至第一大數據計算框架。
優選的,圖8為本發明實施例大數據計算管理系統的再一種結構示意圖,參照圖8進行詳細說明,本發明實施例大數據計算管理系統還包括:
第二接收模塊606,用于接收第二大數據任務消息,第二大數據任務消息包括:待處理的任務、第二任務參數、以及用戶選擇的第二大數據計算框架。
第二轉換模塊607,用于將第二任務參數,轉換為第二大數據計算框架能夠處理的第三任務參數。
第二計算模塊608,用于將第三任務參數發送至第二大數據計算框架,以使第二大數據計算框架運行計算任務。
優選的,圖9為本發明實施例大數據計算管理系統的又一種結構示意圖,參照圖9進行詳細說明,本發明實施例大數據計算管理系統還包括:
接收停止消息模塊609,用于接收任務停止消息。
停止任務模塊610,用于將任務停止消息,發送至第一大數據計算框架,以使第一大數據計算框架,停止運行計算大數據任務。
優選的,圖10為本發明實施例大數據計算管理系統的又再一種結構示意圖,參照圖10進行詳細說明,本發明實施例大數據計算管理系統還包括:
第三接收模塊611,用于接收第三大數據任務消息,其中,第三大數據任務消息包括:待處理的任務、第四任務參數以及第三大數據計算框架。
第三計算模塊612,用于將任務和第四任務參數,發送至第三大數據計算框架,以使第三大數據計算框架根據第四任務參數,運行計算任務,其中,任務僅能根據第四任務參數,通過第三大數據計算進行處理。
需要說明的是,本發明實施例的系統是應用上述大數據計算管理方法的系統,則上述大數據計算管理方法的所有實施例均適用于該系統,且均能達到相同或相似的有益效果。
需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。