±¾ÎÄÉîÈë½éÉÜÁËÈ¥ÄĶùÍøÀûÓÃMesosºÍDocker¹¹½¨Ë½ÓÐÔÆ·þÎñµÄÈ«¹ý³Ì£¬·ÖÏíÁË´ÓÎÞ״̬ӦÓÃÏòÓÐ״̬ӦÓÃÖð²½¹ý¶ÈµÄ¾ÑéÓëÐĵá£
ƽ̨¸ÅÀÀ
2014ÄêϰëÄê×óÓÒ£¬È¥ÄĶùÍê³ÉÁËÓйع¹½¨Ë½ÓÐÔÆ·þÎñµÄ¼¼Êõµ÷ÑУ¬²¢×îÖÕÅ͍ÁËDocker/MesosÕâÒ»·½°¸¡£ÏÂͼ1չʾÁËÈ¥ÄĶùÊý¾Ýƽ̨µÄÕûÌå¼Ü¹¹£º

ͼ1£ºÈ¥ÄĶùÊý¾Ýƽ̨µÄÕûÌå¼Ü¹¹
¸Ãƽ̨ĿǰÒÑʵÏÖÁËÈç϶àÏÄÜ£º
ÿÌì´¦ÀíÔ¼340ÒÚ/25TBµÄÊý¾Ý;
90%µÄÊý¾ÝÔÚ100msÄÚÍê³É´¦Àí;
×3h/24hµÄÊý¾Ý»Ø·Å;
˽ÓеÄElasticsearch Cloud;
×Ô¶¯»¯¼à¿ØÓ뱨¾¯¡£
ΪʲôѡÔñDocker/Mesos
ĿǰΪֹ£¬Õâ¸öÊý¾Ýƽ̨¿ÉÒÔ˵Êǹ«Ë¾Õû¸öÁ÷Êý¾ÝµÄÖ÷Òª³öÈë¿Ú£¬°üÀ¨Ë½ÓеÄElasticsearch CloudºÍ¼à¿Ø±¨¾¯Ö®ÀàµÄÊý¾Ý¡£ÄÇôΪʲôѡÔñDocker/Mesos?
Ñ¡ÔñDockerÓÐÁ½´óÔÒò¡£µÚÒ»¸öÊÇ´ò°ü£º¶ÔÓÚÔËάÀ´½²£¬ÒµÎñ´òÍê°üÖ®ºó£¬Ã¿ÌìÃæ¶ÔµÄÊÇÓýű¾·Ö·¢µ½»úÆ÷ÉÏʱËù³öÏֵĸ÷ÖÖÎÊÌâ¡£ÒµÎñ°üÊÇÒ»¸ö±È½ÏÉϲãµÄ»°Ì⣬ÕâÀï²»×öÉîÈëµÄÌÖÂÛ£¬ÕâÀï½²µÄ¡°´ò°ü¡±Ö¸Èí¼þµÄRuntime²ã¡£Èç¹ûÓÃDockerµÄ´ò°ü»úÖÆ£¬°Ñ×îÈÝÒ׳öÏÖÎÊÌâµÄRuntime°ü×°³É¾µÏñ²¢·ÅÔÚregistryÀÐèÒªµÄʱºòÄóöÀ´£¬ÄÇôÕû¸öƽ̨×î¶àÖ»Ö´ÐÐÒ»¸öÔ¶³Ì½Å±¾¾Í¿ÉÒÔÁË£¬ÕâÊÇÍŶÓ×î¿´ºÃµÄÒ»¸öÌØÐÔ¡£µÚ¶þ¸öÊÇÔËά£ºDockerÈ¡ÏûÁËÒÀÀµÏÞÖÆ£¬Ö»Òª¹¹½¨Ò»¸öÐéÄâ»·¾³»òÒ»¸öRuntimeµÄ¾µÏñ£¬¾Í¿ÉÒÔÖ±½ÓÀÈ¡µ½·þÎñÆ÷Éϲ¢Æô¶¯ÏàÓ¦µÄ³ÌÐò¡£´ËÍâDockerÔÚÇåÀíÉÏÒ²½ÏΪ¼òµ¥£¬²»ÐèÒª¿¼ÂÇ»·¾³Ð¶Ôز»¸É¾»µÈÎÊÌâ¡£
ÒÔ³£¼ûµÄ¼ÆËã¿ò¼ÜÀ´Ëµ£¬ËüÃDZ¾ÖÊÉÏÈÔÈ»ÊôÓÚÔËÐÐÔÚÆäÉϵÄJobµÄRuntime¡£×ÛºÏÉÏÊöÇé¿ö£¬ÍŶÓÑ¡ÔñÕë¶ÔRuntimeÈ¥´ò°ü¡£
Ñ¡ÔñMesosÊÇÒòΪËü×ã¹»¼òµ¥ºÍÎȶ¨£¬¶øÇÒÓµÓнϳÉÊìµÄµ÷¶È¿ò¼Ü¡£MesosµÄ¼òµ¥ÌåÏÖÔÚ£¬ÓëKubernetesÏà±ÈÆäËùÓй¦Äܶ¼´¦ÓÚÁÓÊÆ£¬ÉõÖÁ»á·¢ÏÖËü±¾Éí¶¼ÊDz»Ö§³Ö·þÎñµÄ£¬Óû§ÐèÒª½øÐжþ´Î¿ª·¢À´Âú×ãʵ¼ÊÒªÇ󣬰üÀ¨ÍøÂç²ã¡£²»¹ý£¬ÕâҲǡºÃÊÇËüµÄÇ¿Ïî¡£Mesos±¾ÉíÌṩÁ˺ܶàSDN½Ó¿Ú£¬»òÕßÊÇÓÐÄ£¿é¼ÓÔØ»úÖÆ£¬¿ÉÒÔ×ö×Ô¶¨ÒåÐ޸쬯½Ì¨¶¨Öƹ¦ÄܱȽÏÇ¿¡£ËùÒÔÓÃMesosµÄ·½°¸£¬ÐèÒª¿¼ÂÇÍŶÓÊÇ·ñ¿ÉÒÔHoldסÕû¸ö¿ª·¢¹ý³Ì¡£
´Ó¿ò¼Ü²ãÃæÀ´¿´£¬Marathon¿ÉÒÔÖ§³ÅÒ»²¿·Ö³¤ÆÚÔËÐеķþÎñ£¬ChronosÔò²àÖØÓÚ¶¨Ê±ÈÎÎñ/Åú´¦Àí¡£
ÒÔÏÂͼ2ÊÇMesosµÄÒ»¸ö¼òµ¥½á¹¹Í¼£º

