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Ó¦ÓÃÌṩÁ˱ê¸Ë¹æ·¶¡£ »î¶¯£º¡¾×ÏÌÙׯ԰sparkʵ¼ùÊÓÆµÖÜÈ«ÆÊÎöÆóÒµ¼¶´óÊý¾ÝÓ¦ÓÃÓÎÏ·×îÐÂÈÈÃÅ¡¿ ÔÚ´óÊý¾ÝÊÖÒÕѸÃÍÉú³¤µÄ½ñÌ죬×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµÍ¨¹ý15СʱÉî¶È½Ìѧ£¬ÍêÕûչʾÁËÆóÒµ¼¶´óÊý¾Ýƽ̨´Ó¼Ü¹¹Éè¼Æµ½ÐÔÄܵ÷ÓŵÄÈ«Á÷³Ì¡£¸Ã½Ì³Ì²»µ«Ïê½âSpark½¹µã×é¼þÔÚOLAP£¨ÔÚÏ߯ÊÎö´¦Öóͷ££©³¡¾°µÄÓ¦Ó㬸üÈÚºÏÕæÊµÉú²úÇéÐÎÖеÄÂþÑÜʽÅÌËã¡¢Êý¾Ýºþ¼Ü¹¹£¨Data Lake Architecture£©¹¹½¨µÈÒªº¦ÒªËØ£¬ÎªÆóÒµ¹¹½¨±ê×¼»¯´óÊý¾ÝÖÐ̨Ìṩʵ¼ù·¶±¾¡£µÚÒ»Õ£ºÆóÒµ¼¶´óÊý¾Ýƽ̨½¨ÉèÍ´µãÆÊÎö
ÔÚÊý×Ö»¯×ªÐÍÀú³ÌÖУ¬¹Å°åÆóÒµ³£ÃæÁÙÊý¾Ý¹Âµº¡¢ÅÌËã×ÊÔ´ÆÌÕÅ¡¢ÊµÊ±´¦Öóͷ£ÄÜÁ¦È±·¦ÈýºÆ½ÙÌâ¡£×ÏÌÙׯ԰Sparkʵս°¸ÀýÖУ¬Í¨¹ýͳһԪÊý¾ÝÖÎÀíºÍDelta LakeÊÖÒÕʵÏֿ粿·ÖÊý¾Ý×ʲúÕûºÏ£¬ÕâÇ¡ÊÇÆóÒµ¼¶Êý¾ÝÖÐ̨½¨ÉèµÄ½¹µãËßÇó¡£½ÓÄÉSpark SQLÓëHudi£¨Hadoop Upserts Deletes and Incrementals£©ÏàÁ¬ÏµµÄ¼Ü¹¹£¬ÀÖ³ÉÍ»ÆÆ¹Å°åETL£¨³éȡת»»¼ÓÔØ£©Á÷³ÌÖеÄÅú´¦Öóͷ£ÐÔÄÜÆ¿¾±¡£ÔõÑù¹¹½¨¼ÈÄÜÖ§³ÖPB¼¶ÀëÏßÅÌË㣬ÓÖÄÜÖª×ãºÁÃ뼶ʵʱÆÊÎöÐèÇóµÄ»ìÏý¼Ü¹¹£¿ÕâÕýÊDZ¾Ì×ÊÓÆµ×ÅÖØ½â¾öµÄ¹¤³Ìʵ¼ùÎÊÌâ¡£
µÚ¶þÕ£ºSpark½¹µã×é¼þ½ø½×Ó¦ÓÃÆÊÎö
ÊÓÆµÉî¶È½â¹¹Spark ExecutorÄÚ´æÄ£×Óµ÷ÓÅÕ½ÂÔ£¬Õë¶ÔÆóÒµ³£¼ûµÄGC£¨À¬»ø½ÓÄÉ£©Í£ÁôÎÊÌ⣬Ìá³ö»ùÓÚRDD£¨µ¯ÐÔÂþÑÜʽÊý¾Ý¼¯£©ÑªÍ³¹ØÏµµÄ»º´æ¸´ÓûúÖÆ¡£ÔÚShuffleÀú³ÌÓÅ»¯»·½Ú£¬Í¨¹ý¶¯Ì¬µ÷Àíspark.sql.shuffle.partitions²ÎÊý£¬²¢Á¬ÏµÊý¾ÝÇãб¼ì²âËã·¨£¬Ê¹Ä³½ðÈÚ¿Í»§±¨±íÌìÉúЧÂÊÌáÉý4±¶¡£ÁîÈ˹Ø×¢µÄÊÇ£¬½Ì³Ì»¹Õ¹Ê¾ÁËStructured StreamingÔÚIoT×°±¸ÈÕÖ¾´¦Öóͷ£ÖеĶ˵½¶Ë£¨End-to-End£©ÊµÏÖ£¬Éæ¼°Exactly-OnceÓïÒå°ü¹ÜÓë¼ì²éµã£¨Checkpoint£©»Ö¸´»úÖÆµÈÒªº¦ÊÖÒյ㡣
µÚÈýÕ£ºÉú²úÇéÐθ߿ÉÓüܹ¹Éè¼Æ½ÒÃØ
ÆËÃæÁÙ¼¯Èº¹æÄ£µÖ´ï2000+½ÚµãµÄ³¬´óÐͰ²ÅÅʱ£¬×ÏÌÙׯ԰ÊÖÒÕÍŶÓÁ¢ÒìÐԵؽÓÄÉ·Ö²ã×ÊÔ´µ÷Àíϵͳ¡£Í¨¹ýYARN£¨Yet Another Resource Negotiator£©ÐÐÁÐÓÅÏȼ¶Õ½ÂÔÓëK8sµ¯ÐÔÀ©ÈÝ»úÖÆÁª¶¯£¬ÔÚ˫ʮһ´ó´Ùʱ´ú°ü¹ÜÁ˽¹µãÓªÒµ99.99%µÄSLA£¨Ð§ÀÍÆ·¼¶ÐÒ飩¡£±¾¶ÎÊÓÆµÍêÕû»¹ÔÁËZookeeper¼¯ÈºÄÔÁÑ£¨Split-Brain£©ÎÊÌâµÄÅŲéÀú³Ì£¬²¢Õ¹Ê¾»ùÓÚRaft¹²Ê¶Ë㷨ˢкóµÄHA£¨¸ß¿ÉÓ㩼ƻ®¡£¹ØÓÚÆóÒµÓû§×îÌåÌùµÄÇå¾²¹Ü¿ØÐèÇó£¬ÊÓÆµÌṩ´ÓKerberosÈÏÖ¤µ½Ï¸Á£¶ÈRBAC£¨»ùÓÚ½ÇÉ«µÄ»á¼û¿ØÖÆ£©µÄÍêÕûʵÏÖ·¾¶¡£
µÚËÄÕ£º´óÊý¾ÝÖÎÀíϵͳʵսÑݽø
ÔÚÊý¾ÝÖÊÁ¿¹Ü¿ØÁìÓò£¬½Ì³ÌÑÝʾÁËGreat Expectations¿ò¼ÜÓëSparkµÄÉî¶È¼¯³É£¬ÊµÏÖÊý¾Ý¼¯ÍêÕûÐÔУÑéµÄ×Ô¶¯»¯Á÷Ë®Ïß¡£Õë¶ÔÊý¾ÝѪԵ׷×Ù³¡¾°£¬½ÓÄÉApache AtlasÔªÊý¾ÝÖÎÀíϵͳ¹¹½¨¿ÉÊÓ»¯ÑªÔµÍ¼Æ×£¬ÕâÔÚij¿ç¹ú¼¯ÍŵÄGDPRºÏ¹æÉó¼ÆÖÐʩչҪº¦×÷Óá£ÌØÊâÖµµÃ¹Ø×¢µÄÊÇ£¬ÊÓÆµ´´Á¢ÐԵؽ«Êý¾ÝÖÎÀí£¨Data Governance£©Óë»úеѧϰƽ̨Á¬Ïµ£¬Í¨¹ý¶¯Ì¬ÌØÕ÷¼à¿ØÓÐÓÃÔ¤·ÀÄ£×ÓÆ¯ÒÆÎÊÌâ¡£ÕâÒ»Õ½ڻ¹Ïêϸ½â¶ÁÁËDelta LakeµÄACIDÊÂÎñÌØÕ÷ÔõÑù°ü¹ÜÆóÒµ¼¶Êý¾Ý¿ÍÕ»µÄ¶ÁдһÖÂÐÔ¡£
µÚÎåÕ£ºÆóÒµ¼¶¿ª·¢¹æ·¶ÓëЧÄÜÌáÉý
ÔÚÒ»Á¬¼¯³É»·½Ú£¬×ÏÌÙׯ԰Ìá³ö»ùÓÚJenkins PipelineµÄSpark×÷Òµ×Ô¶¯´ò°üÁ÷Ë®Ïß¡£Í¨¹ýSpark-TEA£¨Test Environment Automation£©¿ò¼ÜʵÏÖ²âÊÔÊý¾Ý×Ô¶¯ÌìÉúÓë¶àÇéÐÎÉèÖÃÖÎÀí£¬Ê¹Ä³µçÉ̿ͻ§µÄ°æ±¾Ðû²¼ÖÜÆÚËõ¶Ì60%¡£ÊÓÆµ»¹ÏµÍ³ÊáÀíÁËParquetÎļþÃûÌõÄÁÐʽ´æ´¢ÓÅ»¯¼¼ÇÉ£¬ÒÔ¼°Spark 3.0×Ô˳ӦÅÌÎÊÖ´ÐУ¨Adaptive Query Execution£©´øÀ´µÄÐÔÄÜÌáÉý°¸Àý¡£Õ½ÚÍêÕû·ºÆðÁËÒ»¸öÈÕ´¦Öóͷ£10ÒÚ¶©µ¥µÄʵʱ·´Ú²ÆÏµÍ³¹¹½¨È«Àú³Ì£¬º¸Ç´ÓFlinkÓëSparkÐͬÅÌËãµ½¶àÎ¬ÌØÕ÷ÒýÇæ¿ª·¢µÄÈ«ÊÖÒÕջʵ¼ù¡£
ÕâÌ×ÍêÕû°æ×ÏÌÙׯ԰Sparkʵ¼ùÊÓÆµµÄ¼ÛÖµ£¬ÔÚÓÚÂòͨÁË¿ªÔ´ÊÖÒÕµ½ÆóÒµ¼¶Â䵨µÄÒ»¹«Àï¡£Ëü²»µ«º¸ÇÅúÁ÷Ò»Ì壨Batch-Stream Unification£©¡¢ÅÌËã´æ´¢ÊèÉ¢µÈÇ°ÑØ¼Ü¹¹Éè¼Æ£¬¸üÉî¶ÈÆÊÎöÁËÉú²úÇéÐÎÖÐ×ÊÔ´µ÷Àí¡¢ÔÖ±¸»Ö¸´µÈÒªº¦ÔËάÊÖÒÕ¡£¹ØÓÚÍýÏë¹¹½¨±ê×¼»¯Êý¾ÝÖÐ̨µÄÆóÒµ£¬±¾½Ì³Ì¿É×÷ΪÍêÕûµÄÊÖÒÕʵÑéÖ¸ÄÏ£¬×ÊÖúÍŶӿìËٴÇкϽðÈÚ¼¶¿É¿¿ÐÔÒªÇóµÄ´óÊý¾Ý´¦Öóͷ£Æ½Ì¨¡£