ÆóÒµ¼¶ÏîÄ¿ÇéÐδʵ¼ù
ÔÚ×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµ¿ªÆª²¿·Ö£¬¹¤³ÌʦÑÝʾÁË»ùÓÚÔÆÔÉú¼Ü¹¹µÄ¼¯Èº°²Åżƻ®¡£ÊÓÆµÏêϸչʾÁËÔõÑùͨ¹ýKubernetes±àÅÅʵÏÖµ¯ÐÔ×ÊÔ´µ÷Àí£¬Õâ¶Ô´¦Öóͷ£º£Á¿µçÉÌÉúÒâÈÕÖ¾¾ßÓÐÒªº¦×÷Óá£ÖµµÃ×¢ÖØµÄÊÇ£¬ÆóÒµ¼¶°²ÅűØÐè¹Ø×¢ÍøÂçÍØÆËÓÅ»¯£¬ÓÈÆäÊÇÔÚ´¦Öóͷ£ÊµÊ±Êý¾ÝÁ÷ʱ£¬¹ýʧµÄÍøÂçÉèÖûᵼÖÂRDD£¨µ¯ÐÔÂþÑÜʽÊý¾Ý¼¯£©´«ÊäЧÂʽµµÍ50%ÒÔÉÏ¡£
½¹µãÅÌËãÄ£×ÓʵÏÖÆÊÎö
ÊÓÆµÖÐÖØµãÆÊÎöÁËDataFrame APIÓëSpark SQLµÄÁªºÏÓ¦ÓÃģʽ¡£Í¨¹ýÂÃÓÎÐÐÒµÓû§»Ïñ¹¹½¨°¸Àý£¬ÑÝʾÁËÔõÑù½«ÔʼÈÕ־ת»¯Îª½á¹¹»¯Êý¾Ý×ʲú¡£ÊÖÒÕÖ°Ô±ÐèÒªÌØÊâ×¢ÖØÄÚ´æÖÎÀíÕ½ÂÔ£¬µ±´¦Öóͷ£PB¼¶Éç½»ÍøÂçÊý¾Ýʱ£¬²»¶ÔÀíµÄÐòÁл¯·½·¨»áʹʹÃüÖ´ÐÐʱ¼ä³É±¶ÔöÌí¡£ÔõÑùÑ¡ÔñºÏÊʵÄshuffleÕ½ÂÔ£¿ÕâÐèҪƾ֤Êý¾ÝÌØÕ÷¶¯Ì¬µ÷½â·ÖÇøËã·¨¡£
ʵʱÊý¾Ý´¦Öóͷ£¼Ü¹¹ÓÅ»¯
Õë¶ÔÎïÁªÍøÊµÊ±¼à¿Ø³¡¾°£¬½ÌѧÊÓÆµ±ÈÕÕÁËStructured StreamingÓë¾É°æDStreamµÄЧÄܲî±ð¡£ÔÚ³µÁªÍø³¡¾°µÄѹÁ¦²âÊÔÖУ¬ÓÅ»¯ºóµÄ΢Åú´Î´¦Öóͷ£½«ÑÓ³Ù½µµÍÖÁ300ºÁÃëÒÔÄÚ¡£ÕâÀïÐèҪСÐÄÊý¾ÝÇãбÎÊÌ⣬µ±´«¸ÐÆ÷ÂþÑܲ»¾ùʱ£¬½¨Òé½ÓÄÉˮӡ»úÖÆÅäºÏ״̬´æ´¢Õ½ÂÔÀ´Æ½ºâ¸÷½Úµã¸ºÔØ¡£
ÆóÒµ¼¶Çå¾²¼Ó¹Ì¼Æ»®
½ðÈÚ¼¶Ó¦ÓõÄÌØÊâÐèÇ󲿷֣¬ÊÓÆµÑÝʾÁËKerberosÈÏÖ¤¼¯³ÉÓëHDFS¼ÓÃÜ´æ´¢¼Æ»®¡£ÌØÊâÊÇÔÚ´¦Öóͷ£Óû§Òþ˽Êý¾Ýʱ£¬±ØÐèÆôÓö¯Ì¬Êý¾ÝÑÚÂ빦Ч¡£¿ª·¢ÕßÔÚ¾ÙÐлá¼û¿ØÖÆÉèÖÃʱ£¬Òª×¢ÖØ×èÖ¹ACL£¨»á¼û¿ØÖÆÁÐ±í£©µÄÌ«¹ýÊÚȨ£¬Õâ¿ÉÄÜÒý·¢ÑÏÖØµÄÊý¾Ýй¶Σº¦¡£
µä·¶¹ýʧ³¡¾°Éî¶ÈÆÊÎö
½ÌѧÊÓÆµÓÃ20·ÖÖÓרÃÅÆÊÎöÁËÊ®´ó³£¼û¹ýʧģʽ£¬ÆäÖÐJVMÄÚ´æÒç³öÎÊÌâ×îΪÖÂÃü¡£ÔÚijÎïÁ÷ÆóÒµµÄʵ¼ùÖУ¬¹ýʧÉèÖÃexecutor¶ÑÄÚ´æµ¼Ö¼¯ÈºÕûÌåå´»ú¡£ÊÓÆµ¸ø³öÁËGC£¨À¬»ø½ÓÄÉ£©µ÷ÓŹ«Ê½£ºÄÚ´æ·ÖÅÉ=·ÖÇøÊý¡Á1.5GB¡£Í¬Ê±Ç¿µ÷Òª°´ÆÚ¼à¿ØstorageÄÚ´æÕ¼±È£¬±ÜÃ⻺´æÊý¾ÝÕ¼Óùý¶àÅÌËã×ÊÔ´¡£
»úеѧϰģ×Ó°²ÅÅʵ¼ù
ÔÚÍÆ¼öϵͳ°¸ÀýÖУ¬¹¤³ÌʦÑÝʾÁËML PipelineÓëPySparkµÄÕûºÏÓ¦Óá£Õë¶Ô¹ã¸æµã»÷ÂÊÕ¹ÍûʹÃü£¬ÊÓÆµ½¨Òé½ÓÄÉÌØÕ÷½»Ö¯ÊÖÒÕÌáÉýÄ£×ÓAUCÖµ0.15¸öµã¡£µ«ÐèСÐÄÄ£×ÓÆ¯ÒÆÎÊÌ⣬±ØÐèÉèÖÃ×Ô¶¯»¯Ä£×ÓÖØÑµÁ·»úÖÆ£¬ÕâÔÚµçÉÌ´ó´Ùʱ´úÓÈΪÖ÷Òª¡£Õ¹Ê¾ÁËÔõÑùͨ¹ýAlluxio¼ÓËÙÌØÕ÷¶ÁÈ¡£¬Ê¹Åú´¦Öóͷ£Ê¹ÃüºÄʱïÔÌ60%¡£
×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµÏµÍ³ÐÔµØÕ¹Ê¾ÁËÆóÒµ¼¶Ó¦ÓõÄÊÖÒÕʵÏÖ·¾¶£¬´Ó»ù´¡ÇéÐÎÉèÖõ½¸ß½×Ä£×Ó°²ÅŲã²ãµÝ½ø¡£¿ª·¢ÕßÓ¦ÖØµã¹Ø×¢ÊÓÆµÖÐÖØ¸´Ç¿µ÷µÄ¼¯Èºµ÷ÓŹæÔòºÍÊý¾ÝÇå¾²¹æ·¶£¬Í¬Ê±Ð¡ÐÄÒþ²ØµÄÐÔÄÜÏÝÚå¡£ÕÆÎÕÕâЩ½¹µãÒªµã£¬²Å»ªÕæÕýʩչSpark¿ò¼ÜÔÚÆóÒµÊý×Ö»¯×ªÐÍÖеÄÕ½ÂÔ¼ÛÖµ¡£ÆóÒµ¼¶ÏîÄ¿ÇéÐδʵ¼ù
ÔÚ×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµ¿ªÆª²¿·Ö£¬¹¤³ÌʦÑÝʾÁË»ùÓÚÔÆÔÉú¼Ü¹¹µÄ¼¯Èº°²Åżƻ®¡£ÊÓÆµÏêϸչʾÁËÔõÑùͨ¹ýKubernetes±àÅÅʵÏÖµ¯ÐÔ×ÊÔ´µ÷Àí£¬Õâ¶Ô´¦Öóͷ£º£Á¿µçÉÌÉúÒâÈÕÖ¾¾ßÓÐÒªº¦×÷Óá£ÖµµÃ×¢ÖØµÄÊÇ£¬ÆóÒµ¼¶°²ÅűØÐè¹Ø×¢ÍøÂçÍØÆËÓÅ»¯£¬ÓÈÆäÊÇÔÚ´¦Öóͷ£ÊµÊ±Êý¾ÝÁ÷ʱ£¬¹ýʧµÄÍøÂçÉèÖûᵼÖÂRDD£¨µ¯ÐÔÂþÑÜʽÊý¾Ý¼¯£©´«ÊäЧÂʽµµÍ50%ÒÔÉÏ¡£
½¹µãÅÌËãÄ£×ÓʵÏÖÆÊÎö
ÊÓÆµÖÐÖØµãÆÊÎöÁËDataFrame APIÓëSpark SQLµÄÁªºÏÓ¦ÓÃģʽ¡£Í¨¹ýÂÃÓÎÐÐÒµÓû§»Ïñ¹¹½¨°¸Àý£¬ÑÝʾÁËÔõÑù½«ÔʼÈÕ־ת»¯Îª½á¹¹»¯Êý¾Ý×ʲú¡£ÊÖÒÕÖ°Ô±ÐèÒªÌØÊâ×¢ÖØÄÚ´æÖÎÀíÕ½ÂÔ£¬µ±´¦Öóͷ£PB¼¶Éç½»ÍøÂçÊý¾Ýʱ£¬²»¶ÔÀíµÄÐòÁл¯·½·¨»áʹʹÃüÖ´ÐÐʱ¼ä³É±¶ÔöÌí¡£ÔõÑùÑ¡ÔñºÏÊʵÄshuffleÕ½ÂÔ£¿ÕâÐèҪƾ֤Êý¾ÝÌØÕ÷¶¯Ì¬µ÷½â·ÖÇøËã·¨¡£
ʵʱÊý¾Ý´¦Öóͷ£¼Ü¹¹ÓÅ»¯
Õë¶ÔÎïÁªÍøÊµÊ±¼à¿Ø³¡¾°£¬½ÌѧÊÓÆµ±ÈÕÕÁËStructured StreamingÓë¾É°æDStreamµÄЧÄܲî±ð¡£ÔÚ³µÁªÍø³¡¾°µÄѹÁ¦²âÊÔÖУ¬ÓÅ»¯ºóµÄ΢Åú´Î´¦Öóͷ£½«ÑÓ³Ù½µµÍÖÁ300ºÁÃëÒÔÄÚ¡£ÕâÀïÐèҪСÐÄÊý¾ÝÇãбÎÊÌ⣬µ±´«¸ÐÆ÷ÂþÑܲ»¾ùʱ£¬½¨Òé½ÓÄÉˮӡ»úÖÆÅäºÏ״̬´æ´¢Õ½ÂÔÀ´Æ½ºâ¸÷½Úµã¸ºÔØ¡£
ÆóÒµ¼¶Çå¾²¼Ó¹Ì¼Æ»®
½ðÈÚ¼¶Ó¦ÓõÄÌØÊâÐèÇ󲿷֣¬ÊÓÆµÑÝʾÁËKerberosÈÏÖ¤¼¯³ÉÓëHDFS¼ÓÃÜ´æ´¢¼Æ»®¡£ÌØÊâÊÇÔÚ´¦Öóͷ£Óû§Òþ˽Êý¾Ýʱ£¬±ØÐèÆôÓö¯Ì¬Êý¾ÝÑÚÂ빦Ч¡£¿ª·¢ÕßÔÚ¾ÙÐлá¼û¿ØÖÆÉèÖÃʱ£¬Òª×¢ÖØ×èÖ¹ACL£¨»á¼û¿ØÖÆÁÐ±í£©µÄÌ«¹ýÊÚȨ£¬Õâ¿ÉÄÜÒý·¢ÑÏÖØµÄÊý¾Ýй¶Σº¦¡£
µä·¶¹ýʧ³¡¾°Éî¶ÈÆÊÎö
½ÌѧÊÓÆµÓÃ20·ÖÖÓרÃÅÆÊÎöÁËÊ®´ó³£¼û¹ýʧģʽ£¬ÆäÖÐJVMÄÚ´æÒç³öÎÊÌâ×îΪÖÂÃü¡£ÔÚijÎïÁ÷ÆóÒµµÄʵ¼ùÖУ¬¹ýʧÉèÖÃexecutor¶ÑÄÚ´æµ¼Ö¼¯ÈºÕûÌåå´»ú¡£ÊÓÆµ¸ø³öÁËGC£¨À¬»ø½ÓÄÉ£©µ÷ÓŹ«Ê½£ºÄÚ´æ·ÖÅÉ=·ÖÇøÊý¡Á1.5GB¡£Í¬Ê±Ç¿µ÷Òª°´ÆÚ¼à¿ØstorageÄÚ´æÕ¼±È£¬±ÜÃ⻺´æÊý¾ÝÕ¼Óùý¶àÅÌËã×ÊÔ´¡£
»úеѧϰģ×Ó°²ÅÅʵ¼ù
ÔÚÍÆ¼öϵͳ°¸ÀýÖУ¬¹¤³ÌʦÑÝʾÁËML PipelineÓëPySparkµÄÕûºÏÓ¦Óá£Õë¶Ô¹ã¸æµã»÷ÂÊÕ¹ÍûʹÃü£¬ÊÓÆµ½¨Òé½ÓÄÉÌØÕ÷½»Ö¯ÊÖÒÕÌáÉýÄ£×ÓAUCÖµ0.15¸öµã¡£µ«ÐèСÐÄÄ£×ÓÆ¯ÒÆÎÊÌ⣬±ØÐèÉèÖÃ×Ô¶¯»¯Ä£×ÓÖØÑµÁ·»úÖÆ£¬ÕâÔÚµçÉÌ´ó´Ùʱ´úÓÈΪÖ÷Òª¡£Õ¹Ê¾ÁËÔõÑùͨ¹ýAlluxio¼ÓËÙÌØÕ÷¶ÁÈ¡£¬Ê¹Åú´¦Öóͷ£Ê¹ÃüºÄʱïÔÌ60%¡£
×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµÏµÍ³ÐÔµØÕ¹Ê¾ÁËÆóÒµ¼¶Ó¦ÓõÄÊÖÒÕʵÏÖ·¾¶£¬´Ó»ù´¡ÇéÐÎÉèÖõ½¸ß½×Ä£×Ó°²ÅŲã²ãµÝ½ø¡£¿ª·¢ÕßÓ¦ÖØµã¹Ø×¢ÊÓÆµÖÐÖØ¸´Ç¿µ÷µÄ¼¯Èºµ÷ÓŹæÔòºÍÊý¾ÝÇå¾²¹æ·¶£¬Í¬Ê±Ð¡ÐÄÒþ²ØµÄÐÔÄÜÏÝÚå¡£ÕÆÎÕÕâЩ½¹µãÒªµã£¬²Å»ªÕæÕýʩչSpark¿ò¼ÜÔÚÆóÒµÊý×Ö»¯×ªÐÍÖеÄÕ½ÂÔ¼ÛÖµ¡£