À´Ô´£ºÖ¤È¯Ê±±¨Íø×÷ÕߣºÂ½½¨µÂ2025-08-11 00:15:47
Ëæ×ÅÆóÒµÊý×Ö»¯×ªÐͽøÈëÉîË®Çø£¬Apache SparkÔÚÆóÒµ¼¶´óÊý¾Ý´¦Öóͷ£ÖеÄÖØÒªÐÔÈÕÒæÍ¹ÏÔ¡£×ÏÌÙׯ԰sparkʵ¼ùÊÓÆµÍ¨¹ýÕæÊµ³¡¾°°¸Àý£¬ÏµÍ³»¯²ð½âÁËSparkÔÚETL´¦Öóͷ£¡¢ÊµÊ±ÅÌËãÓë»úеѧϰµÈÁìÓòµÄ½¹µãÓ¦Óᣱ¾ÎĽ«Éî¶ÈÆÊÎöµÚ46¹Ø×îÐÂÄÚÈÝ£¬½ÒʾÆóÒµ¼¶Spark×÷ÒµµÄÓÅ»¯Õ½ÂÔÓë¼¼ÊõʵÏÖ·¾¶¡£

×ÏÌÙׯ԰sparkʵ¼ùÊÓÆµ,ÆóÒµ¼¶´óÊý¾Ý½â¾ö·½°¸È«½âÎö-µÚ46¹Ø¼¼ÊõÍ»ÆÆÏê½â

ÆóÒµÊý¾Ý´¦Öóͷ£µÄÏÖʵÌôÕ½ÓëÍ»ÆÆÆ«Ïò

ÔÚ½ðÈÚ·ç¿ØºÍÖÇÄÜÍÆ¼öµÈÆóÒµ³¡¾°ÖУ¬º£Á¿Êý¾Ý´¦Öóͷ£ÃæÁÙÏìÓ¦ÑÓʱÓëÅÌË㾫ȷ¶ÈµÄË«ÖØÌôÕ½¡£×ÏÌÙׯ԰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ʵ¼ùÊÓÆµÈ«Ãæ½âÎöÆóÒµ¼¶´óÊý¾ÝÓ¦ÓÃÓÎÏ·×îÐÂÈÈÃÅ Ëæ×ÅÆóÒµÊý×Ö»¯×ªÐͼÓËÙ£¬×ÏÌÙ×¯Ô°ÍÆ³öµÄ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¿ò¼ÜÔÚÆóÒµÊý×Ö»¯×ªÐÍÖеÄÕ½ÂÔ¼ÛÖµ¡£
ÔðÈα༭£º ³Â³å
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÇóÐÅÏ¢ÕæÊµ¡¢×¼È·£¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼£¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Ò飬¾Ý´Ë²Ù×÷·çÏÕ×Ôµ£
ÏÂÔØ¡°Ö¤È¯Ê±±¨¡±¹Ù·½APP£¬»ò¹Ø×¢¹Ù·½Î¢ÐÅÃñÖںţ¬¼´¿ÉËæÊ±Á˽â¹ÉÊж¯Ì¬£¬¶´²ìÕþ²ßÐÅÏ¢£¬ÕÆÎղƸ»Ê±»ú¡£
ÍøÓÑÆÀÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
·¢ËÍ
ÍøÓÑÆÀÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨£¬²¢²»½²Ã÷֤ȯʱ±¨Á¢³¡
ÔÝÎÞÆÀÂÛ
ΪÄãÍÆ¼ö