±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚÌÚÑ¶ÔÆ£¬±¾ÎÄÊ×ÏȽéÉÜÁËHadoopÖеÄResourceManagerÖеÄestimator
serviceµÄ¿ò¼ÜÓëÔËÐÐÁ÷³Ì£¬È»ºó¶ÔÆäÖÐÓõ½µÄ×ÊÔ´¹ÀËãËã·¨½øÐÐÁËÔÀíÆÊÎö¡£ |
|
Ò». Resource Estimator ServiceµÄ³ö·¢µãÓëÄ¿±ê
¹À¼Æ×÷ÒµÔËÐÐʹÓÃ×ÊÔ´ÊÇ´óÊý¾Ý´¦Àí¼¯ÈºµÄÒ»¸öÖØÒªÇÒ¾ßÓÐÌôÕ½ÐÔµÄÎÊÌâ¡£Ëæ×ÅÓû§Ê¹Óõļ¯Èº×ÊÔ´Ô½À´Ô½¶à£¬ÕâÒ»ÐèÇó±»Öð½¥·Å´ó¡£µ±Ç°ÏÖÓеĽâ¾ö·½°¸Ò»°ãÊÇÒÀÀµÓÚÓû§µÄ¾ÑéÀ´¶Ô×÷Òµ×ÊÔ´ÐèÇó½øÐйÀ¼Æ£¬ÕâÑù¼´·±ËöÓÖµÍЧ¡£¸ù¾Ý¶Ô¼¯Èº¹¤×÷¸ºÔصķÖÎö£¬¿ÉÒÔ·¢Ïִ󲿷ֹ¤×÷(³¬¹ý60%)ÊÇÖØ¸´¹¤×÷£¬ÕâÑùÎÒÃDZãÓлú»á¸ù¾Ý×÷ÒµÀúÊ·×ÊԴʹÓÃÇé¿öÀ´¹À¼Æ×÷ÒµÏÂÒ»´ÎµÄ×ÊÔ´ÐèÇóÁ¿¡£Í¬Ê±£¬ÔÚδÀ´£¬Ï£ÍûÄÜÌá³öÒ»ÖÖÓë¿ò¼ÜÎ޹صĺںнâ¾ö·½°¸¡£ÕâÑù£¬¼´Ê¹×÷ÒµÀ´×Ô²»Í¬µÄ¼ÆËã¿ò¼Ü£¬ÎÒÃÇÒ²ÄܶÔÖØ¸´ÐÔ×÷Òµ½øÐÐ×ÊÔ´ÐèÇó¹ÀËã¡£
¶þ. Resource Estimator ServiceµÄ¿ò¼Ü½á¹¹

