¿­·¢k8¹ú¼Ê

ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷Õߣº³ÂÎĽ­2025-08-09 17:16:33
hjkdasbfskjwehruigsdukjfql Ëæ×Å´óÊý¾ÝÊÖÒÕÔÚÂþ»­Æ½Ì¨µÄÉî¶ÈÓ¦Óã¬×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµµÚ2ÕÂ×îнÌѧ×ÊÔ´ÔÚBilibiliÂþ»­¿ª·¢ÁìÓòÒý·¢ÈÈÒé¡£±¾ÆÚ½Ì³Ì¾Û½¹ÂþÑÜʽÅÌËã¿ò¼ÜµÄʵսÔËÓã¬Í¨¹ýÂþ»­ÍƼöϵͳµÄÕæÊµ°¸Àý£¬ÏêϸÆÊÎöÊý¾Ý´¦Öóͷ£¡¢ÌØÕ÷¹¤³Ìµ½Ä£×ÓѵÁ·µÄÍêÕûÁ÷³Ì£¬Îª¿ª·¢ÕßÌṩֵµÃÕ䲨µÄÊÖÒÕÖ¸ÄÏ¡£

×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµµÚ2ÕÂÆÊÎö£ºBÕ¾Âþ»­´óÊý¾Ý´¦Öóͷ£Ö¸ÄÏ

µÚÒ»ÕÂ֪ʶ»ØÊ×Óë±¾ÕÂÖØµãÏνÓ

ÔÚ×ÏÌÙׯ԰SparkϵÁн̵̳ÄÊ×ÕÂÖУ¬ÎÒÃǽ¨ÉèÁË»ù´¡¿ª·¢ÇéÐβ¢Íê³ÉÁËÊý¾ÝÊÕÂÞ¡£±¾Ðò´Î2ÕÂ×îÐÂÊÓÆµ×ÅÖØÕ¹Ê¾RDD£¨µ¯ÐÔÂþÑÜʽÊý¾Ý¼¯£©ºÍDataFrame£¨½á¹¹»¯Êý¾ÝÁýͳ£©ÔÚÂþ»­Êý¾Ý´¦Öóͷ£ÖеÄЭͬӦÓá£Í¨¹ýBilibiliÂþ»­ÕæÊÊÓû§»­ÏñÊý¾Ý£¬½Ì³ÌÑÝʾÁËÔõÑùʵÏÖÍòÍò¼¶Âþ»­±êÇ©µÄ¿ìËÙÏ´åªÓëͳ¼Æ£¬ÕâÕýÊǹ¹½¨ÍƼöϵͳµÄÒªº¦Ô¤´¦Öóͷ£°ì·¨¡£

Âþ»­ÌØÕ÷¹¤³ÌÈ«Á÷³Ì½âÃÜ

ÊÓÆµÖÐÌØÊâÒýÈËעĿµÄÊÇSpark MLlibÔÚÌØÕ÷ÌáÈ¡ÖеÄÓ¦ÓÃʵ¼ù¡£Õë¶ÔÂþ»­Æ½Ì¨µÄ¶àÔª»¯Êý¾Ý£¨°üÀ¨ÔĶÁʱ³¤¡¢µãÔÞÐÐΪ¡¢¸¶·Ñ¼Í¼µÈ£©£¬½²Ê¦ÏêϸÑÝʾÁËÔõÑù¹¹½¨TF-IDFÌØÕ÷¾ØÕó£¨´ÊÆµ-ÄæÎĵµÆµÂÊͳ¼ÆÒªÁ죩¡£ÄãÊÇ·ñÒÉÐÄÓÚº£Á¿Âþ»­±êÇ©µÄ¹ØÁªÆÊÎö£¿½Ì³ÌÌá³öµÄ»ùÓÚFP-GrowthËã·¨µÄƵÈÔÏÍÚ¾ò¼Æ»®£¬ÄÜÓÐÓ÷¢Ã÷Óû§Æ«ºÃµÄÂþ»­×éºÏ¼ÍÂÉ¡£

ÂþÑÜÊ½ÍÆ¼öË㷨ʵÏÖϸ½Ú

ÔÚÂþ»­ÍƼö³¡¾°Ï£¬ÊÓÆµÉîÈë½â˵ÁËЭͬ¹ýÂËËã·¨ÔÚSparkÂþÑÜʽ¼¯ÈºÉϵÄʵÏÖÔ­Àí¡£ÌØÊâÖµµÃ¹Ø×¢µÄÊǽÓÄÉALS£¨½»Ìæ×îС¶þ³Ë·¨£©´¦Öóͷ£Óû§-Âþ»­ÆÀ·Ö¾ØÕóµÄÕ½ÂÔ¡£½Ì³ÌչʾÁËÔõÑùÔÚBilibiliÂþ»­°ÙÒÚ¼¶Óû§ÐÐΪÊý¾ÝÖУ¬Í¨¹ýºÏÀíµÄ·ÖÇøÉè¼Æ£¨Partition Strategy£©½«ÅÌËãºÄʱ½µµÍ63%£¬ÕâÖÖÐÔÄÜÓÅ»¯¶ÔÊµÊ±ÍÆ¼öϵͳÓÈΪÖ÷Òª¡£