ͼ2£ºMesos½á¹¹
Êý¾Ýƽ̨µÄ×îÖÕÄ¿±ê¼Ü¹¹ÈçÏÂͼ3Ëùʾ£º

ͼ3£ºÆ½Ì¨Ä¿±ê
×é¼þÈÝÆ÷»¯Ó벿Êð
×é¼þµÄÈÝÆ÷»¯·ÖΪJVMÈÝÆ÷»¯ºÍMesosÈÝÆ÷»¯¡£JVMÈÝÆ÷»¯ÐèҪעÒâÒÔϼ¸·½Ã棺
DZÔÚ´´½¨ÎļþµÄÅäÖö¼Òª×¢Òâ
java.io.tmpdir
-XX:HeapDumpPath
-Xloggc |
-Xloggc»á¼Ç¼GCµÄÐÅÏ¢µ½Öƶ¨µÄÎļþÖС£ÏÖÔÚºÜÉÙÓÐÖ±½ÓÓÃXLoggcÅäÖõÄÁË(ÒѾÓÃMXBean·½Ê½Ìæ´úÁË)¡£Èç¹ûÓбȽÏÀϵijÌÐòÊÇͨ¹ý-Xloggc´òÓ¡GCÈÕÖ¾µÄ»°£¬ÄÇôҪ¶îÍâ¹ÒÔØvolumeµ½ÈÝÆ÷ÄÚ¡£
Ê±ÇøÓë±àÂë
¨Cenv TZ=Asia/Shanghai
¨Cvolume /etc/localtime:/etc/localtime:ro
¨Cenv JAVA_TOOL_OPTIONS=¡± -Dfile.encoding=UTF-8
-Duser.timezone=PRC |
Ê±ÇøÊÇÁíÒ»¸ö×¢Òâµã¡£ÉÏÃæËùÁеÄÈýÖÖ²»Í¬µÄ·½·¨¶¼¿ÉÒԴﵽĿµÄ£¬ÆäÖеÚÒ»/Èý¸ö¿ÉÒÔдÔÚDockerfileÀҲ¿ÉÒÔÔÚdocker
runʱͨ¹ý¨Cenv´«Èë¡£µÚ¶þÖÖÖ»ÔÚdocker runʱͨ¹ývolume·½Ê½¹ÒÔØ¡£ÁíÍ⣬µÚÈýÖÖ¶îÍâÉèÖÃÁË×Ö·û¼¯±àÂë£¬ÍÆ¼öʹÓô˷½Ê½¡£
Ö÷¶¯ÉèÖÃheap
·ÀÖ¹ergonomicsÂÒËãÄÚ´æ
ÕâÊÇDockerÄÚ²¿ÊµÏÖµÄÎÊÌâ¡£¼´Ê¹¸øDockerÉèÖÃÄڴ棬ÈÝÆ÷ÄÚͨ¹ýfreeÃüÁî¿´µ½µÄÄÚ´æºÍËÞÖ÷»úµÄÄÚ´æÊÇÒ»ÑùµÄ¡£¶øJVMΪÁËʹÓ÷½±ã£¬»áĬÈÏÉèÖÃÒ»¸öÈË»ú¹¦ÄÜ»á¸ù¾Ýµ±Ç°»úÆ÷µÄÄÚ´æ¼ÆËãÒ»¸ö¶Ñ´óС£¬Èç¹ûÎÒÃDz»Ö÷¶¯ÉèÖÃJVM¶ÑÄÚ´æµÄ»°£¬ºÜÓпÉÄܼÆËã³öÒ»¸ö³¬¹ý
Memory CgroupÏÞÖÆµÄÄڴ棬Æô¶¯¾Íå´µô£¬ËùÒÔÐèҪעÒâÔÚÆô¶¯Ê±¾Í°ÑÄÚ´æÉèÖúá£
CMSÊÕ¼¯Æ÷Òªµ÷Õû²¢ÐжÈ
-XX:ParallelGCThreads=cpus
-XX:ConcGCThreads=cpus/2 |
CMSÊdz£¼ûµÄÊÕ¼¯Æ÷£¬ËüÉèÖò¢ÐжȵÄʱºòÊÇÈ¡»úÆ÷µÄºËÊýÀ´¼ÆËãµÄ¡£Èç¹û¸øÈÝÆ÷·ÖÅä2¸öCPU£¬JVMÈÔÈ»°´ÕÕËÞÖ÷»úµÄºËÊý³õʼ»¯ÕâЩÏß³ÌÊýÁ¿£¬GCµÄ»ØÊÕЧÂʻήµÍ¡£Ïë¹æ±ÜÕâ¸öÎÊÌâÓÐÁ½µã£¬µÚÒ»µãÊǹÒÔØ¼ÙµÄProcÎļþϵͳ£¬±ÈÈçLxcfs¡£µÚ¶þÖÖÊÇʹÓÃÀàËÆHyperµÄ»ùÓÚHypervisorµÄÈÝÆ÷¡£
MesosÈÝÆ÷»¯ÒªÇó¹Ø×¢Á½Àà²ÎÊý£ºÅäÖòÎÊýºÍrun²ÎÊý¡£
ÐèÒª¹Ø×¢µÄÅäÖòÎÊý
MESOS_systemd_enable_support
MESOS_docker_mesos_image
MESOS_docker_socket
GLOG_max_log_size
GLOG_stop_logging_if_full_disk |
MesosÊÇÅäÖòÎÊý×î¶àµÄ¡£ÔÚÎïÀí»úÉÏ£¬MesosĬÈÏʹÓÃϵͳµÄSystemd¹ÜÀíÈÎÎñ£¬Èç¹û°ÑMesosͨ¹ýDocker
runµÄ·½Ê½Æô¶¯ÆðÀ´£¬Óû§¾ÍÒª¹Øsystemd_Enable_support£¬·ÀÖ¹Mesos SlaveÀÈ¡ÈÝÆ÷ÔËÐÐʱÊý¾ÝÔì³É»ìÂÒ¡£
µÚ¶þ¸öÊÇDocker_Mesos_Image£¬Õâ¸öÅäÖøæËßMesos Slave£¬µ±Ç°ÊÇÔËÐÐÔÚÈÝÆ÷Äڵġ£ÔÚÎïÀí»ú»·¾³Ï£¬Mesos
Slave½ø³Ìå´µôÖØÆô£¬¡¢¾Í»á¸ù¾Ýexecutor½ø³Ì/ÈÝÆ÷µÄÃû×Ö×örecovery¶¯×÷¡£µ«ÊÇÔÚÈÝÆ÷ÄÚ£¬å´»úºóexecutorÈ«²¿»ØÊÕÁË£¬ÖØÆôÈÝÆ÷£¬SlaveÈÏΪÊÇÒ»¸öл·¾³£¬Ìø¹ý¸²¸Ç¶¯×÷²¢×Ô¶¯Ï·¢ÈÎÎñ£¬ËùÒÔÈÎÎñÓпÉÄÜ»á·¢ÖØ¡£
Docker_Socket»á¸æËßMesos£¬DockerÖ¸¶¨µÄÔ¶¶ËµØÖ·»ò±¾µØÎļþ£¬ÊÇĬÈϹҵ½MesosÈÝÆ÷ÀïµÄ¡£Óû§Èç¹ûÖ±½ÓÖ´ÐÐÎļþ£¬»áµ¼ÖÂÎļþ´íÎó£¬ÏûÏ¢µ÷ȡʧ°Ü¡£Õâ¸öʱºòÍÆ¼öÒ»¸ö¼òµ¥µÄ°ì·¨£º°Ñµ±Ç°ÎïÀí»úµÄĿ¼¹Òµ½ÈÝÆ÷Öв¢µ¥¶ÀÃüÃû£¬Ï൱ÓÚÔÚÈÝÆ÷ÄÚÖ±½Ó·ÃÎÊÕû¸öÎïÀí»úµÄ·¾¶£¬ÔÙÖØÐÂÖ¸¶¨ËüµÄµØÖ·£¬ÕâÑùÿ´ÎÒ»Óб䶯Mesos¾ÍÄܹ»·¢ÏÖ£¬×ö×Ô¼ºµÄÖ¸Áî¡£
ºóÃæÁ½¸öÊÇMesos LoggingÅäÖ㬵÷ÕûÉú³ÉloggingÎļþµÄһЩÐÐΪ¡£
ÐèÒª¹Ø×¢µÄrun²ÎÊý
¨Cpid=host
¨Cprivileged
¨Cnet=host (optional)
root user
Æô¶¯SlaveÈÝÆ÷µÄʱºò×îºÃ²»¼ÓPid Namespace£¬ÒòΪÈÝÆ÷ÄÚPid=1µÄ½ø³ÌÒ»°ã¶¼ÊÇÄãµÄÓ¦ÓóÌÐò£¬Ò×µ¼ÖÂ×Ó½ø³Ì¶¼ÎÞ·¨»ØÊÕ£¬»òÕß²ÉÓÃtiniÒ»ÀàµÄ½ø³ÌÆô¶¯Ó¦ÓôﵽÏàͬµÄÄ¿µÄ¡£¨CprivilegedºÍroot
userÖ÷ÒªÊÇÕë¶ÔMesosµÄ³Ö¾Ã»¯¾í¹¦ÄÜ£¬·ñÔòÎÞ·¨mountµ½ÈÝÆ÷ÄÚ£¬¨Cnet=hostÊdzöÓÚÍøÂçЧÂʵĿ¼ÂÇ£¬±Ï¾¹Ô´ÉúµÄbridgeģʽЧÂʱȽϵ͡£

