ÔÚÊý¾ÝÇý¶¯³ÉΪÆóÒµ½¹µã¾ºÕùÁ¦µÄ½ñÌ죬ApacheSpark×÷Ϊ¿ªÔ´´óÊý¾Ý´¦Öóͷ£Æ½Ì¨µÄÁìÍ·Ñò£¬ÔÙ´ÎÓÀ´ÁËÁîÈËÕñ·ÜµÄÖØ´ó°æ±¾¸üСª¡ªSpark3.2.0¡£ÕâÒ»°æ±¾²»µ«½öÊǶÔǰһ°æ±¾µÄÓÅ»¯£¬¸üÒâζ×ÅSparkÂõÈëÁËÒ»¸öȫеÄÖÇÄÜ»¯¡¢¶àÑù»¯¡¢¸ü¸ßЧµÄʱ´ú¡£
ËüÈÚºÏÁËÒµ½ç×îеÄÊÖÒÕÇ÷ÊÆ£¬³ä·ÖÑéÕ¹ÁËÆäÔÚÊý¾ÝÆÊÎö¡¢»úеѧϰ¡¢Á÷´¦Öóͷ£µÈÁìÓòµÄÖØ´óDZÁ¦£¬ÎªÆóÒµÓû§ÌṩÁËÔ½·¢Ç¿Ê¢¡¢Îȹ̺ÍÒ×ÓõŤ¾ß¡£
Spark3.2.0ÔÚÐÔÄÜÌåÏÖÉÏʵÏÖÁËÏÔÖøÌáÉý¡£Í¨¹ýµ×²ã¼Ü¹¹µÄÓÅ»¯£¬Ðµİ汾ʵÏÖÁ˸ü¿ìµÄÅÌÎÊËÙÂʺ͸üµÍµÄÑÓ³Ù£¬¼«´óµØÌáÉýÁË´ó¹æÄ£Êý¾Ý´¦Öóͷ£µÄЧÂÊ¡£ÆñÂÛÊÇÖØ´óµÄSQLÅÌÎÊ£¬Õվɴó¹æÄ£µÄ»úеѧϰģ×ÓѵÁ·£¬¶¼ÄÜÔÚSpark3.2.0ÖлñµÃ¸üΪ˳³©µÄÌåÑé¡£
Ϊ´Ë£¬¿ª·¢ÍŶÓÔÚµ÷ÀíÆ÷ÓëÖ´ÐÐÒýÇæÉϾÙÐÐÁËÓÅ»¯£¬ïÔÌÁËÄÚ´æÕ¼Óã¬Ìá¸ßÁËʹÃüµ÷ÀíµÄЧÂÊ£¬ÈÃÓû§ÔÚÓ¦¶Ôº£Á¿Êý¾ÝʱÓÎÈÐÓÐÓà¡£
ÁíÒ»·½Ã棬Spark3.2.0Í»ÆÆÁ˹ŰåµÄ¼òµ¥²Ù×÷ģʽ£¬ÍƳöÁËһϵÁÐÖÇÄÜ»¯ÌØÕ÷¡£ÀýÈ磬ÔöÇ¿µÄ×Ô˳ӦÅÌÎÊÓÅ»¯£¨AQE£©£¬ÈÃϵͳ¿ÉÒÔÆ¾Ö¤ÏÖʵÔËÐÐʱµÄÇéÐÎ×Ô¶¯µ÷½âÖ´ÐÐÍýÏ룬¶¯Ì¬ÓÅ»¯ÐÔÄÜÌåÏÖ¡£ÕâÒâζ×Å£¬¼´¼´ÊÇÔÚÊý¾ÝÁ¿Ò»Ö±×ª±äµÄÇéÐÎÖУ¬SparkÒÀÈ»¿ÉÒÔ¼á³Ö¸ßЧÌåÏÖ£¬ÎªÆóÒµ¶Ëµ½¶ËµÄÊý¾ÝÆÊÎöºÍ¾öÒéÌṩ¼áʵ°ü¹Ü¡£
°æ±¾Öл¹ÒýÈëÁ˸ü¶àµÄ»úеѧϰ¹¤¾ßºÍ×Ô¶¯»¯ÌØÕ÷£¬´ó´ó½µµÍÁË¿ª·¢Ãż÷£¬×ÊÖú¸ü¶àÆóҵʵÏÖAI¸³ÄÜ¡£
Spark3.2.0ÔöÇ¿Á˶ÔÖÖÖÖÊý¾ÝÔ´ºÍ´æ´¢ÃûÌõÄÖ§³Ö£¬°üÀ¨HDFS¡¢S3¡¢AzureDataLakeµÈÖ÷Á÷ÔÆ´æ´¢Æ½Ì¨£¬ÎÞ·ì¶Ô½Ó¶àÑù»¯µÄÊý¾ÝÉú̬ϵͳ¡£Óë´Ë¹ØÓڽṹ»¯Êý¾ÝºÍ·Ç½á¹¹»¯Êý¾ÝµÄ´¦Öóͷ£ÄÜÁ¦Ò²½øÒ»²½ÌáÉý£¬Ê¹µÃÊý¾Ý¹¤³ÌʦºÍÊý¾Ý¿ÆÑ§¼Ò¿ÉÒÔÔÚÒ»¸öͳһµÄƽ̨ÉϸßЧÐ×÷£¬ÌáÉýÕûÌåÊÂÇéÁ÷³ÌµÄÎÞаÐÔºÍЧÂÊ¡£
ÔÚÇå¾²ÐԺͿɿ¿ÐÔ·½Ã棬Spark3.2.0Ò²×ö³öÁËÖØ´óˢС£°æ±¾¼ÓÈëÁ˶àÌõÀíµÄÇå¾²²½·¥£¬°üÀ¨ÔöÇ¿µÄȨÏÞÖÎÀí¡¢Êý¾Ý¼ÓÃܺÍÉó¼Æ×·×Ù£¬È·±£Êý¾ÝÔÚ´¦Öóͷ£ºÍ´«ÊäÀú³ÌÖеÄÇå¾²¡£²»¹ÜÊÇÔÚÍâµØ°²ÅÅÕÕ¾ÉÔÆ¶ËÇéÐΣ¬ÆóÒµ¶¼ÄÜÒÀÀµÕâÌ׸üÇå¾²¡¢¸ü¿É¿¿µÄ½â¾ö¼Æ»®£¬¶¨ÐÄÕö¿ª´óÊý¾ÝÕ½ÂÔ¡£
Spark3.2.0²»µ«ÊÇÊÖÒÕÉϵÄÁ¢Ò죬¸üÏóÕ÷×ÅApacheSparkÏòÖÇÄÜ»¯¡¢ÔÆÔÉúºÍÆóÒµ¼¶Ó¦ÓÃÂõ³öµÄ¼áʵ³ÌÐò¡£ÕâÒ»Çж¼Òâζ×Å£¬Î´À´µÄÊý²Ö¡¢AI¡¢ÎïÁªÍøµÈ³¡¾°£¬½«ÒòSparkµÄÖÜÈ«Éý¼¶¶ø±äµÃÔ½·¢¸ßЧ¡¢ÖÇÄܺͿÉÐÅ¡£ÆóÒµºÍ¿ª·¢ÕßÃÇ£¬ÕýÕ¾ÔÚÕâÒ»²¨Àå¸ïµÄÀ˳±Ö®áÛ£¬¿ªÆôÊý¾ÝмÍÔª¡£
DeepDiveintoSpark3.2.0£ºÁÁµã¹¦Ð§ÓëÏÖʵӦÓÃÔ¶¾°
Ëæ×ÅSpark3.2.0µÄÕýʽÐû²¼£¬ÐÐÒµÄÚÍâ¶ÔÕâ¿îƽ̨δÀ´µÄÉú³¤³äÂúÆÚ´ý¡£ÈÃÎÒÃÇÉîÈë̽ÌÖÕâ´ÎÉý¼¶µÄÁÁµã¹¦Ð§£¬ÒÔ¼°ËüÃÇÔõÑùÔÚÏÖʵ³¡¾°ÖÐΪÆóÒµ¸³ÄÜ£¬´øÀ´Àå¸ï¡£
Ò»¡¢ÔöÇ¿µÄÐÔÄÜÓÅ»¯Óë×ÊÔ´µ÷ÀíÄÜÁ¦ÐÔÄÜÒ»Ö±ÊÇSparkµÄ½¹µã¾ºÕùÁ¦Ö®Ò»¡£Ð°汾ÖУ¬µ÷ÀíÆ÷µÄÓÅ»¯ÏÔÖøÌáÉýÁË×ÊԴʹÓÃЧÂÊ¡£ÀýÈ磬Baselineµ÷ÀíÆ÷Éý¼¶ÎªAdaptiveExecution£¨×Ô˳ӦִÐУ©£¬Äܹ»Æ¾Ö¤Ê¹ÃüµÄÏÖʵÔËÐÐÇéÐÎ×Ô¶¯µ÷½âÖ´ÐÐÕ½ÂÔ¡£
ÕâÒâζ×ÅÔÚ´¦Öóͷ£Í»·¢µÄá¯Áë¸ºÔØÊ±£¬SparkÄÜ×Ô¶¯ÓÅ»¯×ÊÔ´·ÖÅÉ£¬ïÔÌÆÚ´ýʱ¼ä£¬´Ó¶øÊµÏÖ¿ìËÙÏìÓ¦ºÍ¸ßÍÌÍ¡£
Ò»Á¬µÄµ×²ãÓÅ»¯£¬ÈçÖ§³ÖGPU¼ÓËÙ¡¢´ó¹æÄ£ShuffleÓÅ»¯Ê¹µÃÊý¾Ý´«ÊäºÍÖÐÐÄÊý¾Ý´¦Öóͷ£Ô½·¢¸ßЧ£¬Ò²¼«´óµØËõ¶ÌÁËѵÁ·ºÍÆÊÎöµÄʱ¼ä¡£ÆóÒµ¿ÉÒÔÔÚ¼á³Ö±¾Ç®¿ØÖƵĴ¦Öóͷ£¸ü´ó¹æÄ£ºÍ¸üÖØ´óµÄʹÃü£¬Íƶ¯²úÆ·Á¢ÒìºÍÊг¡·´Ó¦ËÙÂÊ¡£
¶þ¡¢ÔöÇ¿µÄ»úеѧϰÓë×Ô¶¯»¯ÄÜÁ¦ÔÚAIºÍ×Ô¶¯»¯³ÉΪÆóÒµÊý×ÖÕ½ÂÔÖ÷Òª×é³É²¿·ÖµÄÅä¾°Ï£¬Spark3.2.0ÒýÈëÁË´ó×Ú±ã½Ý¹¤¾ßºÍˢУ¬Ê¹»úеѧϰÁ÷³ÌÔ½·¢Ë³³©¡£MLlib¿âµÄÐÔÄÜÓÅ»¯ÏÔÖøÌáÉý£¬Ö§³Ö¸ü¶àÀàÐ͵ÄÄ£×ÓѵÁ·ºÍµ÷ÓÅÕ½ÂÔ¡£AutoML¹¤¾ß»áƾ֤Êý¾ÝÌØÕ÷×Ô¶¯Ñ¡Ôñ×î¼ÑÄ£×ÓÓë²ÎÊýÉèÖ㬼«´ó½µµÍÁËAI¿ª·¢Ãż÷£¬È÷ÇרҵÈËʿҲÄÜ¿ìËÙ°²ÅÅÖÇÄÜÓ¦Óá£
SparkStreamingµÄÔöǿʹʵʱÁ÷´¦Öóͷ£±äµÃ¸üÎȹ̡¢¸üÒ×ÖÎÀí¡£Á¬ÏµKafkaÓëAzureEventHubµÈÐÂÎÅÆ½Ì¨µÄ¼¯³É£¬ÆóÒµ¿ÉÒÔ´òÔì¾ßÓе¯ÐԺ͸߿ɿ¿ÐÔµÄʵʱÊý¾ÝÆÊÎöϵͳ£¬ÎªIoT¡¢½ðÈÚ¡¢ÎïÁ÷µÈÐÐÒµµÄ¼´Ê±¾öÒéÌṩԴԴһֱµÄ¶¯Á¦¡£
Èý¡¢ÔÆÔÉú¼Ü¹¹Óë¶àÔ´Ö§³ÖµÄÍØÕ¹ÔÆÅÌËãÇéÐδÙʹSparkÔ½·¢×¢ÖØÔƶ˰²ÅŵÄÎÞаÐÔÓ뵯ÐÔ¡£Spark3.2.0ÍêÉÆÁËKubernetesµÄÖ§³Ö£¬Ê¹µÃÔÚÔÆ¶Ë´î½¨´ó¹æÄ£¼¯Èº¸üÀû±ã¡¢¸ü¸ßЧ¡£µ¯ÐÔµ÷ÀíºÍ×Ô¶¯À©ËõÄÜÁ¦¿ÉÒÔÆ¾Ö¤ÓªÒµÐèÇó¶¯Ì¬µ÷½â×ÊÔ´£¬ÓÐÓýµµÍ±¾Ç®£¬Ìá¸ßʹÓÃÂÊ¡£
Óë´ËÖ§³Ö¸ü¶àµÄ´æ´¢ºÍÊý¾ÝÔ´£¬ÔöÇ¿ÁËÓëAWSS3¡¢AzureBlobµÈÔÆÆ½Ì¨µÄ¼æÈÝÐÔ£¬ÔÊÐíÆóÒµÔÚ²î±ðµÄÔÆÇéÐÎÖÐ×ÔÓÉǨáãºÍ°²ÅÅÊý¾Ý´¦Öóͷ£Ê¹Ãü¡£Õâ²»µ«¼«´óµØÌáÉýÁ˶àÔÆÕ½ÂÔµÄÖ´ÐÐЧÂÊ£¬»¹ïÔÌÁËÊý¾Ý¹Âµº£¬ÖúÍÆÆóÒµµÄÊý×Ö»¯Éú̬ϵͳ½¨Éè¡£
ËÄ¡¢Çå¾²ÓëºÏ¹æÐÔ°ü¹ÜËæ×ÅÊý¾Ý±£»¤¹æÔòÈÕÒæÑϿᣬSpark3.2.0ÌØÊâÔöÇ¿ÁËÇå¾²ÐÔ¡£Ð°æÒýÈëϸÁ£¶ÈȨÏÞ¿ØÖÆ¡¢Êý¾Ý¼ÓÃܺÍÉó¼ÆÈÕÖ¾µÈ¹¦Ð§£¬Öª×ãÆóÒµ¶ÔÃô¸ÐÐÅÏ¢µÄÑÏ¿áÒªÇó¡£Í¨¹ýÓëÆóÒµÄÚ²¿Ç徲ϵͳµÄ¼¯³É£¬Spark¿ÉÒÔÔÚÈ·±£Ð§ÂʵĺϹæÔËÓª¡£
°æ±¾»¹Ö§³Ö¶à×â»§ÇéÐΣ¬È·±£²î±ð²¿·Ö»òÓû§µÄÊý¾Ý¸ôÀ룬×èÖ¹Êý¾Ýй¶Σº¦¡£¹ØÓÚ½ÓÄÉÔÆ¶Ë°²ÅŵįóÒµ£¬ÕâһϵÁÐÇå¾²Éý¼¶¼«´óÌáÉýÁËÐÅÈζȣ¬ÎªÆÕ±é½ÓÄÉ´óÊý¾Ýƽ̨ɨ³ýÁËÕϰ¡£
δÀ´Õ¹Íû£ºÕÆÎÕÖÇÄܺÍÔÆÉϵÄÊý¾Ýʱ´ú¿ÉÒÔÔ¤¼û£¬Î´À´Spark½«ÔÚAI¡¢±ßÑØÅÌËãºÍÎïÁªÍøµÈÇ°ÑØÁìÓòʩչ¸ü×ÅÊöÓá£Ëæ×ÅÓ²¼þÊÖÒÕµÄÉý¼¶ºÍËã·¨µÄÁ¢Ò죬Spark½«Ò»Ö±ÓÅ»¯ÐÔÄÜ£¬ÌáÉýÒ×ÓÃÐÔ£¬Íƶ¯Êý¾ÝÉú̬µÄ²ýÊ¢¡£ÆóҵʹÓÃSpark3.2.0£¬²»µ«¿ÉÒÔʵÏÖÏÖÓÐÓªÒµµÄÊý×Ö»¯×ªÐÍ£¬»¹Äܾò¿Í³ö¸ü¶àδ֪µÄDZÁ¦£¬Õ¾ÔڿƼ¼µÄÇ°ÑØ¡£
ÎÞÂÛÄãÊÇÊý¾Ý¿ÆÑ§¼Ò¡¢¼Ü¹¹Ê¦£¬ÕվɯóÒµ¾öÒéÕߣ¬Spark3.2.0¶¼ÎªÄãÌṩÁËÒ»¸öÇ¿ÓÐÁ¦µÄÎę̀£¬×ÊÖúÄãÔÚÕâ¸öÊý¾ÝºéÁ÷ÖÐÍÑÓ±¶ø³ö¡£Î´À´ÒÑÀ´£¬ÕýµÈÄãÈ¥Ó½ÓлúÔµ£¬¶øÕâÕýÊÇ¿ªÆôÁ¢Òì¡¢Çý¶¯ÔöÌíµÄ×î¼Ñʱ»ú¡£