Hadoop-resource estimatorÖ÷ÒªÓÉÈý¸öÄ£¿é×é³É£ºTranslator£¬SkylineStoreºÍEstimator¡£ÏÂÃæ·Ö±ð½éÉÜÕâÈý²¿·Ö¡£
1.ResourceSkylineÓÃÀ´±íÕ÷×÷ÒµÔÚÆäÉúÃüÖÜÆÚÖеÄ×ÊÔ´ÀûÓÃÂÊ¡£ËüʹÓÃRLESparseResourceAllocation¼Ç¼ÈÝÆ÷·ÖÅäµÄÐÅÏ¢¡£RecurrenceIdÓÃÓÚ±êÊ¶ÖØ¸´pipelineµÄÌØ¶¨ÔËÐС£pipeline¿ÉÒÔ°üº¬¶à¸ö×÷Òµ£¬Ã¿¸ö×÷Òµ¶¼ÓÐÒ»¸öResourceSkylineÀ´±íÕ÷Æä×ÊÔ´ÀûÓÃÂÊ¡£
2.TranslatorÓÃÀ´½âÎö×÷ÒµÈÕÖ¾£¬ÌáÈ¡ËûÃǵÄResourceSkylines²¢½«ËüÃÇ´æ´¢µ½SkylineStore¡£SingleLineParser½âÎöÈÕÖ¾Á÷ÖеÄÒ»Ðв¢ÌáÈ¡ResourceSkyline¡£
3.SkylineStore³äµ±Hadoop-resource estimatorµÄ´æ´¢²ã£¬ÓÉ2²¿·Ö×é³É¡£HistorySkylineStore´æ´¢ÓÉת»»³ÌÐòÌáÈ¡µÄResourceSkylines¡£ËüÖ§³ÖËÄÖÖ²Ù×÷£ºaddHistory£¬deleteHistory£¬updateHistoryºÍgetHistory¡£addHistory½«ÐµÄResourceSkylines¸½¼Óµ½¶¨ÆÚpipeline£¬¶øupdateHistoryɾ³ýÌØ¶¨¶¨ÆÚpipelineµÄËùÓÐResourceSkyline£¬²¢ÖØÐ²åÈëеÄResourceSkylines¡£PredictionSkylineStore´æ´¢ÓÉEstimatorÉú³ÉµÄÔ¤²âRLESparseResourceAllocation¡£ËüÖ§³ÖÁ½¸ö²Ù×÷£ºaddEstimationºÍgetEstimation¡£
4.Estimator¸ù¾ÝÀúÊ·¼Ç¼ÔËÐÐÔ¤²âÖØ¸´³öÏÖµÄpipeline×ÊÔ´ÐèÇ󣬽«Ô¤²â´æ´¢µ½SkylineStore²¢ÔÚYARNÉϽøÐÐ×ÊÔ´Ô¤Áô¡£Solver¶ÁÈ¡ÌØ¶¨¶¨ÆÚpipelineµÄËùÓÐÀúÊ·ResourceSkylines£¬²¢Ô¤²âÆä°üº¬ÔÚRLESparseResourceAllocationÖеÄÐÂ×ÊÔ´ÐèÇó¡£Ä¿Ç°£¬Hadoop-resource
estimatorÌṩÁËÒ»¸öLPSOLVERÀ´½øÐÐÔ¤²â£¨ÆäÖÐÓõ½µÄË㷨ģÐÍ»áÔÚºóÃæ½øÐн²½â£©¡£
Èý.ÒÔʾÀýdemoÑÝʾÆäÔËÐÐÁ÷³Ì
Resource Estimator ServiceµÄURIÊÇhttp://0.0.0.0£¬Ä¬ÈÏ·þÎñ¶Ë¿ÚÊÇ9998
(ÔÚ$ ResourceEstimatorServiceHome/conf/resourceestimator-config.xml¡±
ÖÐÅäÖÃ)¡£ ÔÚ$ ResourceEstimatorServiceHome/dataÖУ¬ÓÐÒ»¸öʾÀýÈÕÖ¾ÎļþresourceEstimatorService.txt£¬ÆäÖаüº¬2´ÎÔËÐеÄtpch_q12²éѯ×÷ÒµµÄÈÕÖ¾¡£½øÐÐ×ÊÔ´Ô¤²âÖ÷ÒªÓÐÒÔϼ¸¸ö²½Ö裺
1.½âÎö×÷ÒµÈÕÖ¾£º
POST
http://URI:port/resourceestimator/translator
/LOG_FILE_DIRECTORY |
·¢ËÍ
POST
http://0.0.0.0:9998/resourceestimator/translator
/data/resourceEstimatorService.txt |
underlying estimator½«´ÓÈÕÖ¾ÎļþÖÐÌáÈ¡ResourceSkylines²¢½«ËüÃÇ´æ´¢ÔÚjobHistory
SkylineStoreÖС£
2.²éѯ×÷ÒµµÄÀúÊ·ResourceSkylines£º
GET
http://URI:port/resourceestimator/skylinestore/
history/{pipelineId}/{runId} |
·¢ËÍ
GET
http://0.0.0.0:9998/resourceestimator/
skylinestore/history/*/* |
underlying estimator½«·µ»ØÀúÊ·SkylineStoreÖеÄËùÓмǼ¡£ÔÚʾÀýÎļþÖÐÄܹ»¿´µ½Á½´ÎÔËÐÐtpch_q12µÄResourceSkylines£ºtpch_q12_0ºÍtpch_q12_1¡£
3.Ô¤²â×÷ÒµµÄ×ÊԴʹÓÃÇé¿ö£º
GET
http://URI:port/resourceestimator/estimator/{pipelineId} |
·¢ËÍ
http://0.0.0.0:9998/resourceestimator/estimator/tpch_q12 |
estimator½«¸ù¾ÝÆäÀúÊ·ResourceSkylinesÔ¤²âÐÂÔËÐеÄ×÷Òµ×ÊÔ´ÐèÇ󣬲¢½«Ô¤²âµÄ×ÊÔ´ÐèÇó´æ´¢µ½jobEstimation
SkylineStore¡£
4.²éѯ×÷ÒµµÄÔ¤²â×ÊÔ´Çé¿ö£º
GET
http://URI:port/resourceestimator/skylinestore
/estimate/{pipelineId} |
·¢ËÍ
http://0.0.0.0:9998/resourceestimator/skylinestore
/estimation/tpch_q12 |
¹ÀËãÆ÷½«·µ»Øtpch_q12×÷Òµ×ÊÔ´Ô¤²âÇé¿ö¡£
5.ɾ³ý×÷ÒµµÄÀúÊ·×ÊÔ´Çé¿öÊý¾Ý£º
DELETE
http://URI:port/resourceestimator/skylinestore
/history/{pipelineId}/{runId} |
·¢ËÍ
http://0.0.0.0:9998/resourceestimator/skylinestore
/history/tpch_q12/tpch_q12_0 |
underlying estimator½«É¾³ýtpch_q12_0µÄResourceSkyline¼Ç¼¡£ÖØÐ·¢ËÍ
GET
http://0.0.0.0:9998/resourceestimator/
skylinestore/history/*/* |
ËÄ.×ÊÔ´Ô¤²âËã·¨ÖÐÓõ½µÄÊý¾Ý½éÉÜ
Hadoop-resource estimatorµÄTranslator×é¼þ»á½âÎöÈÕÖ¾²¢½«Æä°´ÕÕÒ»¶¨¹æ·¶µÄ¸ñʽ½øÐÐÆ´½Ó£¬ÏÂÃæ¸ø³öÁËʾÀýÖеÄ×ÊÔ´ÀúʷʹÓÃÊý¾ÝºÍÔ¤²â×ÊÔ´Êý¾Ý£¬¿ÉÒÔ¿´µ½×÷ÒµµÄÀúÊ·×ÊԴʹÓÃÊý¾ÝÊÇͬһ¸öjobµÄÁ½´Îrun£¬·Ö±ðΪtpch_q12_0ºÍtpch_q12_1,ÆäÖ÷Òª¸ø³öÁËËæÊ±¼ä±ä»¯µÄmemoryºÍcpuµÄʹÓÃÇé¿ö¡£ÆäÖеÚ0ʱ¼äµ¥Î»±íʾµÄÊÇcontainer¹æ¸ñ£¬Îªmemory:1024,vcores:1£¬µÚ25ʱ¼äµ¥Î»Îª×÷Òµ½áÊøÊ±¿Ì£¬memoryºÍcpu½ÔΪ0¡£¿ÉÒÔ¿´µ½Ô¤²âÊý¾Ý¸ù¾ÝÀúÊ·Êý¾Ý¸ø³öÁË10~25ʱ¼äµ¥Î»µÄ×ÊÔ´Ô¤²âÊý¾Ý¡£
ÀúÊ·×ÊԴʹÓÃÊý¾Ý:
[[{"pipelineId":"tpch\_q12","runId":"tpch\_q12\_0"},
[{"jobId":"tpch\_q12\_0","jobInputDataSize":0.0,
"jobSubmi
ssionTime":0,"jobFinishTime":25,"containerSpec":
{"memory":1024,"vcores":1},
"skylineList":
{"resourceAllocation":{
"0":{"memory":1024,"vcores":1},
"10":{"memory":1099776,"vcores":1074},
"15":{"memory":2598912,"vcores":2538},
"20":{"memory":2527232,"vcores":2468},
"25":{"memory":0,"vcores":0}}}}]],
[{"pipelineId":"tpch\_q12","runId":"tpch\_q12\_1"},
[{"jobId":"tpch\_q12\_1","jobInputDataSize":0.0,
"jobSubmi
ssionTime":0,"jobFinishTime":25,"containerSpec":
{"memory":1024,"vcores":1},
"skylineList":
{"resourceAllocation":{
"0":{"memory":1024,"vcores":1},
"10":{"memory":813056,"vcores":794},
"15":{"memory":2577408,"vcores":2517},
"20":{"memory":2543616,"vcores":2484},
"25":{"memory":0,"vcores":0}}}}]]] |
Ô¤²âÊý¾Ý:
{"resourceAllocation":
"10":{"memory":1083392,"vcores":1058},
"15":{"memory":2598912,"vcores":2538},
"20":{"memory":2543616,"vcores":2484},
"25":{"memory":0,"vcores":0}}} |
Îå.Resource Estimator ServiceËã·¨¿ò¼ÜÓëÔÀí
ÔÚ±¾²¿·Ö½«Öصã½éÉÜÒ»ÏÂestimatorÖÐÓõ½µÄ×ÊÔ´Ô¤²âËã·¨ÔÀí¡£´ËËã·¨ÓÉ΢ÈíÌá³ö£¬ÆäÁ´½ÓÔÚÎÄÄ©²Î¿¼×ÊÁÏÖиø³ö¡£ÏÂͼÊÇestimatorµÄÔËÐпò¼Ü£¬¿ÉÒÔ¿´µ½ÆäÖ÷ÒªÓÉÈý²¿·Ö×é³É£¬ÏÂÃæ·Ö±ð½éÉÜÕâÈý²¿·Ö¡£