ͼ4£ºÈ¥ÄĶùÊý¾Ýƽ̨²¿ÊðÁ÷³Ìͼ
ÉÏͼ4¾ÍÊÇÈ¥ÄĶùÊý¾Ýƽ̨²¿ÊðµÄÁ÷³Ìͼ¡£
»ùÓÚMarathonµÄStreamingµ÷¶È
ÄÃSpark on Mesos¼Ç¼×Ó£¬¼´Ê¹ÊÇ»ùÓÚSparkµÄMarathonµ÷¶È£¬Ò²ÐèÒªÓû§¿ª·¢Ò»¸öFrameworks¡£ÉÏÉú²úÐèÒªºÜ¶à´úÂ룬ÍŶÓ֮ǰ´úÂë¼Óµ½½«½üһǧ£¬ÓÃÀ´×¨ÃŽâ¾öSparkÔËÐÐÔÚMasterÖеÄÎÊÌ⣬µ«ÊÇÆäÖÐÒ»¸öÈí¼þ¾³£Åܵ½Master£¬¶Ôÿһ¸ö¿ò¼ÜÐ´ÖØ¸´ÐÔ´úÂ룬¶øÇÒÄÚ²¿Âß¼ºÜÄѸ´Óã¬ËùÒÔÍŶӿ¼ÂǰÑÉϲãµÄ¶«Î÷È«¶¼ÅÜÔÚÒ»¸öͳһ¿ò¼ÜÀÀýÈçºóÃæµÄÔËάºÍÀ©ÈÝ£¬¶¼Õë¶ÔÕâÒ»¸ö¿ò¼Ü×ö¾Í¿ÉÒÔÁË¡£ÍŶÓ×îÖÕÑ¡ÔñÁËMarathon£¬°ÑSpark×÷ΪMarathonµÄÒ»¸öÈÎÎñ·¢ÏÂÈ¥£¬ÈÃSparkÔÚMarathonÀï×ö·Ö·¢¡£
³ýÈ¥Ìṩά±ê×¼»¯ºÍ×Ô¶¯»¯Í⣬»ùÓÚSparkµÄMarathon»¹¿ÉÒÔ½â¾öMesos-DispatcherµÄһЩÎÊÌ⣺
ÅäÖò»ÄÜÕýȷͬ²½;ÕâÒ»¿é¸üÐÂÆµÂÊÌØ±ðÂý£¬Ä¬ÈÏËÙ¶ÈÒ²ºÜÂý£¬ËùÒÔÐèÒª×Ô¼ºÀ´Î¬»¤Ò»¸ö°æ±¾¡£µÚÒ»¸öÅäÖò»ÄÜÕýȷͬ²½£¬ÐèÒªÉèÖÃһЩ²ÎÊýÐÅÏ¢¡¢SparkÄں˺ËÊý¼°ÄÚËðÖ®À࣬ÕâÀïËüÖ»»áÑ¡ÔñÐԵسéÈ¡²¿·ÖÅäÖ÷¢ÏÂÈ¥¡£
»ùÓÚattributesµÄ¹ýÂ˹¦ÄÜȱʧ;¶ÔÓÚÏÖÔڵĻ·¾³£¬ËùÉèÖõÄAttributes¹ýÂ˹¦ÄÜÃ÷ÏÔȱʧ£¬²»¹Ü»úÆ÷ÊÇ·ñרÓûòÓÐûÓÐÌØÊâÅäÖã¬ÉÏÀ´¾Í·¢£¬ºÜÈÝÒ×Õ¼ÂúESµÄ»úÆ÷¡£
°´role/principal½ÓÈëMesos;Õë¶Ô²»Í¬µÄÒµÎñÏß×ö×ÊÔ´Åä±Èʱ£¬ÎÞ·¨¶ÔÓ¦²»Í¬µÄ½Çɫȥ½ÓÈëMesos¡£
²»ÄÜre-registery;¿ò¼Ü±¾Éí²»ÄÜ֨ע²á£¬Èç¹û¿ò¼ÜÅܵ½Ò»°ë¹ÒµôÁË£¬ÖØÆôÖ®ºó֮ǰµÄÈÎÎñ¾ÍÖ±½ÓºöÂÔ²»¹Ü£¬ÐèÒªÊÖ¹¤KillµôÕâ¸ö¿ò¼Ü¡£
²»Äܶ¯Ì¬À©ÈÝexecutor¡£×îºóÊDz»ÄÜÀ©ÈÝ¡¢¶¯Ì¬µ÷Õû£¬ÁÙʱ¸Ä¶¯µÄ»°Ö»ÄÜÖØ·¢ÈÎÎñ¡£
Õû¸ö¹ý³Ì±È½Ï¼òµ¥£¬ÈçÏÂͼ5Ëùʾ£º

