ÆóÒµÊý¾Ý´¦Öóͷ£µÄÏÖʵÌôÕ½ÓëÍ»ÆÆÆ«Ïò
ÔÚ½ðÈÚ·ç¿ØºÍÖÇÄÜÍÆ¼öµÈÆóÒµ³¡¾°ÖУ¬º£Á¿Êý¾Ý´¦Öóͷ£ÃæÁÙÏìÓ¦ÑÓʱÓëÅÌËã׼ȷ¶ÈµÄË«ÖØÌôÕ½¡£×ÏÌÙׯ԰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ʵ¼ùÊÓÆµÖÜÈ«ÆÊÎöÆóÒµ¼¶´óÊý¾ÝÓ¦ÓõÚ46¹Ø×îС¿ Ëæ×Å´óÊý¾ÝÊÖÒÕÔÚÓÎÏ·ÐÐÒµµÄÉî¶ÈÉøÍ¸£¬"×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµ"ϵÁн̳̳ÉΪ2023Äê×îÊܹØ×¢µÄ¿ª·¢Õßѧϰ×ÊÔ´¡£±¾×¨Ì⽫ÆÊÎöÆóÒµ¼¶Êý¾Ý´¦Öóͷ£ÖÐSpark¿ò¼ÜµÄ½¹µãÓÅÊÆ£¬Á¬ÏµÊµÊ±ÓÎÏ·ÈÕÖ¾ÆÊÎö¡¢Óû§ÐÐΪ׷×ٵȵ䷶ӦÓó¡¾°£¬½âÂëÂþÑÜʽÅÌËãÊÖÒÕÔõÑùÌáÉýÓÎÏ·ÔËӪЧÂÊ¡£Äú½«ÏµÍ³ÕÆÎÕ´Ó¼¯Èº°²Åŵ½ÐÔÄÜÓÅ»¯µÄÈ«Á´Â·ÖªÊ¶¡£SparkÊÖÒÕΪºÎ³ÉΪÓÎÏ·Êý¾Ý´¦Öóͷ£µÄÀûÆ÷
ÔÚ×ÏÌÙׯ԰×îÐÂÐû²¼µÄSparkʵ¼ùÊÓÆµÖУ¬¿ª·¢ÍŶÓÊ×´ÎÅû¶ÁËËûÃÇ´¦Öóͷ£ÈÕ¾ù50TBÓÎÏ·ÈÕÖ¾µÄÊÖÒռܹ¹¡£Spark×÷ΪÄÚ´æÅÌËã¿ò¼Ü£¬Ïà½ÏÓڹŰåHadoop¼¯Èº¿ÉʵÏÖ6-8±¶µÄÐÔÄÜÌáÉý£¬Õâ¹ØÓÚÐèҪʵʱͳ¼ÆÍæ¼ÒÁô´æÂʵÄÓÎÏ·ÆóÒµ¾ßÓÐÒªº¦¼ÛÖµ¡£ÌØÊâÔÚʵʱ·´Íâ¹Ò¼à²â³¡¾°ÖУ¬Spark StreamingµÄ΢Åú´¦Öóͷ£»úÖÆÄܹ»¾«×¼²¶»ñÒì³£²Ù×÷ģʽ¡£
ÆóÒµ¼¶°²ÅŵÄÈý´óÊÖÒÕÍ»ÆÆ
×ÏÌÙׯ԰µÄÊÖÒռܹ¹ÊµÏÖÁËÈý´óÁ¢Ò죺ÊÇ»ìÏý´æ´¢Õ½ÂÔ£¬½«ÈÈÊý¾Ý´æ´¢ÔÚAlluxioÄÚ´æ²ã£¬ÀäÊý¾Ýת´æÖÁHDFS£»ÊǶ¯Ì¬×ÊÔ´µ÷Àíϵͳ£¬ÄÜÆ¾Ö¤ÊµÊ±²¢·¢Á¿×Ô¶¯µ÷½âExecutorÉèÖã»ÊǶ¨ÖÆ»¯µÄSpark SQLÀ©Õ¹£¬Ö§³Ö¶ÔÖØ´óǶÌ×µÄJSONÓÎÏ·ÊÂÎñÊý¾Ý¾ÙÐиßЧÆÊÎö¡£ÕâÖÖÓÅ»¯¼Æ»®Èá¶ÍõÕßÔ¶Õ÷¡·ÊÖÓεÄÈÕ»îÓû§ÆÊÎöËÙÂÊÌáÉý92%¡£
ÓÎÏ·³¡¾°ÏÂÊý¾Ý´¦Öóͷ£È«Á÷³Ì²ð½â
´ÓÓû§µã»÷×°Öðüµ½ÓÎÏ·ÄÚÏûºÄÐÐΪ׷×Ù£¬ÍêÕûµÄÊý¾Ý´¦Öóͷ£Á´ÌõÔõÑùʵÏÖ£¿ÊµÕ½ÊÓÆµÏêϸÑÝʾÁ˰üÀ¨Êý¾Ýϴ媣¨Data Wrangling£©¡¢ÌØÕ÷¹¤³Ì£¨Feature Engineering£©ÔÚÄÚµÄ14¸öÒªº¦°ì·¨¡£ÌØÊâÖµµÃ×¢ÖØµÄÊÇ£¬ÍŶӽÓÄÉDelta Lake¹¹½¨ÁËÖ§³ÖACIDÊÂÎñµÄÊý¾Ýºþ£¬È·±£Õ½¶·»Ø·ÅÈÕÖ¾µÄÍêÕûÐÔУÑé׼ȷÂʵִï99.99%¡£
ÐÔÄܵ÷ÓŵÄÎå¸ö»Æ½ð¹æÔò
ÔõÑù×èÖ¹ShuffleÀú³ÌÖеÄÊý¾ÝÇãбÎÊÌ⣿¿ª·¢×ܼàÔÚÊÓÆµÖзÖÏíÁËËûÃÇÔÚ¡¶Èý¹úÕ½ÂÔ°æ¡·ÏîÄ¿Öеĵ÷ÓÅÂÄÀú£ºÍ¨¹ý×Ô½ç˵PartitionerʵÏÖÍæ¼ÒIDµÄƽºâÂþÑÜ£¬ÓÅ»¯ºóµÄJoin²Ù×÷ºÄʱËõ¼õ78%¡£ÆäËûÊÊÓü¼ÇɰüÀ¨¹ã²¥±äÁ¿µÄÖÇÄÜÓ¦Óá¢CatalystÓÅ»¯Æ÷µÄ²ÎÊýÉèÖã¬ÒÔ¼°JVMÀ¬»ø½ÓÄÉ»úÖÆµÄÉî¶Èµ÷ÓÅ¡£
µä·¶ÓªÒµ³¡¾°µÄʵս´úÂëÆÊÎö
ÊÓÆµÕ¹Ê¾ÁËÈý¸öµä·¶Ó¦ÓãºÊµÊ±ÅÅÐаñÅÌËã¡¢¿ç·þÕ½Êý¾Ý¾ÛºÏ¡¢¸¶ÓöȻ§Á÷ʧԤ¾¯Ä£×Ó¡£ÒÔʵʱÅÅÐаñΪÀý£¬ÏîÄ¿×é½ÓÄÉStructured Streaming¹¹½¨µÄ¹ÜµÀ£¬ÄÜÔÚ500msÄÚÍêÓñ³É·þÍæ¼ÒÕ½Á¦ÅÅÐиüС£Ïà¹Ø´úÂëÆ¬¶ÏÖУ¬ÔËÓÃÁËSpark MLlibµÄ¾ÛÀàËã·¨¾ÙÐÐÍæ¼Ò·ÖȺ£¬²¢Á¬ÏµGraphXÆÊÎöÉç½»¹ØÏµÍøÂç¡£
ÆóÒµ¼¶Çå¾²¼Ü¹¹µÄÉè¼ÆÒªµã
ÔÚ´¦Öóͷ£Ãô¸ÐµÄÖ§¸¶Êý¾Ýʱ£¬×ÏÌÙׯ԰µÄ¼Ü¹¹Ê¦Õ¹Ê¾ÁËËûÃǵĶà²ã¼¶·À»¤ÏµÍ³£ºKerberosÈÏÖ¤°ü¹Ü¼¯ÈºÇå¾²£¬»ùÓÚApache RangerµÄÁм¶È¨ÏÞ¿ØÖÆ£¬ÒÔ¼°Ê¹ÓÃSpark AES¼ÓÃÜËã·¨µÄÊý¾Ý´«Êä±£»¤¡£ÔÚ×îеİ汾ÖУ¬»¹¼¯³ÉÁËÇø¿éÁ´ÊÖÒÕÓÃÓÚÒªº¦²Ù×÷ÈÕÖ¾µÄ´æÖ¤£¬ÕâÏîÁ¢Òì½üÆÚÒÑ»ñµ½ÊÖÒÕרÀûÈÏÖ¤¡£
ͨ¹ýϵÁÐʵ¼ùÊÓÆµµÄÉî¶ÈÆÊÎö£¬ÎÒÃÇÇåÎúµØ¿´µ½SparkÊÖÒÕÔÚÓÎÏ·´óÊý¾ÝÁìÓòµÄǿʢDZÁ¦¡£×ÏÌÙׯ԰µÄ°¸Àý֤ʵ£¬ºÏÀíÔËÓÃÄÚ´æÅÌËã¡¢Á÷´¦Öóͷ£µÈÌØÕ÷£¬ÆóÒµÄܹ»¹¹½¨ÏìÓ¦ËÙÂʸü¿ì¡¢À©Õ¹ÐÔ¸üÇ¿µÄÊý¾Ý´¦Öóͷ£Æ½Ì¨¡£ÕâЩÂÄÀú¶ÔÕýÔÚÊý×Ö»¯×ªÐ͵ÄÓÎÏ·¹«Ë¾¾ßÓÐÖ÷Òª²Î¿¼¼ÛÖµ£¬Ò²Îª¿ª·¢ÕßѧϰÆóÒµ¼¶SparkÓ¦ÓÃÌṩÁ˱ê¸Ë¹æ·¶¡£