Automatic interence,ÌáÈ¡³ö×÷ÒµµÄÔËÐÐʱ¼äºÍÀúÊ·×ÊԴʹÓÃÇé¿ö¡£
(a) Extractor of target,ÄÜÌáÈ¡³ö×÷ÒµµÄÔËÐпªÊ¼Óë½áÊøÊ±¼ä¡£
(b) Job resource model,ÄÜÌáÈ¡³ö×÷ÒµµÄ×ÊԴʹÓÃÇé¿ö,ÀýÈç×÷Òµ×ÊÔ´ËæÊ±¼äÔËÐеı仯Çé¿öºÍ×ÊԴʹÓÃ×ÜÁ¿¡£
Recurring Reservation,´Ë²¿·Ö°üÀ¨ÓÐJob Resource Model£¬¿ÉÒÔ¸ù¾Ý×÷ÒµÀúÊ·ÔËÐÐʱ¼äÓë×÷ÒµÀúÊ·×ÊԴʹÓÃÇé¿ö¸ø³öÏÂÒ»ÈÎÎñµÄ×ÊԴʹÓÃÇé¿ö¡£
(a) ͨ¹ý¸Ä±ä²ÎÊý¦Á£¬¿ÉÒÔ¿ØÖÆestimatorÔÚ·ÖÅä×ÊÔ´µÄʱºòÊDzàÖØ¹ý·ÖÅ仹ÊDzàÖØÇ··ÖÅä¡£
(b) ¸ù¾Ý×÷Òµ×ÊÔ´Ô¤²âÄ£Ð͸ø³öµÄÔ¤²âֵΪ×÷ÒµÔÚÔÀ´·ÖÅäµÄ×ÊÔ´µÄ»ù´¡ÉÏÌí¼Ó×ÊÔ´Ìí¼Óagenda¡£´ËjobÏÂÒ»¸örun¾ÍÔËÐÐÔÚ´Ë×ÊÔ´·ÖÅäµÄ»ù´¡ÉÏ¡£
Dynamic Reprovisioning£¬´Ë²¿·Ö¸ù¾ÝÇ°Ãæ¸ø³öµÄ×ÊÔ´agenda,¶¯Ì¬µ÷Õû×÷ÒµµÄÿ¸öÔËÐн׶εÄ×ÊÔ´·ÖÅä¡£
Áù.Ëã·¨ÔÀíÆÊÎö
΢ÈíÌá³öµÄ´Ë×ÊÔ´·ÖÅäËã·¨±¾ÖÊÉÏÊÇÒ»ÖÖ×îÓÅ»¯Ëã·¨£¬ÆäÓÅ»¯µÄÄ¿±êº¯ÊýÊÇÓÉÁ½²¿·Ö×é³ÉµÄÏßÐÔ×éºÏ£¬ÏÂÎÄÖÐstageµÄ¸ÅÄîÊÇָÿ¸öjobµÄÔËÐÐÆÚ¼ä°´ÕÕÒ»¶¨¹æÔò»®·Ö³É¶à¸öʱ¼äƬ£¬Ã¿¸öʱ¼äƬ³ÆÖ®ÎªÒ»¸östage£¬ÏÂÃæ·Ö²½Öè²ûÊöÆäËã·¨ÔÀí¡£
1.Ê×Ïȶ¨ÒåÒ»¸öÄ¿±êº¯Êý£¬Ò²¿ÉÒÔ³ÆÖ®ÎªËðʧº¯Êý£¬¼´ÎÒÃÇÓÅ»¯µÄÄ¿±ê¡£ÔÚ´ËËã·¨ÖÐÓɹý·ÖÅäºÍÇ··ÖÅä×é³ÉµÄÏßÐÔ×éºÏ×é³ÉËðʧº¯Êýcostfunction¡£Ä¿±ê¾ÍÊÇ,ÏÂͼ±È½ÏÖ±¹ÛµÄÏÔʾÁËestimatorÔÚÔ¤²â×ÊԴʱµÄÒ»ÖÖ¹ý·ÖÅäÓëÇ··ÖÅäµÄÇé¿ö¡£