ͼ5£ºÌæ´úSpark Mesos Dispatcher
²»¹ý»¹ÊÇÓÐһЩÎÊÌâ´æÔÚ£º
Checkpoint & Block
¶¯Ì¬Ô¤Áô & ³Ö¾Ã»¯¾í
setJars
ÇåÀíÎÞЧµÄ¾í
¹ØÓÚCheckpoint&Block£¬Í¨¹ý¶¯Ì¬Ô¤ÁôµÄ¹¦ÄÜ¿ÉÒÔ°ÑÕâ¸öÈÎÎñÖ±½Ó¡°¶¤ËÀ¡±ÔÚÕą̂»úÆ÷ÉÏ£¬Èç¹ûËü¹ÒµÄ»°¿ÉÒÔÖ±½ÓÔÚÔ»úÆ÷ÉÏÖØÆô£¬²¢¹ÒÔØvolume¼ÌÐø¹¤×÷¡£Èç¹û²»ÓÃËüÔ¤ÁôµÄ»°£¬¿ÉÄܵ÷¶Èµ½ÆäËû»úÆ÷ÉÏ£¬ÕÒ²»µ½Êý¾ÝBlock£¬Ôì³ÉÊý¾ÝµÄ¶ªÊ§»òÕßÖØ¸´´¦Àí¡£
³Ö¾Ã»¯¾íÊÇMesosÌṩµÄ¹¦ÄÜ£¬ÐèÒª¿¼ÂÇËüµÄÊý¾ÝÓÀ´æ£¬MesosÌṩÁËÒ»ÖÖ·½°¸£º°Ñ±¾µØ´ÅÅÌÉý¼¶³ÉÒ»¸öĿ¼£¬°ÑÕâ¸ö×ªÒÆµ½DockerÀÿ´ÎдÊý¾Ýµ½±¾µØÊ±£¬ÄÜÖ±½Óͨ¹ý³Ö¾Ã»¯¾íÀ´Î¬»¤£¬ÃâÈ¥ÊÖ¹¤Î¬»¤µÄ³É±¾¡£µ«ËüĿǰÓÐÒ»¸öÎÊÌ⣬Èç¹ûÈÎÎñÒѱ»»ØÊÕ£¬Ëü³Ö¾Ã»¯¾íµÄÊý¾ÝÊDz»»á×Ô¼ºÉ¾µôµÄ£¬ÐèҪдһ¸ö½Å±¾¶¨Ê±ÂÖѲ²¢¶ÔӦɾµô¡£
ÁÙʱÎļþ
java.io.tmpdir=/mnt/mesos/sandbox
spark.local.dir=/mnt/mesos/sandbox
Èç¹ûʹÓó־û¯¾í£¬ÐèÒªÐÞ¸ÄÕâÁ½¸öÅäÖ㬰ÑÕâһЩÁÙʱÎļþд½øÈ¥£¬±ÈÈçshuffleÎļþµÈ¡£Èç¹ûÅäÖó־û¯¾íµÄ»°£¬Óû§Ò²¿ÉÒÔд³Ö¾Ã»¯¾íµÄ·¾¶¡£
Coarse-Grained
SparkÓÐÁ½ÖÖ×ÊÔ´µ÷¶Èģʽ£ºÏ¸Á£¶ÈºÍ´ÖÁ£¶È¡£Ä¿Ç°ÒѾ²»Ì«ÍƼöϸÁ£¶ÈÁË£¬¿¼Âǵ½Ï¸Á£¶È»á¾¡¿ÉÄܵİÑËùÓÐ×ÊÔ´Õ¼Âú£¬ÈÝÒ×µ¼ÖÂMesos×ÊÔ´±»ºÄ¾¡£¬ËùÒÔÕâ¸öʱºò¸üÇãÏòÑ¡Ôñ´ÖÁ£¶Èģʽ¡£

