一種Hadoop集群中的作業(yè)調(diào)度方法和作業(yè)調(diào)度器的制造方法
【專利摘要】本發(fā)明公開了一種Hadoop集群中的作業(yè)調(diào)度方法和作業(yè)調(diào)度器,根據(jù)作業(yè)的優(yōu)先級、提交時間和任務運行數(shù)對Hadoop集群中的作業(yè)進行評價,并根據(jù)評價結(jié)果自適應地選擇作業(yè),縮短了優(yōu)先級較高的小作業(yè)的等待時間,保證了對優(yōu)先級高的小作業(yè)的公平性,同時縮短了多作業(yè)的整體運行時間,避免了局部最優(yōu)的出現(xiàn),提高了作業(yè)調(diào)度的適應性和調(diào)度合理性,改善了Hadoop集群處理任務的效率和整體性能。
【專利說明】一種Hadoop集群中的作業(yè)調(diào)度方法和作業(yè)調(diào)度器
【技術領域】
[0001] 本發(fā)明涉及計算機【技術領域】,具體涉及一種Hadoop集群中的作業(yè)調(diào)度方法和作 業(yè)調(diào)度器。
【背景技術】
[0002] Hadoop集群是一種具有高可靠性和良好的擴展性的分布式系統(tǒng),在數(shù)據(jù)處理領域 得到了廣泛的應用。在Hadoop集群得到應用的初期階段,使用FIFO(First In First Out, 先入先出)調(diào)度機制分配任務,將所有作業(yè)統(tǒng)一提交到一個隊列中,并按照提交的先后順 序依次運行隊列中的作業(yè)。但隨著Hadoop用戶及應用程序種類的不斷增加,F(xiàn)IFO調(diào)度機 制無法有效地利用集群中的資源,也不能滿足不同應用程序的服務質(zhì)量要求。
[0003] 現(xiàn)有技術中,通常使用公平調(diào)度機制和計算能力調(diào)度機制分配任務,按照應用需 求對用戶或應用程序分組,對不同的分組分配不同的資源量,同時通過添加各種約束條件 防止單個用戶或者應用程序獨占資源。
[0004] 然而,公平調(diào)度機制會導致負載不均衡,影響系統(tǒng)的響應時間,同時,配置文件的 配置影響整個系統(tǒng)的性能。而在計算能力調(diào)度機制中,無法自動進行隊列設置和隊列分組, 并且存在局部最優(yōu)現(xiàn)象,從而影響系統(tǒng)的整體性能。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供了一種Hadoop集群中的作業(yè)調(diào)度方法和作業(yè)調(diào)度器,用以解決現(xiàn)有 作業(yè)調(diào)度機制中的負載不均衡和系統(tǒng)的整體性能受到影響的缺陷。
[0006] 本發(fā)明提供了一種Hadoop集群中的作業(yè)調(diào)度方法,包括以下步驟:
[0007] Sl、獲取所述Hadoop集群中的各個隊列占用的資源量,根據(jù)各個隊列占用的資源 量,計算各個隊列的資源使用率;
[0008] S2、根據(jù)各個隊列的資源使用率,選擇資源使用率最低的隊列作為當前隊列;
[0009] S3、獲取當前隊列中的各個作業(yè)的優(yōu)先級、提交時間、未完成任務數(shù)和總?cè)蝿諗?shù), 根據(jù)各個作業(yè)的優(yōu)先級、提交時間、未完成任務數(shù)和總?cè)蝿諗?shù),計算當前隊列中的各個作業(yè) 的評價值;
[0010] S4、根據(jù)當前隊列中的各個作業(yè)的評價值,從當前隊列中選擇當前作業(yè);
[0011] S5、從當前作業(yè)中選擇任務,并向選擇的任務分配資源。
[0012] 可選地,所述根據(jù)各個作業(yè)的優(yōu)先級、提交時間、未完成任務數(shù)和總?cè)蝿諗?shù),計算 當前隊列中的各個作業(yè)的評價值,具體為:
[0013] 計算當前隊列中的各個作業(yè)的優(yōu)先級與當前隊列中的所有作業(yè)的優(yōu)先級之和的 比值,將該比值作為各個作業(yè)的優(yōu)先級因子;計算當前時間與當前隊列中的各個作業(yè)的提 交時間的差值,將該差值與當前時間的比值作為各個作業(yè)的時間因子;計算當前隊列中的 各個作業(yè)的未完成任務數(shù)和總?cè)蝿諗?shù)的比值,將該比值作為各個作業(yè)的任務量因子,并根 據(jù)各個作業(yè)的優(yōu)先級因子、時間因子和任務量因子,計算各個作業(yè)的評價值。
[0014] 可選地,所述根據(jù)各個作業(yè)的優(yōu)先級、提交時間、未完成任務數(shù)和總?cè)蝿諗?shù),計算 當前隊列中的各個作業(yè)的評價值,具體為:
[0015] 使用以下公式計算各個作業(yè)的評價值:
【權利要求】
1. 一種Hadoop集群中的作業(yè)調(diào)度方法,其特征在于,包括以下步驟: 51、 獲取所述Hadoop集群中的各個隊列占用的資源量,根據(jù)各個隊列占用的資源量, 計算各個隊列的資源使用率; 52、 根據(jù)各個隊列的資源使用率,選擇資源使用率最低的隊列作為當前隊列; 53、 獲取當前隊列中的各個作業(yè)的優(yōu)先級、提交時間、未完成任務數(shù)和總?cè)蝿諗?shù),根據(jù) 各個作業(yè)的優(yōu)先級、提交時間、未完成任務數(shù)和總?cè)蝿諗?shù),計算當前隊列中的各個作業(yè)的評 價值; 54、 根據(jù)當前隊列中的各個作業(yè)的評價值,從當前隊列中選擇當前作業(yè); 55、 從當前作業(yè)中選擇任務,并向選擇的任務分配資源。
2. 如權利要求1所述的方法,其特征在于,所述根據(jù)各個作業(yè)的優(yōu)先級、提交時間、未 完成任務數(shù)和總?cè)蝿諗?shù),計算當前隊列中的各個作業(yè)的評價值,具體為: 計算當前隊列中的各個作業(yè)的優(yōu)先級與當前隊列中的所有作業(yè)的優(yōu)先級之和的比值, 將該比值作為各個作業(yè)的優(yōu)先級因子;計算當前時間與當前隊列中的各個作業(yè)的提交時間 的差值,將該差值與當前時間的比值作為各個作業(yè)的時間因子;計算當前隊列中的各個作 業(yè)的未完成任務數(shù)和總?cè)蝿諗?shù)的比值,將該比值作為各個作業(yè)的任務量因子,并根據(jù)各個 作業(yè)的優(yōu)先級因子、時間因子和任務量因子,計算各個作業(yè)的評價值。
3. 如權利要求1或2所述的方法,其特征在于,所述根據(jù)各個作業(yè)的優(yōu)先級、提交時間、 未完成任務數(shù)和總?cè)蝿諗?shù),計算當前隊列中的各個作業(yè)的評價值,具體為: 使用以下公式計算各個作業(yè)的評價值:
其中,Worth[i]為作業(yè)i的評價值,p[i]為作業(yè)i的優(yōu)先級的分值,?;Μ./]為當前隊 /=1 列中的所有作業(yè)的優(yōu)先級的分值之和,nowtime為當前時間,submittime為作業(yè)i的提交時 間,untasks為作業(yè)i的未完成任務數(shù),totaltasks為作業(yè)i的總?cè)蝿諗?shù)。
4. 如權利要求1所述的方法,其特征在于,所述步驟S4之后,還包括: 判斷當前作業(yè)所在的用戶占用的資源是否達到資源使用上限; 所述步驟S5,具體為: 如果當前作業(yè)所在的用戶占用的資源未達到資源使用上限,從當前作業(yè)中選擇任務, 并向選擇的任務分配資源。
5. 如權利要求1所述的方法,其特征在于,所述步驟S4之后,還包括: 所述步驟S4之后,還包括: 判斷TaskTracker節(jié)點的剩余資源是否足以運行當前作業(yè)中的一個任務; 所述步驟S5,具體為: 如果所述TaskTracker節(jié)點的剩余資源足以運行當前作業(yè)中的一個任務,從當前作業(yè) 中選擇任務,并向選擇的任務分配資源。
6. -種Hadoop集群中的作業(yè)調(diào)度器,其特征在于,包括: 第一獲取模塊,用于獲取所述Hadoop集群中的各個隊列占用的資源量; 第一計算模塊,用于根據(jù)所述第一獲取模塊獲取到的各個隊列占用的資源量,計算各 個隊列的資源使用率; 第一選擇模塊,用于根據(jù)所述第一計算模塊計算得到的各個隊列的資源使用率,選擇 資源使用率最低的隊列作為當前隊列; 第二獲取模塊,用于獲取所述第一選擇模塊選擇的當前隊列中的各個作業(yè)的優(yōu)先級、 提交時間、未完成任務數(shù)和總?cè)蝿諗?shù); 第二計算模塊,用于根據(jù)所述第二獲取模塊獲取到的各個作業(yè)的優(yōu)先級、提交時間、未 完成任務數(shù)和總?cè)蝿諗?shù),計算當前隊列中的各個作業(yè)的評價值; 第二選擇模塊,用于根據(jù)所述第二計算模塊計算得到的當前隊列中的各個作業(yè)的評價 值,從當前隊列中選擇當前作業(yè); 分配模塊,用于從所述第二選擇模塊選擇的當前作業(yè)中選擇任務,并向選擇的任務分 配資源。
7. 如權利要求6所述的作業(yè)調(diào)度器,其特征在于, 所述第二計算模塊,具體用于計算當前隊列中的各個作業(yè)的優(yōu)先級與當前隊列中的所 有作業(yè)的優(yōu)先級之和的比值,將該比值作為各個作業(yè)的優(yōu)先級因子;計算當前時間與當前 隊列中的各個作業(yè)的提交時間的差值,將該差值與當前時間的比值作為各個作業(yè)的時間因 子;計算當前隊列中的各個作業(yè)的未完成任務數(shù)和總?cè)蝿諗?shù)的比值,將該比值作為各個作 業(yè)的任務量因子,并根據(jù)各個作業(yè)的優(yōu)先級因子、時間因子和任務量因子,計算各個作業(yè)的 評價值。
8. 如權利要求6或7所述的作業(yè)調(diào)度器,其特征在于, 所述第二計算模塊,具體用于使用以下公式計算各個作業(yè)的評價值:
η 其中,Worth[i]為作業(yè)i的評價值,p[i]為作業(yè)i的優(yōu)先級的分值,Σ/U為當前隊 ;=1 列中的所有作業(yè)的優(yōu)先級的分值之和,nowtime為當前時間,submittime為作業(yè)i的提交時 間,untasks為作業(yè)i的未完成任務數(shù),totaltasks為作業(yè)i的總?cè)蝿諗?shù)。
9. 如權利要求6所述的作業(yè)調(diào)度器,其特征在于,還包括: 第一判斷模塊,用于判斷所述第二選擇模塊選擇的當前作業(yè)所在的用戶占用的資源是 否達到資源使用上限; 所述分配模塊,具體用于當所述第一判斷模塊判斷出當前作業(yè)所在的用戶占用的資源 未達到資源使用上限時,從當前作業(yè)中選擇任務,并向選擇的任務分配資源。
10. 如權利要求6所述的作業(yè)調(diào)度器,其特征在于,還包括: 第二判斷模塊,用于判斷TaskTracker節(jié)點的剩余資源是否足以運行當前作業(yè)中的一 個任務; 所述分配模塊,具體用于當所述第二判斷模塊判斷出所述TaskTracker節(jié)點的剩余資 源足以運行當前作業(yè)中的一個任務,從當前作業(yè)中選擇任務,并向選擇的任務分配資源。
【文檔編號】G06F9/50GK104239154SQ201410528405
【公開日】2014年12月24日 申請日期:2014年10月9日 優(yōu)先權日:2014年10月9日
【發(fā)明者】宗棟瑞, 郭美思, 吳楠 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司