ÆóÒµÊý¾Ý´¦Öóͷ£µÄÏÖʵÌôÕ½ÓëÍ»ÆÆÆ«Ïò
ÔÚ½ðÈÚ·ç¿ØºÍÖÇÄÜÍÆ¼öµÈÆóÒµ³¡¾°ÖУ¬º£Á¿Êý¾Ý´¦Öóͷ£ÃæÁÙÏìÓ¦ÑÓʱÓëÅÌË㾫ȷ¶ÈµÄË«ÖØÌôÕ½¡£×ÏÌÙׯ԰sparkʵ¼ùÊÓÆµµÚ46¹ØÊ×´ÎÅû¶µÄʵʱ·´ÆÛÕ©°¸ÀýÏÔʾ£¬»ùÓÚSpark Structured Streaming¹¹½¨µÄ»ìÏý´¦Öóͷ£¼Ü¹¹£¬ÓÐЧ½â¾öÁË´«Í³Åú´¦Öóͷ£ÏµÍ³µÄ·ÖÖÓ¼¶ÑÓ³ÙÎÊÌâ¡£ÌØ±ðÊÇÔÚDAG£¨ÓÐÏòÎÞ»·Í¼£©µ÷ÖÎÓÅ»¯·½Ã棬ͨ¹ý¶¯Ì¬×ÊÔ´·ÖÅä»úÖÆ½«Êý¾Ý´¦Öóͷ£Ð§ÂÊÌáÉý47%£¬¸Ã´´Ðµã»ñµÃIBM¼¼ÊõÍŶӵÄÏÖ³¡ÑéÖ¤¡£
×ÏÌÙׯ԰ÊÓÆµÄÚÈݼܹ¹½âÎö
ÕâÌ×°üÂÞ46¸ö¼¼ÊõÄ£¿éµÄϵÁпγ̣¬½ÓÄÉ"ÀíÂÛ-ʵÑé-µ÷ÓÅ"µÄÈý¶Îʽ½Ìѧ½á¹¹¡£ÔÚµÚ5ÕÂSpark CoreÔÀíÆÊÎöÖУ¬ÖصãÑÝʾÁËRDDµ¯ÐÔÂþÑÜʽÊý¾Ý¼¯µÄÈÝ´í»úÖÆ£¬¸¨ÒÔÒ½ÁÆÓ°ÏñÊý¾Ý´¦Öóͷ£³¡¾°½øÐÐÑéÖ¤¡£ÖµµÃ×¢ÒâµÄÊǵÚ32¹ØÒýÈëµÄShuffleÓÅ»¯·½°¸£¬Í¨¹ýµ÷Õûspark.sql.shuffle.partitions²ÎÊýÖµ£¬Àֳɽ«µçÉÌÍÆ¼öϵͳµÄÅÌËãºÄʱ´Ó18·ÖÖÓѹËõÖÁ6·ÖÖÓ£¬ÕâÖÖʵսÅäÖü¼ÇɶÔÓÚ½ðÈÚ·ç¿ØÏµÍ³µÄʵʱ¾ö²ß¾ßÓÐÖØÒªÒâÒå¡£
ÆóÒµ¼¶Spark¼¯Èº²¿ÊðÒªº¦ÒªËØ
ÈçºÎ¹¹½¨¸ß¿ÉÓõÄÉú²ú¼¶Spark¼¯Èº£¿µÚ46¹ØÏêϸ¶Ô±ÈÁËYARNÓëKubernetesÁ½ÖÖ×ÊÔ´µ÷Öοò¼ÜµÄ²îÒì¡£²âÊÔÊý¾ÝÏÔʾ£¬ÔÚÏàͬӲ¼þÅäÖÃÏ£¬K8s·½°¸µÄÈÎÎñ»Ö¸´Ëٶȱȴ«Í³·½°¸¿ì3.8±¶¡£ÊÓÆµÖÐÌØ±ðÑÝʾÁ˶¯Ì¬Executor·ÖÅä»úÖÆ£¬Í¨¹ýÉèÖÃspark.dynamicAllocation.enabled=true²ÎÊý£¬ÀÖ³ÉÓ¦¶ÔÁË֤ȯ½»Ò×ϵͳµÄÁ÷Á¿Âö³å³¡¾°£¬ÕâÏîÅäÖü¼ÇÉÒÑÔÚº£ÄÚij´óÐÍÖ§¸¶Æ½Ì¨»ñµÃʵ¼ÊÓ¦ÓÃÑéÖ¤¡£
»úеѧϰ³¡¾°ÏµÄSparkÓÅ»¯Êµ¼ù
ÔÚÉî¶ÈѧϰģÐÍѵÁ·³¡¾°ÖУ¬SparkÓëTensorFlowµÄÐͬÊÂÇéÃæÁÙÐòÁл¯Ð§ÂÊÆ¿¾±¡£×ÏÌÙׯ԰¿Î³ÌÌá³öµÄÄ£ÐÍ·ÖÆ¬²¢Ðз½°¸£¬Í¨¹ýPetastormÊý¾Ý»¨Ñùת»»½«ÌØÕ÷´¦Öóͷ£ËÙ¶ÈÌáÉý62%¡£µÚ46¹ØÕ¹Ê¾µÄÂþÑÜʽ³¬²Îµ÷Ó۸ÀýÖУ¬½ÓÄÉSpark MLlibÓëHyperopt×éºÏ¿ò¼Ü£¬Ê¹Ä³ÒøÐз´Ï´Ç®Ä£Ð͵ÄF1Öµ´Ó0.81ÌáÉýÖÁ0.89£¬ÕâÖÖ´´Ð·½°¸ÎªºóÐø¿Î³ÌÖеÄÁª°îѧϰ¼¼ÊõÂñÏ·ü±Ê¡£
ʵʱÊý²Ö½¨ÉèµÄ½¹µã¼¼ÊõÍ»ÆÆ
ÈçºÎʵÏÖÃë¼¶ÑÓ³ÙµÄʵʱÊý¾Ý¶ÑÕ»£¿¿Î³ÌµÚ40-46¹Ø¹¹½¨µÄÍêÕû½â¾ö·½°¸ÖµµÃ¹Ø×¢¡£Í¨¹ýDelta LakeµÄÊÂÎñÈÕÖ¾»úÖÆ±£ÕÏÊý¾ÝÒ»ÖÂÐÔ£¬ÅäºÏSpark Structured StreamingµÄ΢Åú´¦Öóͷ£Ä£Ê½£¬ÔÚµçÐÅÐÅÁîÊý¾Ý·ÖÎö³¡¾°Öе½´ï80000Ìõ/ÃëµÄ´¦Öóͷ£ÍÌÍÂÁ¿¡£ÌرðÊÇÔÚµÚ46¹Ø×îÐÂÄÚÈÝÖУ¬Ê״ιûÕæÁ˶˵½¶ËExactly-OnceÓïÒåµÄʵÏÖ·½°¸£¬¸Ã¼¼ÊõÒÑÓ¦ÓÃÓÚijÎïÁ÷ÆóÒµµÄÈ«Çò¶©µ¥×·×Ùϵͳ¡£
ÆóÒµ¼¶Êý¾ÝÖÎÀíµÄÍêÕû½â¾ö·½°¸
Êý¾ÝÖÎÀíÊÇÆóÒµ´óÊý¾ÝÂ䵨µÄ±ÚÀÝ¡£×ÏÌÙׯ԰½Ì³ÌÔÚµÚ46¹Ø¼¯³ÉÑÝʾÁËÊý¾ÝѪԵ׷×Ù¡¢ÖÊÁ¿¼à¿ØÓëȨÏÞÖÎÀíÈý´óÄ£¿é¡£»ùÓÚSpark SQLÀ©Õ¹¿ª·¢µÄÊý¾ÝѪԵ·ÖÎö×é¼þ£¬¿É×Ô¶¯Éú³ÉÁè¼Ý200¸ö½ÚµãµÄÒÀÀµÍ¼Æ×¡£ÔÚÊÓÆµÕ¹Ê¾µÄijÁãÊÛÆóÒµ°¸ÀýÖУ¬Í¨¹ýColumn-levelȨÏÞ¿ØÖƽ«Êý¾Ýй©·çÏÕ½µµÍ92%£¬ÕâÖÖϵͳ¼¶½â¾ö·½°¸Îª¼´½«µ½À´µÄÊý¾ÝÄþ¾²·¨ÌṩÁ˼¼Êõ×¼±¸¡£
´ÓµÚ46¹Ø¼¼ÊõÍ»ÆÆ¿ÉÒÔ¿´³ö£¬×ÏÌÙׯ԰sparkʵ¼ùÊÓÆµÍ¨¹ýÕæÊµ³¡¾°²ð½â£¬ÍêÕû·ºÆðÁËÆóÒµ¼¶´óÊý¾ÝÓ¦Óõļ¼ÊõÑݽøÂ·¾¶¡£ÎÞÂÛÊǽ¹µãÔÀíÆÊÎöÕÕ¾ÉK8s¼¯Èº²¿Ê𣬶¼ÌåÏÖÁËÀíÂÛÓëʵ¼ùµÄ¸ß¶ÈÈںϡ£¶ÔÓÚØ½´ýÉý¼¶Êý¾Ý´¦Öóͷ£¼Ü¹¹µÄÆóÒµ¶øÑÔ£¬ÕâÌ׿γÌÌṩµÄshuffleÓÅ»¯¡¢ÊµÊ±ÅÌËã·½°¸ÒÔ¼°Êý¾ÝÖÎÀí¿ò¼Ü£¬ÕýÔÚÖØÐ½ç˵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¿ò¼ÜÔÚÆóÒµÊý×Ö»¯×ªÐÍÖеÄÕ½ÂÔ¼ÛÖµ¡£