ͼ6£ºStorm on Marathon
ÉÏͼ6չʾÁË»ùÓÚStormµÄMarathonµ÷¶È£¬FlinkÒ²ÊÇÈç´Ë¡£½áºÏÏßÉϵÄÔËάºÍdebug£¬ÐèҪעÒâÒÔϼ¸·½Ã棺
Ô´ÉúWeb Console
Ëæ»ú¶Ë¿Ú
OpenRestyÅäºÏ·ºÓòÃû
ĬÈÏÔ´ÉúWeb Console£¬Ç°¶ËÅäÖÃת·¢£¬Ö±½Ó·ÃÎʹ̶¨ÓòÃû¡£
Filebeat + Kafka + ELK
¶à°æ±¾×·ËÝ
ÈÕ³£ÅÅ´í
Òì³£¼à¿Ø
´ó²¿·ÖWebUIÉÏ¿´µ½µÄ¶¼ÊÇĿǰÄÚ²¿µÄÊý¾Ý´¦ÀíÇé¿ö£¬¿ÉÒÔͨ¹ýELK²éѯÐÅÏ¢¡£Èç¹ûÈÎÎñÔø¾ÔËÐÐÔÚ²»Í¬°æ±¾µÄSparkÉÏ£¬¿ÉÒÔ°Ñ¶à°æ±¾µÄÈÕÖ¾¶¼×·×ÙÆðÀ´£¬°üÀ¨ÈÕ³£¡¢ÎÊÌâ¼à¿ØµÈ£¬Ö±½ÓÄÃÀ´Ê¹Óá£
Metrics
µÚÈý¸öÐèҪעÒâµÄ¾ÍÊÇÖ¸±ê¡£±ÈÈçSpark £¬ÐèÒªÅäºÏMetrics°ÑÊý¾ÝÔ´´ò³öÀ´¾ÍÐС£
ELK on Mesos
Ŀǰƽ̨ÒÑÓнü50¸ö¼¯Èº£¬Ô¼100TB+ÒµÎñÊý¾ÝÁ¿£¬¸ß·åÆÚ1.2k QPSÒÔ¼°Ô¼110¸ö½Úµã£¬ElasticsearchÐèÇóÖð²½Ôö¶à¡£

