本發(fā)明涉及云計(jì)算領(lǐng)域,特別涉及一種用于Hadoop平臺的計(jì)費(fèi)系統(tǒng)及方法。
背景技術(shù):近幾年來,云計(jì)算技術(shù)迅速發(fā)展,為用戶提供了按需擴(kuò)展的計(jì)算服務(wù)。其中,根據(jù)服務(wù)的交付模式的不同,云計(jì)算服務(wù)可以分為三類:IaaS(InfrastructureasaService,基礎(chǔ)設(shè)施即服務(wù))、PaaS(PlatformasaService,平臺即服務(wù))和SaaS(SoftwareasaService,軟件即服務(wù))。其中,Hadoop平臺是一種PaaS平臺,由HDFS(HadoopDistributedFileSystem,分布式文件系統(tǒng))和映射化簡MapReduce系統(tǒng)組成,HDFS系統(tǒng)用于存儲Hadoop集群中的文件,MapReduce系統(tǒng)用于實(shí)現(xiàn)分布式計(jì)算?,F(xiàn)有技術(shù)中,IaaS平臺的計(jì)費(fèi)方式是根據(jù)虛擬機(jī)的CPU和內(nèi)存的大小、存儲空間等資源使用情況進(jìn)行統(tǒng)計(jì),并按照統(tǒng)計(jì)的資源使用情況和時間長短進(jìn)行計(jì)費(fèi);而對于Hadoop平臺,用戶以云計(jì)算任務(wù)為單位使用資源,而不是以虛擬機(jī)資源為單位使用資源,因此按照虛擬機(jī)資源進(jìn)行計(jì)費(fèi)不適用于Hadoop平臺,此外,云計(jì)算任務(wù)涉及到了流量、CPU使用率、內(nèi)存、網(wǎng)絡(luò)流量等多個項(xiàng)目,使用單獨(dú)計(jì)費(fèi)的方式也很難做到精確計(jì)費(fèi)。因此,為了提高計(jì)費(fèi)的精確性,需要提出一種用于Hadoop平臺的計(jì)費(fèi)方式。
技術(shù)實(shí)現(xiàn)要素:為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種用于Hadoop平臺的計(jì)費(fèi)系統(tǒng)及方法。所述技術(shù)方案如下:第一方面,提供了一種用于Hadoop平臺的計(jì)費(fèi)系統(tǒng),所述Hadoop平臺包括:映射化簡MapReduce系統(tǒng)和分布式文件系統(tǒng)HDFS,所述計(jì)費(fèi)系統(tǒng)包括:資源統(tǒng)計(jì)模塊、配置模塊、計(jì)費(fèi)模塊,所述資源統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)所述MapReduce系統(tǒng)的計(jì)算任務(wù)的資源使用情況和所述HDFS的存儲空間占用情況,生成所述計(jì)算任務(wù)的資源使用日志,并向所述計(jì)費(fèi)模塊發(fā)送所述計(jì)算任務(wù)的資源使用日志;所述配置模塊,用于根據(jù)預(yù)設(shè)計(jì)費(fèi)因素,確定資源單價和計(jì)費(fèi)策略,并向所述計(jì)費(fèi)模塊發(fā)送所述資源單價和所述計(jì)費(fèi)策略;所述計(jì)費(fèi)模塊,用于根據(jù)接收到的資源使用日志、資源單價和計(jì)費(fèi)策略,生成所述計(jì)算任務(wù)的計(jì)費(fèi)報表。在第一方面的第一種可能實(shí)現(xiàn)方式中,所述資源統(tǒng)計(jì)模塊包括:資源統(tǒng)計(jì)單元、空間統(tǒng)計(jì)單元、日志生成單元,資源統(tǒng)計(jì)單元,用于以第一預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述資源使用情況,并向所述日志生成單元發(fā)送所述資源使用情況;所述空間統(tǒng)計(jì)單元,用于以第二預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述存儲空間占用情況,并向所述日志生成單元發(fā)送所述存儲空間占用情況;日志生成單元,用于接收所述資源使用情況和所述存儲空間占用情況,生成所述計(jì)算任務(wù)的資源使用日志,并向所述計(jì)費(fèi)模塊發(fā)送所述資源使用日志。結(jié)合第一方面的第一種可能實(shí)現(xiàn)方式,在第二種可能實(shí)現(xiàn)方式中,所述空間統(tǒng)計(jì)單元包括:接口調(diào)用子單元、空間統(tǒng)計(jì)子單元,所述接口調(diào)用子單元,用于以所述第二預(yù)設(shè)時長為周期,調(diào)用所述HDFS的主節(jié)點(diǎn)NameNode的接口,獲取存儲空間占用情況,并向所述空間統(tǒng)計(jì)子單元發(fā)送所述存儲空間占用情況;所述空間統(tǒng)計(jì)子單元,用于對接收到的存儲空間占用情況進(jìn)行統(tǒng)計(jì),并向所述日志生成單元發(fā)送所述存儲空間占用情況。結(jié)合第一方面的第一種可能實(shí)現(xiàn)方式,在第三種可能實(shí)現(xiàn)方式中,所述MapReduce系統(tǒng)包括主節(jié)點(diǎn)Master和至少一個工作節(jié)點(diǎn)Worker,相應(yīng)地,所述資源統(tǒng)計(jì)單元包括:每個Worker對應(yīng)的資源采集子單元、資源統(tǒng)計(jì)子單元,所述資源采集子單元,用于以第三預(yù)設(shè)時長為周期,采集對應(yīng)Worker的資源使用情況,并以所述第一預(yù)設(shè)時長為周期,向所述資源統(tǒng)計(jì)子單元發(fā)送所述資源使用情況,所述第三預(yù)設(shè)時長小于所述第一預(yù)設(shè)時長;所述資源統(tǒng)計(jì)子單元,用于對接收到的資源使用情況進(jìn)行統(tǒng)計(jì),并向所述日志生成單元發(fā)送所述資源使用情況。結(jié)合第一方面的第三種可能實(shí)現(xiàn)方式,在第四種可能實(shí)現(xiàn)方式中,所述資源采集子單元位于所述Worker中;所述資源統(tǒng)計(jì)子單元位于所述Master中。第二方面,提供了一種用于Hadoop平臺的計(jì)費(fèi)方法,所述Hadoop平臺包括:映射化簡MapReduce系統(tǒng)和分布式文件系統(tǒng)HDFS,所述計(jì)費(fèi)方法包括:統(tǒng)計(jì)所述MapReduce系統(tǒng)的計(jì)算任務(wù)的資源使用情況和所述HDFS的存儲空間占用情況,生成所述計(jì)算任務(wù)的資源使用日志;根據(jù)預(yù)設(shè)計(jì)費(fèi)因素,確定所述資源單價和所述計(jì)費(fèi)策略;根據(jù)所述資源使用日志、資源單價和計(jì)費(fèi)策略,生成所述計(jì)算任務(wù)的計(jì)費(fèi)報表。在第二方面的第一種可能實(shí)現(xiàn)方式中,統(tǒng)計(jì)所述MapReduce系統(tǒng)的計(jì)算任務(wù)的資源使用情況和所述HDFS的存儲空間占用情況,生成所述計(jì)算任務(wù)的資源使用日志,包括:以第一預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述資源使用情況;以第二預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述存儲空間占用情況;根據(jù)所述資源使用情況和所述存儲空間占用情況,生成所述計(jì)算任務(wù)的資源使用日志。結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第二種可能實(shí)現(xiàn)方式中,以第一預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述資源使用情況包括:以第三預(yù)設(shè)時長為周期,采集所述資源使用情況,所述第三預(yù)設(shè)時長小于所述第一預(yù)設(shè)時長;以所述第一預(yù)設(shè)時長為周期,對所述資源使用情況進(jìn)行統(tǒng)計(jì)。結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第三種可能實(shí)現(xiàn)方式中,所述MapReduce系統(tǒng)包括主節(jié)點(diǎn)Master和至少一個工作節(jié)點(diǎn)Worker,相應(yīng)地,以第一預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述資源使用情況,包括:以所述第三預(yù)設(shè)時長為周期,采集對應(yīng)Worker的資源使用情況;以所述第一預(yù)設(shè)時長為周期,對所有Worker的資源使用情況進(jìn)行統(tǒng)計(jì)。結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第四種可能實(shí)現(xiàn)方式中,以第二預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述存儲空間占用情況包括:以所述第二預(yù)設(shè)時長為周期,調(diào)用所述NameNode的接口,獲取存儲空間占用情況;對所述存儲空間占用情況進(jìn)行統(tǒng)計(jì)。本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:本發(fā)明實(shí)施例提供的系統(tǒng)及方法,對于分布式計(jì)算Hadoop平臺,通過對該計(jì)算任務(wù)的資源使用情況和存儲空間占用情況進(jìn)行統(tǒng)計(jì),并根據(jù)資源使用情況和存儲空間占用情況以及計(jì)費(fèi)策略生成該計(jì)算任務(wù)的計(jì)費(fèi)報表,對該計(jì)算任務(wù)進(jìn)行收費(fèi),提高了計(jì)費(fèi)的精確性,實(shí)現(xiàn)了計(jì)費(fèi)策略的靈活配置。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例提供的用于Hadoop平臺的計(jì)費(fèi)系統(tǒng)的結(jié)構(gòu)示意圖;圖2是本發(fā)明實(shí)施例提供的用于Hadoop平臺的計(jì)費(fèi)系統(tǒng)的結(jié)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例提供的一種用于Hadoop平臺的計(jì)費(fèi)方法的流程圖;圖4是本發(fā)明實(shí)施例提供的一種用于Hadoop平臺的計(jì)費(fèi)方法的流程圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1是本發(fā)明實(shí)施例提供的一種用于Hadoop平臺的計(jì)費(fèi)系統(tǒng)的結(jié)構(gòu)示意圖。該Hadoop平臺包括:映射化簡MapReduce系統(tǒng)和分布式文件系統(tǒng)HDFS,其中,HDFS用于分布式存儲數(shù)據(jù),MapReduce系統(tǒng)用于分布式計(jì)算,參見圖1,所述系統(tǒng)包括:資源統(tǒng)計(jì)模塊101、配置模塊102、計(jì)費(fèi)模塊103,資源統(tǒng)計(jì)模塊101、配置模塊102分別與計(jì)費(fèi)模塊103連接;該資源統(tǒng)計(jì)模塊101,用于統(tǒng)計(jì)該MapReduce系統(tǒng)的計(jì)算任務(wù)的資源使用情況和該HDFS的存儲空間占用情況,生成該計(jì)算任務(wù)的資源使用日志,并向該計(jì)費(fèi)模塊103發(fā)送該計(jì)算任務(wù)的資源使用日志;其中,計(jì)算任務(wù)為Hadoop平臺中的資源情況統(tǒng)計(jì)單位,而計(jì)算任務(wù)在該Hadoop平臺中是以分布式形式,由多個節(jié)點(diǎn)實(shí)現(xiàn)的。該資源使用情況包括但不限于該計(jì)算任務(wù)所屬用戶、CPU使用情況、內(nèi)存使用情況和網(wǎng)絡(luò)流量。在Hadoop平臺為用戶提供計(jì)算任務(wù)的服務(wù)時,占用了HDFS的存儲空間和MapReduce系統(tǒng)的資源,因此,為了準(zhǔn)確地對計(jì)算任務(wù)進(jìn)行計(jì)費(fèi),需要對該計(jì)算任務(wù)的資源使用情況和存儲空間占用情況分別進(jìn)行統(tǒng)計(jì)。該配置模塊102,用于根據(jù)預(yù)設(shè)計(jì)費(fèi)因素,確定資源單價和計(jì)費(fèi)策略,并向該計(jì)費(fèi)模塊103發(fā)送該資源單價和該計(jì)費(fèi)策略;其中,預(yù)設(shè)計(jì)費(fèi)因素是指當(dāng)前的促銷活動、忙時或閑時的價格差別等,資源單價是指單位資源的價格,而計(jì)費(fèi)策略是根據(jù)預(yù)設(shè)計(jì)費(fèi)因素確定。該資源使用日志中記錄的該計(jì)算任務(wù)的統(tǒng)計(jì)時間不同,其對應(yīng)的預(yù)設(shè)計(jì)費(fèi)因素不同,則該統(tǒng)計(jì)時間對應(yīng)的計(jì)費(fèi)策略不同。該計(jì)費(fèi)模塊103,用于根據(jù)接收到的資源使用日志、資源單價和計(jì)費(fèi)策略,生成該計(jì)算任務(wù)的計(jì)費(fèi)報表。該計(jì)費(fèi)報表可以列表的形式詳細(xì)記錄每個統(tǒng)計(jì)時間對應(yīng)的計(jì)費(fèi),也可以僅記錄該計(jì)算任務(wù)的總計(jì)費(fèi),本發(fā)明實(shí)施例對此不做限定。本發(fā)明實(shí)施例中,當(dāng)該計(jì)算任務(wù)處理完成時,計(jì)費(fèi)模塊103根據(jù)該資源使用日志中記錄的該計(jì)算任務(wù)的詳細(xì)的資源使用情況和存儲空間占用情況以及資源單價和計(jì)費(fèi)策略,生成該計(jì)算任務(wù)的計(jì)費(fèi)報表,提供給用戶。需要說明的是,上述各個模塊均可以作為獨(dú)立的設(shè)備實(shí)現(xiàn)相應(yīng)的功能,還可以作為同一設(shè)備上的不同功能模塊實(shí)現(xiàn)相應(yīng)的功能,本發(fā)明實(shí)施例對此不做限定。本發(fā)明實(shí)施例提供的系統(tǒng),對于為用戶提供服務(wù)的分布式計(jì)算的Hadoop平臺,通過對該計(jì)算任務(wù)的資源使用情況和存儲空間占用情況進(jìn)行統(tǒng)計(jì),并根據(jù)資源使用情況和存儲空間占用情況以及計(jì)費(fèi)策略生成該計(jì)算任務(wù)的計(jì)費(fèi)報表,對該計(jì)算任務(wù)進(jìn)行收費(fèi),提高了計(jì)費(fèi)的精確性,實(shí)現(xiàn)了計(jì)費(fèi)策略的靈活配置。可選地,參見圖2,該資源統(tǒng)計(jì)模塊101包括:資源統(tǒng)計(jì)單元1011、空間統(tǒng)計(jì)單元1012、日志生成單元1013,其中,該資源統(tǒng)計(jì)單元1011,用于以第一預(yù)設(shè)時長為周期,統(tǒng)計(jì)該資源使用情況,并向該日志生成單元1013發(fā)送該資源使用情況;該空間統(tǒng)計(jì)單元1012,用于以第二預(yù)設(shè)時長為周期,統(tǒng)計(jì)該存儲空間占用情況,并向該日志生成單元1013發(fā)送該存儲空間占用情況;該日志生成單元1013,用于接收該資源使用情況和該存儲空間占用情況,生成該計(jì)算任務(wù)的資源使用日志,并向該計(jì)費(fèi)模塊103發(fā)送該資源使用日志。進(jìn)一步可選地,該空間統(tǒng)計(jì)單元1012包括:接口調(diào)用子單元10121、空間統(tǒng)計(jì)子單元10122,其中,該接口調(diào)用子單元10121,用于以該第二預(yù)設(shè)時長為周期,調(diào)用該HDFS的主節(jié)點(diǎn)NameNode的接口,獲取存儲空間占用情況,并向該空間統(tǒng)計(jì)子單元10122發(fā)送該存儲空間占用情況;該空間統(tǒng)計(jì)子單元10122,用于對接收到的存儲空間占用情況進(jìn)行統(tǒng)計(jì),并向該日志生成單元1013發(fā)送該存儲空間占用情況。該MapReduce系統(tǒng)包括主節(jié)點(diǎn)Master和至少一個工作節(jié)點(diǎn)Worker,則該資源統(tǒng)計(jì)單元1011包括:每個Worker對應(yīng)的資源采集子單元10111、資源統(tǒng)計(jì)子單元10112,其中,該資源采集子單元10111,用于以第三預(yù)設(shè)時長為周期,采集對應(yīng)Worker的資源使用情況,并以該第一預(yù)設(shè)時長為周期,向該資源統(tǒng)計(jì)子單元10112發(fā)送該資源使用情況,該第三預(yù)設(shè)時長小于該第一預(yù)設(shè)時長;該資源統(tǒng)計(jì)子單元10112,用于對接收到的資源使用情況進(jìn)行統(tǒng)計(jì),并向該日志生成單元1013發(fā)送該資源使用情況??蛇x地,該資源采集子單元10111位于該Worker中;該資源統(tǒng)計(jì)子單元10112位于該Master中。上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。圖3是本發(fā)明實(shí)施例提供的一種用于Hadoop平臺的計(jì)費(fèi)方法的流程圖。所述Hadoop平臺包括:映射化簡MapReduce系統(tǒng)和分布式文件系統(tǒng)HDFS,參見圖3,所述計(jì)費(fèi)方法包括:301:統(tǒng)計(jì)該MapReduce系統(tǒng)的計(jì)算任務(wù)的資源使用情況和該HDFS的存儲空間占用情況,生成該計(jì)算任務(wù)的資源使用日志,執(zhí)行步驟303;本發(fā)明實(shí)施例中,對該資源使用情況和該存儲空間占用情況的統(tǒng)計(jì)可以周期性進(jìn)行,在一個統(tǒng)計(jì)周期內(nèi)的多個統(tǒng)計(jì)時刻采集資源使用情況和存儲空間占用情況,分別計(jì)算采集資源使用情況和存儲空間占用情況的平均值,將得到的平均值作為該統(tǒng)計(jì)周期內(nèi)的每個時刻的資源使用情況和存儲空間占用情況。例如,資源使用情況當(dāng)前的統(tǒng)計(jì)周期為t0-t0+△t的時間段,當(dāng)在t0時刻采集到該計(jì)算任務(wù)的CPU使用率為3%,在t0-t0+△t中的t1時刻采集到該計(jì)算任務(wù)的CPU使用率為2%,在t0-t0+△t中的t2時刻采集到該計(jì)算任務(wù)的CPU使用率為4%時,計(jì)算出該統(tǒng)計(jì)周期內(nèi)資源使用情況的平均值為3%,則在該統(tǒng)計(jì)周期內(nèi),該計(jì)算任務(wù)的CPU使用率為3%*△t。其中,該資源使用日志用于記錄該計(jì)算任務(wù)的資源使用情況和存儲空間占用情況,并保存在數(shù)據(jù)庫中??蛇x地,該資源使用日志以列表的形式記錄統(tǒng)計(jì)到的計(jì)算任務(wù)的所屬用戶、根據(jù)統(tǒng)計(jì)周期所選取的多個統(tǒng)計(jì)時間、每個統(tǒng)計(jì)時間對應(yīng)統(tǒng)計(jì)到的存儲空間占用情況、內(nèi)存使用情況、網(wǎng)絡(luò)流量等資源使用情況。在處理該計(jì)算任務(wù)的過程中,該資源統(tǒng)計(jì)模塊通過周期性地對該計(jì)算任務(wù)的資源使用情況和存儲空間占用情況進(jìn)行統(tǒng)計(jì),使得該資源使用日志不斷進(jìn)行更新,直至該計(jì)算任務(wù)處理完成,不再更新該資源使用日志。302:根據(jù)預(yù)設(shè)計(jì)費(fèi)因素,確定該資源單價和該計(jì)費(fèi)策略;該預(yù)設(shè)計(jì)費(fèi)因素包括但不限于該計(jì)算任務(wù)的優(yōu)先級、促銷活動、忙時閑時情況等,綜合考慮該預(yù)設(shè)計(jì)費(fèi)因素,可以確定該資源單價和該計(jì)費(fèi)策略。如,該計(jì)算任務(wù)優(yōu)先級越高,該資源單價越高,或者,在進(jìn)行促銷活動時該資源單價減少,在忙時時段該資源單價增加等。本發(fā)明實(shí)施例中,該資源單價和計(jì)費(fèi)策略可以由運(yùn)營管理人員預(yù)先設(shè)定,并在用戶使用過程中進(jìn)行修改,如增加或刪除促銷活動等項(xiàng)目,改變資源單價等,本發(fā)明實(shí)施例對此不做限定。由于步驟303中需要根據(jù)該資源單價和該計(jì)費(fèi)策略生成該計(jì)算任務(wù)的計(jì)費(fèi)報表,因此在執(zhí)行步驟303之前,需要確定該資源單價和該計(jì)費(fèi)策略,即該步驟302需在步驟303之前執(zhí)行。303:根據(jù)該資源使用日志、資源單價和計(jì)費(fèi)策略,生成該計(jì)算任務(wù)的計(jì)費(fèi)報表。本發(fā)明實(shí)施例中,當(dāng)該計(jì)算任務(wù)處理完成時,根據(jù)該資源使用日志中記錄的該計(jì)算任務(wù)的詳細(xì)的資源使用情況和存儲空間占用情況以及資源單價和計(jì)費(fèi)策略,生成該計(jì)算任務(wù)的計(jì)費(fèi)報表,提供給用戶。需要說明的是,若在對該計(jì)算任務(wù)的處理過程中,改變了該資源單價和該計(jì)費(fèi)策略,則在生成計(jì)費(fèi)報表時,可以分別按照各個統(tǒng)計(jì)時間對應(yīng)的該資源單價和該計(jì)費(fèi)策略進(jìn)行計(jì)費(fèi),將各個統(tǒng)計(jì)時間的計(jì)費(fèi)結(jié)果匯總后生成計(jì)費(fèi)報表。例如,資源使用情況統(tǒng)計(jì)周期的時間跨度為△t,當(dāng)該計(jì)算任務(wù)在第一個統(tǒng)計(jì)周期t0-t0+△t的時間段內(nèi)的t1時刻統(tǒng)計(jì)到的內(nèi)存使用大小為3MB,t2時刻統(tǒng)計(jì)到的內(nèi)存使用大小為8MB,t3時刻統(tǒng)計(jì)到的內(nèi)存使用大小為4MB時,則可以計(jì)算出該第一個統(tǒng)計(jì)周期內(nèi)內(nèi)存使用大小的平均值為5MB;當(dāng)該計(jì)算任務(wù)在第二個統(tǒng)計(jì)周期t4-t4+△t的時間段內(nèi)的t4時刻統(tǒng)計(jì)到的內(nèi)存使用大小為2MB,t5時刻統(tǒng)計(jì)到的內(nèi)存使用大小為10MB,t6時刻所統(tǒng)計(jì)到的內(nèi)存使用大小為6MB時,則可以計(jì)算出該第二個統(tǒng)計(jì)周期內(nèi)內(nèi)存使用大小的平均值為6MB。當(dāng)根據(jù)計(jì)費(fèi)策略確定內(nèi)存的資源單價為S,且在第一個統(tǒng)計(jì)周期內(nèi)正常收費(fèi),在第二個統(tǒng)計(jì)周期內(nèi)五折促銷時,則該計(jì)算任務(wù)在第一個統(tǒng)計(jì)周期的計(jì)費(fèi)為5*△t*S,在第二個統(tǒng)計(jì)周期的計(jì)費(fèi)為(6*50%)*△t*S。又如,資源使用情況統(tǒng)計(jì)周期的時間跨度為△t,當(dāng)該計(jì)算任務(wù)在統(tǒng)計(jì)周期t0-t0+△t的時間段內(nèi)的t1時刻統(tǒng)計(jì)到的內(nèi)存使用大小為3MB,t2時刻統(tǒng)計(jì)到的內(nèi)存使用大小為8MB,t3時刻統(tǒng)計(jì)到的內(nèi)存使用大小為8MB,且當(dāng)根據(jù)計(jì)費(fèi)策略確定內(nèi)存的資源單價為S,在t1時刻和t2時刻正常收費(fèi),在t3時刻五折促銷時,則根據(jù)該計(jì)費(fèi)策略可以計(jì)算出內(nèi)存使用大小的平均值為(3+8+8*50%)/3=5MB,進(jìn)而得出該計(jì)算任務(wù)在該統(tǒng)計(jì)周期內(nèi)的計(jì)費(fèi)為5*△t*S。其中,該計(jì)費(fèi)報表可以列表的形式詳細(xì)記錄該計(jì)算任務(wù)的每個統(tǒng)計(jì)時間對應(yīng)的計(jì)費(fèi),也可以僅記錄該計(jì)算任務(wù)的總計(jì)費(fèi),本發(fā)明實(shí)施例對此不做限定。本發(fā)明實(shí)施例提供的方法,通過統(tǒng)計(jì)該MapReduce系統(tǒng)的計(jì)算任務(wù)的資源使用情況和該HDFS的存儲空間占用情況,生成該計(jì)算任務(wù)的資源使用日志;根據(jù)該資源使用日志、資源單價和計(jì)費(fèi)策略,生成該計(jì)算任務(wù)的計(jì)費(fèi)報表。采用本發(fā)明的技術(shù)方案,對于為用戶提供服務(wù)的分布式計(jì)算Hadoop平臺,通過對該計(jì)算任務(wù)的資源使用情況和存儲空間占用情況進(jìn)行統(tǒng)計(jì),并根據(jù)資源使用情況和存儲空間占用情況以及計(jì)費(fèi)策略生成該計(jì)算任務(wù)的計(jì)費(fèi)報表,對該計(jì)算任務(wù)進(jìn)行收費(fèi),提高了計(jì)費(fèi)的精確性,實(shí)現(xiàn)了計(jì)費(fèi)策略的靈活配置??蛇x地,統(tǒng)計(jì)所述MapReduce系統(tǒng)的計(jì)算任務(wù)的資源使用情況和所述HDFS的存儲空間占用情況,生成所述計(jì)算任務(wù)的資源使用日志,包括:以第一預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述資源使用情況;以第二預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述存儲空間占用情況;根據(jù)所述資源使用情況和所述存儲空間占用情況,生成所述計(jì)算任務(wù)的資源使用日志。可選地,以第一預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述資源使用情況包括:以第三預(yù)設(shè)時長為周期,采集所述資源使用情況,所述第三預(yù)設(shè)時長小于所述第一預(yù)設(shè)時長;以所述第一預(yù)設(shè)時長為周期,對所述資源使用情況進(jìn)行統(tǒng)計(jì)??蛇x地,所述MapReduce系統(tǒng)包括主節(jié)點(diǎn)Master和至少一個工作節(jié)點(diǎn)Worker,相應(yīng)地,以第一預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述資源使用情況,包括:以所述第三預(yù)設(shè)時長為周期,采集對應(yīng)Worker的資源使用情況;以所述第一預(yù)設(shè)時長為周期,對所有Worker的資源使用情況進(jìn)行統(tǒng)計(jì)??蛇x地,以第二預(yù)設(shè)時長為周期,統(tǒng)計(jì)所述存儲空間占用情況包括:以所述第二預(yù)設(shè)時長為周期,調(diào)用所述NameNode的接口,獲取存儲空間占用情況;對所述存儲空間占用情況進(jìn)行統(tǒng)計(jì)。上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。圖4是本發(fā)明實(shí)施例提供的一種用于Hadoop平臺的計(jì)費(fèi)方法的流程圖。所述Hadoop平臺包括:映射化簡MapReduce系統(tǒng)和分布式文件系統(tǒng)HDFS,其中,所述MapReduce系統(tǒng)包括:主節(jié)點(diǎn)Master和至少一個工作節(jié)點(diǎn)Worker,參見圖4,所述方法包括:401:每個Worker的資源采集子單元以時長t3為周期,采集MapReduce系統(tǒng)中的Worker的資源使用情況;本領(lǐng)域的技術(shù)人員可以獲知,用戶將需要處理的計(jì)算任務(wù)提交給Master,由Master將該計(jì)算任務(wù)劃分為多個子任務(wù),并根據(jù)Worker的工作狀態(tài),將該多個子任務(wù)分配給該至少一個Worker執(zhí)行。其中,該多個子任務(wù)包括Map任務(wù)和Reduce任務(wù),Map任務(wù)的輸出數(shù)據(jù)為Reduce任務(wù)的輸入數(shù)據(jù)。該資源使用情況包括但不限于該計(jì)算任務(wù)所屬用戶、IO使用情況、CPU使用情況、內(nèi)存使用情況和網(wǎng)絡(luò)流量。其中,CPU使用情況可以由采集到的CPU使用率與該時長t3的乘積確定。內(nèi)存使用情況可以由采集到的該計(jì)算任務(wù)正在使用的內(nèi)存與該時長t3的乘積確定。網(wǎng)絡(luò)流量是指該計(jì)算任務(wù)的計(jì)算結(jié)果傳輸?shù)狡渌鸚orker時產(chǎn)生的流量,不包括輸入數(shù)據(jù)的流量。IO使用情況是指Map任務(wù)讀取的輸入數(shù)據(jù)的大小。由于Map任務(wù)從本地或者網(wǎng)絡(luò)中讀取輸入數(shù)據(jù),在讀取數(shù)據(jù)時可能會因?yàn)镠adoop平臺的優(yōu)化不足而產(chǎn)生網(wǎng)絡(luò)流量,因此在這種情況下,將讀取輸入數(shù)據(jù)的大小計(jì)為IO使用情況,而不計(jì)入網(wǎng)絡(luò)流量。該步驟中,該時長t3可以為由技術(shù)人員預(yù)先設(shè)定的時長值,t3的值可以為0,即設(shè)置為實(shí)時地對該至少一個Worker的資源使用情況進(jìn)行采集,本發(fā)明實(shí)施例對此不做限定。402:位于Master的資源統(tǒng)計(jì)子單元以時長t1為周期,對所有Worker的資源使用情況進(jìn)行統(tǒng)計(jì),執(zhí)行步驟405;優(yōu)選地,每個Worker中均具有資源采集子單元,每個資源采集子單元負(fù)責(zé)每隔t3時長,對該Worker的資源使用情況進(jìn)行采集,保存采集到的數(shù)據(jù),并每隔t1時長,將采集到的資源使用情況發(fā)送至位于Master中的資源統(tǒng)計(jì)子單元,由資源統(tǒng)計(jì)子單元對Worker的資源使用情況進(jìn)行匯總統(tǒng)計(jì),以便獲取該計(jì)算任務(wù)的資源使用情況??蛇x地,獲取到的任一個Worker的資源使用情況的具體數(shù)據(jù)格式為(資源使用大小*使用時長),根據(jù)該資源使用情況格式可以獲知在該統(tǒng)計(jì)周期內(nèi)的資源使用大小,且便于在后續(xù)的計(jì)費(fèi)過程中根據(jù)各個統(tǒng)計(jì)時間段的資源使用大小和相應(yīng)的時間直接進(jìn)行計(jì)算。其中,時長t3小于時長t1,即以t3為采集周期,采集該計(jì)算任務(wù)的該至少一個Worker的資源使用情況,并以t1為統(tǒng)計(jì)周期,在進(jìn)行了多次采集之后,將在以t1為時間間隔的統(tǒng)計(jì)周期內(nèi)多次采集到的該計(jì)算任務(wù)的資源使用情況進(jìn)行匯總統(tǒng)計(jì),實(shí)現(xiàn)了在處理該計(jì)算任務(wù)的過程中不斷地對采集到的資源使用情況進(jìn)行統(tǒng)計(jì),避免了在該計(jì)算任務(wù)處理完成時一次性對多次采集到的資源使用情況進(jìn)行統(tǒng)計(jì)而造成延時或者網(wǎng)絡(luò)負(fù)擔(dān)。403:位于Master的接口調(diào)用子單元以時長t2為周期,調(diào)用該NameNode的接口,獲取存儲空間占用情況;本領(lǐng)域的技術(shù)人員可以獲知,通過調(diào)用HDFS的主節(jié)點(diǎn)NameNode的接口,即可獲取該計(jì)算任務(wù)的存儲空間占用情況。本發(fā)明實(shí)施例中,在處理該計(jì)算任務(wù)的過程中,以t2為周期獲取存儲空間占用情況,該存儲空間占用情況包括該計(jì)算任務(wù)所需的元數(shù)據(jù)占用的存儲空間和當(dāng)前該計(jì)算任務(wù)的中間數(shù)據(jù)所占用的存儲空間。其中,每個計(jì)算任務(wù)所需的元數(shù)據(jù)變化不大,占用的存儲空間也沒有明顯的變化,而計(jì)算過程是動態(tài)的,在計(jì)算過程中產(chǎn)生的中間數(shù)據(jù)的變化很大,相應(yīng)地,占用的存儲空間的變化很大,因此,為了在保證精確地獲取存儲空間占用情況的同時,降低流程的復(fù)雜度,可以在調(diào)用NameNode的接口獲取存儲空間占用情況時,以較小的周期t2獲取中間數(shù)據(jù)占用的存儲空間,以較大的周期t0獲取元數(shù)據(jù)占用的存儲空間。404:位于Master的空間統(tǒng)計(jì)子單元對該存儲空間占用情況進(jìn)行統(tǒng)計(jì),執(zhí)行步驟405;該存儲空間占用情況包括中間數(shù)據(jù)占用的存儲空間和元數(shù)據(jù)占用的存儲空間,在到達(dá)統(tǒng)計(jì)時間時,獲取到的存儲空間占用情況即為當(dāng)前中間數(shù)據(jù)占用的存儲空間與當(dāng)前元數(shù)據(jù)占用的存儲空間之和,對這兩部分存儲空間進(jìn)行統(tǒng)計(jì);在當(dāng)前統(tǒng)計(jì)完成后,將當(dāng)前統(tǒng)計(jì)的存儲空間占用情況與之前統(tǒng)計(jì)的所有存儲空間占用情況匯總,統(tǒng)計(jì)該計(jì)算任務(wù)當(dāng)前的總存儲空間占用情況。在該計(jì)算任務(wù)的處理過程中,對該計(jì)算任務(wù)的存儲空間占用情況不斷進(jìn)行疊加求和,以便在該計(jì)算任務(wù)處理完成時,快速獲取該計(jì)算任務(wù)的總存儲空間占用情況,減少延時??蛇x地,為了便于在后續(xù)過程中對該資源使用情況和存儲空間占用情況進(jìn)行統(tǒng)計(jì),該周期t2與該周期t1相等;該對所有Worker的資源使用情況進(jìn)行統(tǒng)計(jì)的過程和對該存儲空間占用情況進(jìn)行統(tǒng)計(jì)的過程可以同時進(jìn)行,也可以一前一后進(jìn)行,本發(fā)明實(shí)施例對此不做限定。在上述兩個過程執(zhí)行結(jié)束后,執(zhí)行步驟405。405:位于Master的日志生成單元根據(jù)該資源使用情況和該存儲空間占用情況,生成該計(jì)算任務(wù)的資源使用日志;將統(tǒng)計(jì)到的該計(jì)算任務(wù)的資源使用情況和存儲空間占用情況進(jìn)行匯總,生成該計(jì)算任務(wù)的資源使用日志。該生成過程在每個統(tǒng)計(jì)周期中對所有Worker的資源使用情況進(jìn)行統(tǒng)計(jì)的過程和對該存儲空間占用情況進(jìn)行統(tǒng)計(jì)的過程均執(zhí)行結(jié)束后即可進(jìn)行,即在該計(jì)算任務(wù)的處理過程中,按照設(shè)置的統(tǒng)計(jì)周期不斷地添加最新統(tǒng)計(jì)到的資源使用情況和存儲空間占用情況,對該資源使用日志進(jìn)行更新,直至該計(jì)算任務(wù)處理完成。在上述步驟401-405中,以該時長t3為周期,采集該至少一個Worker的資源使用情況,以該時長t1為周期,對所有Worker的資源使用情況進(jìn)行統(tǒng)計(jì),實(shí)現(xiàn)對該計(jì)算任務(wù)的資源使用情況的統(tǒng)計(jì),并以該時長t2為周期,調(diào)用HDFS的主節(jié)點(diǎn)NameNode的接口,獲取存儲空間占用情況,并對所述存儲空間占用情況進(jìn)行統(tǒng)計(jì),在每個統(tǒng)計(jì)周期中對所有Worker的資源使用情況進(jìn)行統(tǒng)計(jì)的過程和對該存儲空間占用情況進(jìn)行統(tǒng)計(jì)的過程均執(zhí)行結(jié)束后,即可生成資源使用日志,即在該計(jì)算任務(wù)的處理過程中,按照設(shè)置的統(tǒng)計(jì)周期不斷地添加最新統(tǒng)計(jì)到的資源使用情況和存儲空間占用情況,對該資源使用日志進(jìn)行更新,直至該計(jì)算任務(wù)處理完成。406:該計(jì)費(fèi)模塊根據(jù)該資源使用日志、資源單價和計(jì)費(fèi)策略,生成該計(jì)算任務(wù)的計(jì)費(fèi)報表。本發(fā)明實(shí)施例中,當(dāng)該計(jì)算任務(wù)處理完成時,根據(jù)該資源使用日志中記錄的該計(jì)算任務(wù)的詳細(xì)的資源使用情況和存儲空間占用情況以及資源單價和計(jì)費(fèi)策略,生成該計(jì)算任務(wù)的計(jì)費(fèi)報表,提供給用戶。具體地,對于該資源使用日志中記錄的該計(jì)算任務(wù)的每個統(tǒng)計(jì)時間,查詢該統(tǒng)計(jì)時間對應(yīng)的資源單價和計(jì)費(fèi)策略,并根據(jù)該統(tǒng)計(jì)時間對應(yīng)的資源使用情況和存儲空間占用情況,確定該統(tǒng)計(jì)時間的計(jì)費(fèi)。對該資源使用日志中記錄的每個統(tǒng)計(jì)時間分別進(jìn)行計(jì)費(fèi),最終,將每個統(tǒng)計(jì)時間對應(yīng)的計(jì)費(fèi)匯總,得出該計(jì)算任務(wù)的總計(jì)費(fèi),生成該計(jì)算任務(wù)的計(jì)費(fèi)報表。該計(jì)費(fèi)報表可以列表的形式詳細(xì)記錄每個統(tǒng)計(jì)時間對應(yīng)的計(jì)費(fèi),也可以僅記錄該計(jì)算任務(wù)的總計(jì)費(fèi),本發(fā)明實(shí)施例對此不做限定。該步驟406之前,所述方法還包括:400:該配置模塊根據(jù)預(yù)設(shè)計(jì)費(fèi)因素,確定該資源單價和該計(jì)費(fèi)策略;該預(yù)設(shè)計(jì)費(fèi)因素可以默認(rèn)設(shè)置,也可以由運(yùn)營管理人員進(jìn)行添加或刪除等修改操作。在執(zhí)行步驟406時,按照每個統(tǒng)計(jì)時間對應(yīng)的資源單價和計(jì)費(fèi)策略進(jìn)行計(jì)費(fèi)即可。本發(fā)明實(shí)施例提供的方法,通過統(tǒng)計(jì)該MapReduce系統(tǒng)的計(jì)算任務(wù)的資源使用情況和該HDFS的存儲空間占用情況,生成該計(jì)算任務(wù)的資源使用日志;根據(jù)該資源使用日志、資源單價和計(jì)費(fèi)策略,生成該計(jì)算任務(wù)的計(jì)費(fèi)報表。采用本發(fā)明的技術(shù)方案,對于為用戶提供服務(wù)的分布式計(jì)算Hadoop平臺,通過對該計(jì)算任務(wù)的資源使用情況和存儲空間占用情況進(jìn)行統(tǒng)計(jì),并根據(jù)資源使用情況和存儲空間占用情況以及計(jì)費(fèi)策略生成該計(jì)算任務(wù)的計(jì)費(fèi)報表,對該計(jì)算任務(wù)進(jìn)行收費(fèi),提高了計(jì)費(fèi)的精確性,實(shí)現(xiàn)了計(jì)費(fèi)策略的靈活配置。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。