2.Õë¶Ôÿ¸östage,´ËËã·¨µÄ²ßÂÔ¾ÍÊÇÑ¡Ôñ¿ÉÒÔʹµÃcostfunction×îСµÄ×ÊÔ´·ÖÅ䷽ʽ£¬¼´Ñ¡ÔñÒ»¸öֵʹµÃcostfunction×îС£¬¼´µÃµ½,¼´Ã¿Ò»¸östageÉϵÄ×ÊÔ´·ÖÅäÖµ¡£
ÒòΪ·ÖÅäÖµÊǹ̶¨¹æ¸ñµÄ±¶Êý£¬ËùÒÔÔÚʵÏÖʱ¿ÉÒÔͨ¹ý¼òµ¥µÄforÑ»·»òÕßһЩ×îÓÅ»¯Ëã·¨±ÈÈçÅÀɽ·¨»òÕßÒÏȺËã·¨¾Í¿ÉÒÔ¿ìËٵõ½×îСֵ¡£
3.×ܽ᣺Ëã·¨ÖеÄ×ö·¨ÊÇÕë¶ÔÒ»¸öjob£¬¸ù¾ÝÆäÀúÊ·ÔËÐÐʱ¼äÄõ½Æä×÷Òµ¿ªÊ¼ºÍ½áÊøÊ±¼ä£¬ÔÚÕâʱ¼ä¶ÎÄÚ°´ÕÕÒ»¶¨¹æÔò»®·Öʱ¼äƬ£¬Ã¿Ò»¸öʱ¼äƬΪһ¸östage£¬¸ù¾Ýͬһjob¶à´ÎrunµÄÀúÊ·×ÊԴʹÓÃÇé¿öÀ´Ô¤²âÏÂÒ»runµÄ×ÊԴʹÓÃÇé¿ö¡£Æäÿ´ÎÅäÖõIJßÂÔÊÇʹµÃcostfunction×îС¡£costfunctionÊǹý·ÖÅäÓëÇ··ÖÅäµÄÒ»¸öÏßÐÔ×éºÏ¡£
Æß.Ëã·¨µÄ²âÊÔЧ¹û
ÔÚ±¾´Î²âÊÔÖÐÔËÐÐtpch_q12×÷Òµ9´Î£¬²¢ÔÚÿ´ÎÔËÐÐÖÐÊÕ¼¯×÷ÒµµÄ×ÊÔ´skylines¡£È»ºó£¬ÔÚResource
Estimator ServiceÖÐÔËÐÐÈÕÖ¾½âÎöÆ÷£¬´ÓÈÕÖ¾ÖÐÌáÈ¡ResourceSkylines²¢½«ËüÃÇ´æ´¢ÔÚSkylineStoreÖС£ÏÂÃæ»æÖÆÁË×÷ÒµµÄResourceSkylinesÒÔ½øÐÐÑÝʾ¡£

ÔÚResource Estimator ServiceÖÐÔËÐйÀËãÆ÷À´Ô¤²âÐÂÔËÐеÄ×ÊÔ´ÐèÇó,ÏÂÃæ»æÖÆÁËÔ¤²âµÄ×ÊÔ´ÐèÇóÊý¾Ý¡£¿ÉÒÔ¿´µ½Ô¤²âÊý¾Ý¸ù¾ÝÀúÊ·×ÊԴʹÓÃÇé¿ö½ÏºÃµØ±íÕ÷ÁËÏÂÒ»´ÎÔËÐеÄ×ÊԴʹÓÃÊý¾Ý£¬ÓÐÒ»¶¨µÄ²Î¿¼ÒâÒå¡£ÁíÍâÔÚʵ¼Ê³¡¾°ÒµÎñÉϵIJâÊÔЧ¹û»¹Óдý¿¼Ö¤¡£

|