ͼ7£ºELK on Mesos
ÉÏͼ7ÊÇELK on Mesos½á¹¹Í¼£¬Ò²ÊÇÍŶӵÄÎÞÄÎ֮ѡ¡£ÒòΪMesos»¹ÔÝʱ²»Ö§³Ömulti-role
framework¹¦ÄÜ£¬ËùÒÔÑ¡ÔñÁËÕâÖÖÕÛÖеķ½Ê½À´×ö¡£ÔÚÒ»¸öMarathonÀ¸ù¾ÝÒµÎñÏßÉèÖúÃQuotaºó£¬ÓÃÒµÎñÏßÖØÐ·¢Ò»¸öеÄMarathon½ÓÈë½øÈ¥¡£¶ÔÓÚ¶à×â»§À´½²£¬¿ÉÒÔÀûÓÃKubernetes×öºóÐøµÄ×ÊÔ´¹Ü¿ØºÍ×ÊÔ´ÉêÇë¡£
²¿ÊðESÒÔºó£¬ÓÐÒ»¸ö¹ØÓÚ·þÎñ·¢ÏÖµÄÎÊÌ⣬¿ÉÒÔÈ¥×¢²áÒ»¸öcallback£¬Marathon»á·µ»ØÐÅÏ¢£¬½âÎö³ömaster/slave½ø³ÌËùÔڵĻúÆ÷ºÍ¶Ë¿Ú£¬ÅäºÏÐÞ¸ÄHaproxy×öÒ»²ãת·¢£¬Ï൱ÓڰѺó¶ËÕû¸öTCPµÄÁ¬½Ó¶¼×öÒ»¸öͨ·¡£ES¸úSpark²»ÍêÈ«Ïàͬ£¬Spark´«Êä±¾ÉíÁ÷Á¿¾Í±È½Ï´ó£¬¶øESÆô¶¯Ê±ÐèÒªÖ÷¶¯ÁªÏµMasterµØÖ·£¬ÔÙͨ¹ýMaster»ñÈ¡ÏàÓ¦¼¯Èº£¬ºóÃæÔÙ×öP2P£¬Á÷Á¿±È½ÏµÍ£¬Ò²²»ÊÇÒ»¸ö³¤Á´½Ó¡£
¼à¿ØÓëÔËά
Õⲿ·Ö°üÀ¨ÁËStreaming¼à¿ØÖ¸±êÓ뱨¾¯¡¢ÈÝÆ÷¼à¿ØÖ¸±êÓ뱨¾¯Á½·½Ãæ¡£
Streaming¼à¿ØÖ¸±êÓ뱨¾¯
Streaming¼à¿Øº¬ÍØÆË¼à¿ØºÍÒµÎñ¼à¿ØÁ½²¿·Ö¡£
StreamingÍØÆË¼à¿Ø
ÒµÎñ¼à¿Ø
Kafka Topic Lag
´¦ÀíÑÓ³Ùmean90/upper90
Spark scheduler delay/process delay
Search Count/Message Count
Reject/Exception
JVM
ÍØÆË¼à¿Ø°üÀ¨Êý¾ÝÔ´ºÍÕû¸öÍØÆËÁ÷³Ì£¬ÐèÒªÓû§×Ô¼ºÈ¥ÕûÀíºÍ¹¹½¨£¬¸üеÄʱºò¾ÍÄܹ»ÖªµÀÕâ¸ö¶«Î÷ÒÀÀµË¡¢ÊÇ·ñÒÀÀµÏßÉÏ·þÎñ£¬Èç¹ûÖÐ;ͣµÄ»°»áÔì³É»úÆ÷¹ÊÕÏ¡£ÒµÎñ¼à¿ØµÄ»°£¬µÚÒ»¸ö¾ÍÊÇTopic
Lag£¬Topic Lagÿһ¸ö²¨¶¯¶¼ÊDz»Ò»ÑùµÄ£¬ÓÃÕâÖÖ·½Ê½¼à¿Ø»áƵ·±±¨¾¯£¬90%µÄÖÐλÊý¶¼ÊÇÂäÔÚ80¡ª100ºÁÃ뷶ΧÄÚ£¬¾Í¿ÉÒÔ¼à¿Øµ½Õû¸ö·¶Î§¡£
ÈÝÆ÷¼à¿ØÖ¸±êÓ뱨¾¯
ÈÝÆ÷¼à¿ØÉϹØ×¢ÒÔÏÂÈý·½Ã棺
Google cAdvisor×ã¹»ÓÐЧ
mount rootfs¿ÉÄܵ¼ÖÂÈÝÆ÷ɾ³ýʧ°Ü #771
¨Cdocker_only
¨Cdocker_env_metadata_whitelist
Statsd + Watcher
»ùÓÚGraphiteµÄǧÍò¼¶Ö¸±ê¼à¿ØÆ½Ì¨
Nagios
ÈÝÆ÷ÕâÒ»¿é±È½Ï¼òµ¥£¬ÀûÓÃDocker²¢ÅäºÏMesos£¬ÔÙ°ÑMarathonµÄIDץȡ³öÀ´¾Í¿ÉÒÔÁË¡£ÎÒÃÇÕâ±ßÔÚʵ¼ùµÄ¹ý³Ì·¢ÏÖÒ»¸öÎÊÌ⣬ÒòΪStatsd
WatcherÈÝÒ׳öÏÖÎÊÌ⣬ÄãÖ±½ÓÓÃDockerµÄʱºòËü»á±¨Ò»Ð©´íÎó³öÀ´£¬Õâ¸öÎÊÌâ¾ÍÊÇStatsd
Watcher°Ñ·¾¶¸ø¹ÒÁ˵ÄÔÒò¡£Ä¿Ç°ÎÒÃÇÆ½Ì¨¾ÍÔøÓöµ½¹ýÒ»´Î£¬ÉçÇøÀïÃæÒ²ÓÐÈËÆØ£¬²»¹ý¸´ÏÖÂʱȽϵ͡£ÓõÄʱºòÈç¹û·¢ÏÖÕâ¸öÎÊÌâ°ÑStatsd
WatcherÖ±½ÓÍ£µô¾ÍºÃ¡£Ö¸±êµÄ»°£¬Ã¿Ì¨»úÆ÷ÉÏ·ÅÒ»¸östatsdÔÙ·¢Ò»¸öºǫ́µÄWorker£¬±¨¾¯Æ½Ì¨Ò²ÊÇÕâ¸ö¡£
ÆäʵÕë¶ÔDocker¼à¿ØµÄ»°£¬»¹ÊÇ´æÔÚ×ÅһЩÎÊÌ⣺
»ù´¡¼à¿ØÑ¹Á¦
Êý¾ÝÅòÕÍ
À¬»øÖ¸±êÔö¶à
´óÁ¿µÄͨÅä·ûµ¼ÖÂÊý¾Ý¿âѹÁ¦½Ï¸ß
µ¥¸öÈÎÎñµÄÈÝÆ÷ÉúÃüÖÜÆÚ
·¢²¼
À©ÈÝ
Òì³£Í˳ö
Ê×ÏÈÖ÷ÒªÊÇ¼à¿ØÏµÍ³Ñ¹Á¦±È½Ï´ó¡£ÔÀ´¼à¿ØÐéÄâ»úʱ¶¼ÊÇÕë¶Ôÿһ¸öÐéÄâ»úµÄ£¬Ö»ÒªÐéÄâ»ú²»É¾µÄ»°Êdz¤ÆÚ»ã±¨£¬Ö¸±êÃû¹Ì¶¨£¬µ«ÔÚÈÝÆ÷ÖÐÕâ¸ö¶«Î÷Ò»Ö±Ôڱ䣬ËüÔÚÕâÌ×ÌåϵÏÂÓÃÖ¸±ê²¢ÔÚ±¾µØÖ®Í⽨һ¸öĿ¼´æÎļþ£¬ËùÒÔÔÚÕâÖÖ´æ´¢»úÖÆÏÂÈ¥´æÈÝÆ÷µÄÖ¸±ê²»ºÏÊÊ¡£Ö÷ÒªÎÊÌâÊÇÊý¾ÝÅòÕͱȽÏÀ÷º¦£¬¿ÉÄÜÒ»¸öÈÝÆ÷»áÆðÃû£¬ÆðÃû¶à´ÎÖ®ºó£¬ÔÚGraphiteÄDZ߶ÔÓ¦ÁËÓÐÊ®¶à¸öÖ¸±ê£¬ÏñÕâÖÖ¶¼ÊÇÔ¤Éú³ÉµÄ¼à¿ØÎļþ¡£±ÈÈç˵¶¨ÒåÿһÃëÖÓÒ»¸öÊý¾Ýµã£¬Òª±£´æÒ»Ä꣬Õâ¸öʱºòËü¾Í»á¸ù¾ÝÿÄêÓжàÉÙÃëÉú³ÉÒ»¸öRRDÎļþ·ÅÄǶù¡£Õⲿ·ÖÖ¸±êÈç¹û°´ÕÕÏÖÓбê×¼µÄ»°£¬¿ÉÄÜÈÝÆ÷µÄÉúÃüÖÜÆÚ½öÓм¸Ììʱ¼ä£¬²»ÊÊÓÃÕâÖÖ»úÖÆ¡£²âÊÔÏàͬµÄÖ¸±êÁ¿£¬¹«Ë¾´æ´¢µÄ·½Ê½Ïà¶ÔÀ´Ëµ±ÈGraphiteºÃÒ»µã¡£ÒòΪGraphiteÊÇ»ùÓÚÎļþϵͳÀ´×öµÄ£¬µÚÒ»¸öÓÅ»¯Ö¸±êÃû£¬Ä¿Â¼Òª×ª´æµ½Êý¾Ý¿âÀï×öһЩË÷Òý¼ÓËٺͲéѯ£¬µ«ÊÇÒòΪÈÝÆ÷Õâ±ßÏà¶ÔͨÅä·û±È½Ï¶à£¬²»ÄÜÖ±½ÓµÃÖª¾ßÌå¶ÔÓ¦µÄID£¬Ö»ÄÜͨÅä·û²éѯ×ö¾ÛºÏ¡£ÒòΪ³¤ÆÚµÄͨÅä·ûÔÚ×Ö·û´®µÄË÷ÒýÉÏ»¹ÊÇÒ×ÓÚʹÓõģ¬ËùÒÔÏÖÔÚËãÊÇÕÛÖеÄ×ö·¨£¬°ÑһЩ³£ÓõIJéѯ½á¹û¡¢Ä¿Â¼·Åµ½Àï±ß¡£
ÁíÒ»¸öÊÇÈÝÆ÷µÄÉúÃüÖÜÆÚ¡£¿ÉÒÔ×öһЩÉ󼯻òÕß±ä¸üµÄ°æ±¾£¬ÔÚMesos²ãÃæ»ùÓÚMarathonÈ¥¼à¿Ø£¬·¢ÏÖÕâЩ״̬ºó´òÉϱê¼Ç£ºµ±Ç°ÊÇÄÄÒ»¸öÈÝÆ÷»òÕßÄÄÒ»¸öTASK³öÁËÎÊÌ⣬¶ÔÓ¦À©ÈݺͼǼÏÂÀ´¡£»¹ÓÐDocker×Ô¼ºµÄÎÊÌ⣬ÕâÑùºóÃæ×öÕû¸ö¼Ç¼ʱ»áÓÐÒ»·ÝÏà¶Ô±È½ÏÍêÕûµÄTASK-ID¡£
|