ʵʱÊý¾Ý´¦Öóͷ£ÓëÐÔÄܵ÷ÓÅ

µÚ2ÕÂ×îиüÐÂÕ½ÚÐÂÔöÁËStructured StreamingÓ¦Óð¸Àý¡£Í¨¹ýÄ£ÄâÂþ»­Æ½Ì¨µÄʵʱÔĶÁÊý¾ÝÁ÷£¬½Ì³ÌÑÝʾÁËÔõÑùʵÏÖ·ÖÖÓ¼¶¸üеÄÂþ»­ÈȶȰñµ¥¡£Õë¶Ôпª·¢Õß³£¼ûµÄOOM£¨ÄÚ´æÒç³ö£©ÎÊÌ⣬½²Ê¦ÌØÊâÖ¸³öºÏÀíÉèÖÃexecutorÄÚ´æ²ÎÊýÓëÐòÁл¯·½·¨£¬ÕâÊÇÈ·±£Spark×÷ÒµÎȹÌÔËÐеÄÒªº¦ÉèÖá£

ÏîĿЧ¹ûÓëÉÌÒµ»¯Ó¦ÓÃÑéÖ¤

ͨ¹ýÍêÕû¸´ÏÖBilibiliÂþ»­ÍƼöϵͳµÄ½¹µãÄ£¿é£¬¸ÃSparkʵ¼ùÏîÄ¿ÒÑʵÏÖµã»÷ÂÊÕ¹Íû׼ȷÂÊ82%µÄÉÌÒµ»¯»ù×¼¡£ÊÓÆµ×îºó´¦Õ¹Ê¾µÄA/B²âÊÔ£¨±ÈÕÕÊÔÑ飩Êý¾ÝÅú×¢£¬ÐÂÍÆ¼öË㷨ʹƽ̨Óû§ÈÕ¾ùÔĶÁʱ³¤ÌáÉý27%¡£ÕâÖÖ´ÓʵÑéÇéÐε½Éú²úϵͳµÄǨáãÂÄÀú£¬ÕýÊDZ¾½Ì³ÌÇø±ðÓÚͬÀà¿Î³ÌµÄ½¹µã¼ÛÖµ¡£

±¾´Î×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµµÚ2ÕÂ×îÐÂÄÚÈÝ£¬Í¨¹ýBilibiliÂþ»­ÕæÊµÓªÒµ³¡¾°µÄÍêÕû»¹Ô­£¬¹¹½¨ÁËÂþÑÜʽÅÌËã¿ò¼ÜÓ뻥ÁªÍø²úÆ·µÄÊÖÒÕÇÅÁº¡£½Ì³ÌÖÐÑÝʾµÄÊý¾Ý´¦Öóͷ£·¶Ê½¡¢Ë㷨ʵÏÖ¼¼ÇÉÓëÐÔÄܵ÷Óżƻ®£¬Îª¿ª·¢ÕßÌṩÁ˿ɸ´ÓõĹ¤Òµ»¯½â¾ö¼Æ»®Ä£°å¡£Ëæ×ÅÂþ»­Æ½Ì¨Êý¾Ý¹æÄ£µÄÒ»Á¬ÔöÌí£¬ÕÆÎÕÕâЩSparkʵսÊÖÒÕ½«³ÉΪ¹¤³ÌʦµÄ½¹µã¾ºÕùÁ¦¡£ ×ÏÌÙׯ԰sparkʵ¼ùÊÓÆµµÚ2ÕÂ×îÐÂBilibiliÂþ»­ Ëæ×ÅÆóÒµÊý×Ö»¯×ªÐͽøÈëÉîË®Çø£¬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ÔÚÉú²úÇéÐÎÖеÄÓ¦Óñê×¼¡£
ÔðÈα༭£º ³ÂÍòÌì
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÕùÐÅÏ¢ÕæÊµ¡¢×¼È·£¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼£¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Ò飬¾Ý´Ë²Ù×÷Σº¦×Ôµ£
ÏÂÔØ¡°Ö¤È¯Ê±±¨¡±¹Ù·½APP£¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«Öںţ¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬£¬¶´²ìÕþ²ßÐÅÏ¢£¬ÕÆÎղƲúʱ»ú¡£
ÍøÓÑ̸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
·¢ËÍ
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨£¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
ΪÄãÍÆ¼ö
Öܺèµt£ºÐÅÓÿ¨¿Ï¶¨²»¿É½»¸øÖÇÄÜÌ壬һ¶¨»á¸øÄãË¢±¬
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