±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÖ÷Òª·ÖÏíÍøÒ×ÈçºÎÎ§ÈÆºÍ¸ÄÔ쿪Դ¼¼Êõ£¬ÒÔ²úÆ·»¯Ë¼Î¬´òÔìÍøÒ××Ô¼ºµÄ´óÊý¾Ýƽ̨¡£ |
|
Ëæ×ÅÍøÒ×ÔÆÒôÀÖ¡¢ÐÂÎÅ¡¢¿¼À¡¢ÑÏÑ¡µÈ»¥ÁªÍøÒµÎñµÄ¿ìËÙ·¢Õ¹£¬ÍøÒ׿ªÊ¼¼ÓËÙ´óÊý¾Ýƽ̨½¨É裬ÒÔÌá¸ßÊý¾Ý»ñÈ¡ËÙ¶È£¬ÌáÉýÊý¾Ý·ÖÎöЧÂÊ£¬¸ü¿ì·¢»ÓÊý¾Ý¼ÛÖµ¡£
±¾´ÎÑݽ²Ö÷Òª·ÖÏíÍøÒ×ÈçºÎÎ§ÈÆºÍ¸ÄÔ쿪Դ¼¼Êõ£¬ÒÔ²úÆ·»¯Ë¼Î¬´òÔìÍøÒ××Ô¼ºµÄ´óÊý¾Ýƽ̨£¬ Ò²»á·ÖÏíÒ»ÏÂÍøÒ×ÔÚ´óÊý¾Ýƽ̨¹¹½¨ºÍÖ§³Å»¥ÁªÍøÒµÎñ¹ý³ÌÖÐÃæÁٵļ¼ÊõÌôÕ½£¬ÒÔ¼°ÎÒÃÇÔÚµ÷¶È¡¢°²È«¡¢ÔªÊý¾Ý¹ÜÀí¡¢spark¶à×â»§¡¢SQLÁ÷¼ÆËã¡¢¸ßÐÔÄܲéѯÒýÇæµÈ¹Ø¼ü¼¼Êõ»·½ÚµÄʵ¼ù¾Ñé¡£
×îºó»á½éÉÜһϣ¬ÍøÒ×´óÊý¾Ýƽ̨δÀ´µÄ¼¼Êõ·Ï߹滮¡£
·ÖÏí´ó¸Ù£º
1¡¢´óÊý¾Ýƽ̨¸ÅÊö
2¡¢Sloth£ºÊµÊ±¼ÆËã
3¡¢Kudu£ºÊµÊ±¸üд洢
4¡¢Kyuubi£ºSpark ¶à×â»§
5¡¢Î´À´¹æ»®
ÕýÎÄ£º
2008Äê֮ǰ£¬ÍøÒ×Ò»Ö±ÔÚʹÓô«Í³Êý¾Ý¿âÈí¼þ£¬Ëæ×ÅÊý¾ÝÁ¿µÄÔö´óÖð½¥¹ý¶Éµ½Hadoopƽ̨¡£2009Äê£¬ÍøÒ×·¢ÏÖµ¥¶ÀµÄHadoopƽ̨²»×ãÒÔÂú×ãÄÚ²¿Êý¾ÝÁ¿µÄÐèÇ󣬱㿪ʼ×ÅÊÖÑз¢Ïà¹Ø¹¤¾ß¡£2014ÄêÖ®ºó£¬Ëæ×ÅÍøÒ×ÔÆÒôÀÖºÍÍøÒ׿¼ÀµÈÒµÎñµÄ·¢Õ¹£¬ÍøÒ×ÔÓй¤¾ßÒ²ÎÞ·¨Ö§³ÅÅÓ´óµÄÊý¾ÝʹÓÃËßÇó£¬ÍøÒ׿ªÊ¼½øÈëÆ½Ì¨»¯½×¶Î£¬ÍƳöÍøÒ×ÃÍáïºÍÍøÒ×ÓÐÊýÁ½¿î²úÆ·¡£
ÍøÒ×ÃÍáïÊÇÃæÏòÍøÒ×¼¯ÍÅÄÚ²¿µÄ´óÊý¾Ýƽ̨Èí¼þ£¬ÍøÒ×ÓÐÊýÊÇÆóÒµ¼¶ÖÇÄÜ¿ÉÊÓ»¯·ÖÎöƽ̨¡£ÍøÒ×Ö®ËùÒÔÍÆ³öÕâÁ½¿î²úÆ·£¬ÊÇÒòΪµ¥´¿Î¬»¤Hadoop²¢²»ÄÜÂú×ãÊý¾ÝʹÓÃËßÇó£¬ÎÒÈÏΪ×îºËÐĵÄÔÒòÊÇ´óÊý¾ÝϵͳÄÑÒÔʹÓã¬ÒÔÏÂÊÇÒ»¸öµäÐ͵ÄÊý¾Ý´¦ÀíÁ÷³Ì£º

Êý¾Ý´ÓKafka³ö·¢£¬Í¨¹ýFlink´¦ÀíͬʱдÈëHDFSºÍHBase¡£HDFSµÄÊý¾Ý¾¹ýSpark½øÒ»²½´¦Àí×îÖÕ½«»ã×ÜÊý¾Ý·µ»ØHDFS£¬´«µÝ¸øBIÈí¼þ½øÐÐչʾ»òÕßΪÏßÉÏÊý¾ÝÌṩ֧³Ö¡£Èç¹û½«´óÊý¾ÝϵͳÓëÊý¾Ý¿âÄÚºË×ö¶Ô±È£¬ÎÒÃÇ·¢ÏÖKafkaÆäʵÀàËÆÓÚÊý¾Ý¿âÖеÄRedo
log£¬Hbase/ES´ú±íÒ»¸öË÷Òý£¬¾¹ý½øÒ»²½»ã×Ü×îÖÕÐγÉÎﻯÊÓͼHDFS Parquet¡£
±íºÍË÷Òýͨ¹ýKafkaÈÕÖ¾±£Ö¤Ò»Ö£¬Ï൱ÓÚ½«×é¼þÖØÐÂ×é³ÉÀàÊý¾Ý¿âÄں˵ÄÑù×ÓÈø÷×é¼þÅäºÏ¹¤×÷£¬±£Ö¤ÏµÍ³µÄÎȶ¨ÐÔºÍÐÔÄÜ¡£ÕûÌåÀ´¿´£¬Õâ¼þÊÂÇé±È½Ï¸´ÔÓ£¬Ò»·¬ÕÛÌÚÏÂÀ´£¬ÎÒÃÇÈÏΪ´óÊý¾Ýϵͳ»¹ÊDZȽÏÄÑÓõģ¬ÐèÒª»¨·Ñ´óÁ¿¾«Á¦×é×°´îÅ䣬ËäÈ»ÕâÒ²Ö¤Ã÷ÁË´óÊý¾Ýϵͳ±È½ÏÁé»î£¬µ«È·Êµ½øÈëÃż÷½Ï¸ß¡£
ÎÒÃÇ¿¼ÂÇÒª×öÒ»¸ö´óÊý¾Ýƽ̨£¬¾ÍÐèÒªÏȸãÇå³þÎÒÃǵÄÐèÇóÊÇʲô¡£ÎÒÈÏΪÖ÷ÒªÓÐÒÔÏÂËĵ㣺
Ò»ÊÇ¿ÉÌṩ´óÊý¾ÝµÄ»ù´¡ÄÜÁ¦;
¶þÊÇÔÚ»ù´¡Ö®ÉÏÌá¸ßʹÓÃЧÂÊ£¬ËùνµÄʹÓÃÊÇÖ¸Óû§ÔÚÎÒÃǵĴóÊý¾Ýƽ̨ÉÏ¿ª·¢Êý¾ÝÒµÎñ£¬°üÀ¨Êý¾Ý²Ö¿â¡¢Êý¾Ý¿ÉÊÓ»¯¡¢ÍƼöÒµÎñµÈµÄʹÓÃЧÂÊ£¬ÕâÊÇ´óÊý¾Ýƽ̨µÄºËÐļÛÖµ;
ÈýÊÇÌáÉý¹ÜÀíЧÂÊ£¬ÔËÓªÒ»¸ö´óÊý¾Ýƽ̨»áÉæ¼°µ½¸÷·½ÃæµÄ¹ÜÀí£¬±ÈÈçÉý¼¶¡¢À©ÈÝ¡¢¼¼ÊõÖ§³ÖµÄ´ú¼ÛµÈ£¬ÎÒÃÇÐèÒªÌáÉý¹ÜÀíЧÂʽø¶ø½µµÍ³É±¾¡£
ËÄÊǶà×â»§°²È«£¬´óÊý¾Ýƽ̨·þÎñÓÚÕû¸ö¹«Ë¾£¬¹«Ë¾ÄÚ²¿¶àÌõÒµÎñÏß¶¼»áʹÓ㬶à×â»§°²È«ÊDZر¸¹¦ÄÜ¡£
ÔÚÕâЩÐèÇó֮ϣ¬ÍøÒ×´óÊý¾Ý×îÖÕµÄÕûÌå¼Ü¹¹ÈçÏ£º

Õû¸öƽ̨Ö÷ÒªÓÐËÄ´óÌØµã£º
Ò»ÊÇͳһԪÊý¾Ý·þÎñ£¬Hive¡¢Spark¡¢Impala¡¢HBaseµÈÔªÊý¾Ý´òͨ£¬Ò²¾ÍÊÇÆ½Ì¨ÉÏÈÎÒâÒ»Õűí¼È¿ÉÓÃHive²éѯ£¬Ò²¿ÉÓÃSpark¡¢ImpalaÀ´²é£¬²»ÐèÒªÔÚ²»Í¬ÏµÍ³Ö®¼ä×öÔªÊý¾ÝµÄͬ²½¡£
¶þÊÇÁ÷¼ÆËã·þÎñ£¬ÎÒÃÇÓÃSQL×÷Ϊ¿ª·¢·½Ê½£¬ÍêÈ«ÓëÀëÏßSQL¼æÈÝ¡£
ÈýÊÇÊý¾Ý°²È«ÓëȨÏÞ£¬Spark¡¢Hive¡¢Impala¡¢HDFSµÈ×é¼þµÄȨÏÞ×Ô¶¯Í¬²½¡£´ÓSpark¡¢Hive¡¢Impala½øÀ´µÄÇëÇó£¬È¨ÏÞ¶¼¿ÉÒԵõ½¿ØÖÆ£¬ÎÞÂÛÊÇͨ¹ý±í½Ó¿ÚÀ´·ÃÎÊ»¹ÊÇͨ¹ýµ×²ãHDFSÀ´·ÃÎÊ£¬È¨ÏÞ¶¼²»»áÓÐÈκÎй¶¡£
´ËÍ⣬ÎÒÃÇÒ²×öÁм¶È¨ÏÞ¿ØÖÆÒÔ¼°½ÇÉ«·ÃÎÊ¿ØÖÆ¡£ÔÚÎÒÃÇµÄÆ½Ì¨ÖУ¬ÎÒÃÇ»áÎªÍøÒ×µÄÿ¸öÓû§·¢·Åkerberos
Key£¬ÎÒÃDzÉÓÃkerberosÈÏÖ¤£¬È¨ÏÞ¿É¿ØÖƵ½¸öÈ˼¶±ð£¬Ã¿¸öÈ˵ÄËùÓвÙ×÷¶¼»áÓÐÉ󼯡£´ËÍ⣬ÎÒÃÇÌṩһվʽ¿ª·¢IDE£¬ÎÒÃǵĿͻ§ÔÚIDEÉϽøÐÐÊý¾Ý¿ª·¢£¬ÎÒÃÇÒ²Ìṩһվʽ²¿ÊðÒµÎñ¼à¿ØÌåϵ¡£
ÔÚ¼¼Êõ·½Ã棬ÎÒÃǵÄ˼·ÊÇÂú×ã´óÖÂÆ½Ì¨ÐèÇó´Ó´óÊý¾Ýƽ̨µÄÐèÇó³ö·¢£¬²ÉÈ¡×ÔÑкͿªÔ´Ïà½áºÏµÄ·½Ê½£¬Ôڵײã»ù´¡×é¼þ·½ÃæÒÔ¿ªÔ´ÎªÖ÷£¬ÔÚÆäÉϽøÐÐÔöÇ¿ºÍ¸Ä½ø¡£
ÔÚһЩÏà¹Ø¹¤¾ßÉÏ£¬ÎÒÃÇÒÔ×ÔÑÐÀ´Âú×ãÓû§ÐèÇó£¬ÎÒÃÇ×öµÄÊÂÇéÖ÷Òª°üÀ¨Kafka·þÎñ»¯£¬ÎÒÃǰÑKafka×ö³ÉÔÆ·þÎñµÄ·½Ê½£¬ÔÚÈÕÖ¾ÊÕ¼¯·½Ãæ×öÁËData
Streamϵͳ£¬Ö÷Òª¹¦ÄÜÊǰÑÈÕÖ¾ÊÕ¼¯µ½´óÊý¾Ýƽ̨²¢×ª³ÉHive±í¡£ÎÒÃÇÒ²×öÁËÊý¾Ý¿âͬ²½¹¤¾ß£¬Íê³ÉÊý¾Ý¿âµ½Êý¾Ý¿â£¬Êý¾Ý¿âµ½´óÊý¾Ýϵͳ֮¼äµÄͬ²½¡£
ÔÚSpark·½Ã棬ÎÒÃÇ×öÁ˶à×â»§ºÍ¸ß¿ÉÓᣣ¬ÒýÓÃÎÒÃÇÒýÈ뿪ԴÏîÄ¿Kudu½â¾öÊý¾ÝʵʱÐÔʵʩ·½ÃæµÄÎÊÌâ¡££¬²¢ÎÒÃÇÕë¶ÔkuduÔÚÉÏÃæ×öÁ˺ܶàÓÅ»¯¡££¬²ÉÓÃRanger×÷ΪͳһȨÏÞ¿ØÖÆÖÐÐÄ£¬µ«RangerÐÔÄÜÓÐÏÞ£¬´¦Àí²»ÁË´óÁ¿±íºÍÓû§³¡¾°£¬ËùÒÔ£¬ÎÒÃDz»µÃ²»À©Õ¹Ranger£¬ÓÅ»¯ÆäÐÔÄÜʹÆä¿ÉÒÔÖ§³Å¸ü¶à±íºÍÊý¾Ý¡£
½ÓÏÂÀ´£¬ÎÒ»á·Ö¼¸¸ö¼¼Êõµã½éÉÜ´óÊý¾Ý·½ÃæµÄ¹¤×÷¡£Ê×ÏÈ£¬ÎÒÏȽéÉÜÒ»ÏÂKudu£¬ÕâÊÇÎÒÃǽâ¾öÊý¾ÝʵʱÐԵŤ¾ß£¬KuduµÄ¶¨Î»½éÓÚHBaseºÍHDFSÖм䡣ÎÒÃÇÈÏΪ£¬ËäÈ»HBase¾ß±¸Ëæ»ú·ÃÎʺ͸üÐÂÄÜÁ¦£¬µ«ËüµÄÊý¾Ý²éѯ·ÖÎöÄÜÁ¦½Ï²î¡£HDFSµÄ²éѯ·ÖÎöºÍscanɨÃèÐÔÄܽϺ㬵«ËüµÄÊý¾ÝʵʱÐԽϲîÇÒ¸üÐÂÄÜÁ¦²»Ç¿¡£

Kudu¼æ¾ßÁ˶þÕßµÄÓŵ㣬ɨÃè²éѯÐÔÄܽϺÃÇÒͬʱҲÓиüкÍËæ»ú·ÃÎʵÄÄÜÁ¦¡£Èç¹û½«KuduºÍHBase¶Ô±È£¬ËüÃÇͬʱÊÇKVϵͳ£¬×ͬµÄµØ·½ÓÐÒÔϼ¸¸ö·½Ã棺

Ò»ÊÇKudu²ÉÓÃRaft¶à¸±±¾ÐÒ飬¶øHBaseͨ¹ýHDFSÀ´×ö¸´ÖÆ£¬ÕâÑùµÄºÃ´¦ÊÇKuduµÄ¿ÉÓÃÐÔ»áºÃһЩ¡£´ËÍ⣬ÔÚÊý¾Ý·ÖÇø·½Ãæ·ÖÎöÉÏ£¬HBaseÖ§³ÖÓÃRanger·ÖÇø£¬Kudu²ÉÓÃÓÃRanger¡¢Hash×éºÏ·ÖÇø¡£ÔÚʹÓÃHBaseµÄ¹ý³ÌÖУ¬ÎÒÃǾ³£»áÓöµ½Êý¾ÝÈȵãÎÊÌ⣬ËùÒÔÉè¼Æschemaʱ£¬Í¨³£²»µÃ²»ÔÚHbase»áÔÚkeyÀï¼ÓÈëÒ»Ð©Ëæ»ú¹þÏ£Öµ£¬¶ø£¬Õâ¾ÍÊÇKudu×éºÏ·ÖÇøÔòÄÜÓÐЧµÄÓÅÊÆ£¬²»Óõ£ÐÄÊý¾ÝÈȵãÎÊÌâ¡£
´ËÍ⣬ÔÚÊý¾Ý¸ñʽÉÏ£¬HBaseÔÚColumnFamilyÄÚ²¿²ÉÓÃÊôÓÚÐдæ¸ñʽ¡£ÔÚHBaseÄÚ£¬ÎÒÃǺÜÄÑÉèÖúܶàColumnFamily£¬ÒòΪ»áÓ°ÏìÐÔÄÜ£¬Ã¿¸öColumnFamily¶¼»á´øÉÏÖ÷¼ü×é¼þ£¬Õâ»áµ¼ÖÂÊý¾ÝÈßÓàºÍ±ä´ó£¬¶øKuduµÄÊý¾Ýͨ¹ýRowGroupÐÎʽ×éÖ¯£¬ÍêÈ«ÊÇÁдæ½á¹¹£¬ËùÒÔɨÃèÐÔÄÜ»á±È½ÏºÃ¡£
Õû¸öKuduµÄ´óÖ¼ܹ¹ÈçÏ£¬ ËüÓÐÒ»¸ö¹ÜÀí·þÎñÆ÷¸ºÔð¹ÜÀí£¬Êý¾Ýͨ¹ý·ÖÇø·½Ê½·ÖƬµ½ÖÚ¶àÇзֳÉTablet£¬È»ºó´æ´¢µ½Tablet
Server¡£Ã¿¸öTablet Server¸ºÔð¶à¸öTablet£¬Ã¿¸öTablet¶ÔÓ¦¶à¸öMemRowSet¡£

MemRowSetдÂúÖ®ºó¾Í»á´æµ½´ÅÅÌÐγÉDiskRowSetÉÏ£¬Ã¿¸öDiskRowSetÊÇBase
+Delta½á¹¹£¬ ¿´ÆðÀ´ÓëHBaseÀàËÆ£¬Ö÷ÒªµÄ²»Í¬ÔÚÓÚǰÕßɨÃèÐÔÄܸüÓÅ£¬ÒòΪBaseÖеÄKuduÊôÓÚÁдæÄ£Ê½£¬ËùÒÔÐÔÄܸüºÃ¡£
Æä´Î£¬DiskRowSetÖ®¼äûÓмÇÂ¼ÖØµþ£¬ÕâÓëHBase²»Ì«Ò»Ñù¡£ÕâÑù×ö×î´óµÄºÃ´¦ÔÚÓÚɨÃèʱ²»Óöà¸öDiskRowSetÖ®¼ä×öºÏ²¢£¬Ö»ÐèҪɨÃèµ¥¸öDiskRowSetÖ®¼äɨÃè¾Í¿ÉÒÔÁË¡£
´ËÍ⣬DaltaÊý¾Ý½á¹¹ÓÃÎïÀíoffsetÆ«ÒÆÁ¿×ökey£¬É¨Ãèʱ¿É¿ìËÙ¶¨Î»µ½¼Ç¼µÄ±ä¸üºÜÈÝÒ׾ͿÉÕÒµ½DeltaµÄλÖÃÐÅÏ¢£¬¶øHBaseÓüǼÖ÷¼ü×öÂß¼¶¨Î»£¬Õâ¾ÍÊÇKuduɨÃèÐÔÄܸü¼ÑµÄÔÒò
ÐÔÄÜÏà¶Ô¸üÂýһЩ¡£
KuduµÄÎÊÌâÖ÷ÒªÓÐÒÔϼ¸µã£¬Ò»ÊÇÔÚʹÓÃImpala²éѯÒýÇæµÄÇé¿öÏ£¬ÐÔÄÜÓëParquetÏà±ÈÓв»Ð¡²î¾à¡£ËäÈ»¹Ù·½²âÊÔ±¨¸æÖÐÖ¸³ökuduµÄÐÔÄܱÈParquet¸üÓÅ£¬µ«¾¹ýÎÒÃǵÄʵ¼Ê²âÁ¿£¬½á¹û¸ÕºÃÏà·´(ÏÂͼΪʵ¼Ê²âÁ¿½á¹û£¬Q16¡¢Q17¡¢Q19Ïà²îÊ®·ÖÃ÷ÏÔ)¡£

Æä¶þ£¬KuduȱÉÙSpiltºÍMerge¹¦ÄÜ£¬Ranger·ÖÇøÈ±ÉÙ×Ô¶¯·ÖÁѵĹý³Ì£¬µ±·ÖÇøÔ½À´Ô½´óÖ®ºó£¬ÎÒÃǾÍûÓа취´¦ÀíÈȵãÎÊÌâÁË¡£
ΪÁ˽â¾öÉÏÊöÎÊÌâ£¬ÍøÒ××öµÄµÚÒ»¸öÓÅ»¯ÊÇKudu Runtime Filter£¬ÕâÊÇΪÁ˼ÓËÙkuduµÄÐÔÄÜ¡£±ÈÈ磬Èç¹ûÐèÒª×ö´óС±íµÄjoin£¬Ò»°ã¿ÉÄÜÓÐÁ½ÖÖ×ö·¨£¬Ò»ÊÇ´ó±íºÍС±í¶¼¸ù¾Ýjoin
keyÀ´×öshuffle£¬°ÑÏàͬµÄjoin keyÊý¾Ýshuffleµ½Í¬Ò»Ì¨»úÆ÷ÉÏ£¬µ«ÕâÖÖ×ö·¨¿ªÏú±È½Ï´ó¡£
¶þÊÇС±í¹ã²¥£¬½«Ð¡±í¹ã²¥µ½ËùÓвéѯ·þÎñÆ÷ÉÏ£¬Óë´ó±íÒ»Æð×öjoin£¬ÍøÒ×ÔÚÕⲿ·Ö²ÉÓõÄÊÇKudu Runtime
Filter¡£
ÎÒÃǵÄ×ö·¨ÊÇΪС±íjoin keyÉú³ÉRuntime Filter£¬ÕâÑù×öµÄºÃ´¦ÔÚÓÚkuduÔÚɨÃèµ×²ãÊý¾Ýʱ»áÄÃRuntime
FilterÈ¥µ×²ã¹ýÂËÊý¾Ý£¬ÕâÑùµÄ½á¹û¾ÍÊÇ·µ»ØImpala²ãµÄÊý¾Ý»á´ó´ó¼õÉÙ¡£ÒÔÏÂͼΪÀý£¬ºìÉ«ÊÇÒ»¸öµÄscan²Ù×÷£¬
¿ÉÒÔ¿´µ½kudu·µ»ØµÄ¼Ç¼Êý»á±äµÄºÜÉÙ£¬ÌرðÊÇ·µ»ØÊý¾Ý¼¯½ÏСµÄÇé¿öÏ¡£

¾¹ý¸Ä½ø£¬KuduµÄÐÔÄÜÓÐÁ˺ܴóÌáÉý¡£ÏÂͼºÚÉ«µÄÊÇÔÉúkudu£¬³ÈÉ«µÄÊǼÓÈëRuntime fliterµÄ°æ±¾£¬¶þÕ߶Աȣ¬ºóÕßÔÚÐÔÄÜÉÏÈ·ÊÇÓкܴóÌáÉý¡£ÕûÌåÀ´¿´£¬kuduµÄÐÔÄܱÈParquetÒªµÍ30%×óÓÒ£¬µ«Ò»°ãÇé¿öÏÂÊǹ»Óõģ¬ÒòΪ±Ï¾¹ËüÓÐÊý¾Ý¸üеÄÄÜÁ¦£¬×ÔÈ»»áÎþÉüһЩ²éѯÐÔÄÜ¡£

´ËÍ⣬ÎÒÃÇÒ²×öÁËkudu Tablet Split×Ô¶¯·ÖÁѹ¦ÄÜ£¬Ö÷Òª¶ÔRanger·ÖÇø×öÁË·ÖÁÑ£¬·ÖÁÑ˼·±È½Ï¼òµ¥£¬Ö÷ÒªÊÇÐÞ¸ÄÔªÊý¾Ý£¬Õû¸ö¹ý³Ì˲¼äÔÚÏßÍê³É£¬²»»áÉæ¼°Êý¾ÝÕæÕýµÄ±ä¸ü£¬¡£¾ßÌå×ö·¨ÊÇÔÚÔªÊý¾ÝÉϱêʶ½«Ò»¸öTablet·ÖΪÁ½¸ö£¬´Ëºó¶¼×ñѸÃÔÔò£¬µ«Ö»ÓÐÔÚCompactionʱ²Å»á·¢ÉúÕæÕýµÄÎïÀí·ÖÁÑ¡£
´ËÍâÊÇÖ÷´ÓÐͬ¡£µ±Ö÷·¢Éú·ÖÁÑʱ£¬»áͨ¹ýRaftÐÒéͬ²½ËùÓи±±¾Í¬Ê±·ÖÁÑ¡£Í¨¹ýÕâ¸ö·½Ê½£¬ÎÒÃÇÍê³ÉÁËKuduµÄ·ÖÁÑ£¬ÏßÉϹÜÀíÒ²ºÜ·½±ã¡£
½ÓÏÂÀ´½éÉÜÒ»ÏÂKuduµÄÓ¦Óó¡¾°£¬Ò»ÊǶÔʵʱÐÔÒªÇó½Ï¸ßµÄ³¡¾°£¬Kudu¿ÉÒÔ×öµ½Ã뼶ʵʱ£¬¶øHDFSÖ»ÄÜ×ö°ëСʱÒÔÉϵÄ׼ʵʱ£¬Èç¹ûÊý¾ÝʵʱÐÔÒªÇóºÜ¸ß£¬Ð¡Îļþ»á±È½Ï¶à½ø¶øÓ°ÏìÐÔÄÜ¡£
¶þÊǵã²éºÍ¶àά·ÖÎöÈںϣ¬Ò»¸öÓû§µÄÐÐΪ·ÖÎöϵͳͨ³£ÓÐÁ½ÀàÐèÇó£¬Ò»ÊÇÖ¸¶¨Óû§²éѯ;¶þÊÇ´óÅúÁ¿Óû§ÐÐΪ·ÖÎö£¬Õâ¾ÍÉæ¼°µ½¶àά·ÖÎö¡£´«Í³¡£¼Ü¹¹ÐèҪʵÏÖ½áºÏÐèÒªHBaseºÍHDFS
Parquet¶þÕß½áºÏ£¬µã²éµ¥¸öÓû§ÐèҪʹÓÃHBase£¬ÅúÁ¿²éѯÐèҪʹÓÃHDFS£¬ÏÔÈ»ÕâÑùµÄ³É±¾±È½Ï¸ß¡£Èç¹ûʹÓÃKudu£¬ÒòΪÆä¿ÉÒÔͬʱÂú×ãKV²éѯºÍ¶àά·ÖÎö²éѯ£¬ÕûÌå¼Ü¹¹»á±È½Ï¼òµ¥£¬³É±¾Ò²Ïà¶Ô½ÏµÍ¡£
ÈýÊÇʵʱά±í£¬ÔÚ»¥ÁªÍøÓ¦ÓÃÖУ¬Hadoop»á´æÒ»Ð©Óû§ÐÐΪÈÕÖ¾£¬µ«»¹ÓÐһЩÊý¾ÝÔÚÊý¾Ý¿âÀ±ÈÈçÉÌÆ·¡¢Óû§µÈά±í¡£Êý¾Ý¿âÀïµÄÊý¾Ýͨ³£»áÿÌìÈ«Á¿µ¼È룬ʵʱÐԱȽϲµ±È»Ò²¿ÉÒÔÑ¡Ôñ°´Ð¡Ê±µ¼È룬µ«ÕâÑùÊý¾Ý¿âѹÁ¦»áºÜ´ó£¬Èç¹ûÊý¾Ý¿âÔöÁ¿µ¼Èë´óÊý¾Ýƽ̨£¬È»ºóÔÙ×öÈ«Á¿merge£¬ÊµÊ±ÐÔ»á±È½Ï²î¡£
ÍøÒ׵Ľâ¾ö·½°¸ÊÇʹÓù¤¾ßÖ±½Ó°ÑÊý¾Ý¿âʵʱͬ²½µ½Kudu£¬KuduµÄÊý¾Ý¿ÉÒÔ¸úHadoopÓû§ÐÐΪÊý¾ÝÖ±½Ó×öjoinÁ¬²é£¬ÕâÑùÕû¸öƽ̨µÄʵʱÐÔ»á×öµ½Ãë¼¶£¬ÐÔÄÜÒ²²»´í¡£
½ÓÏÂÀ´£¬ÎÒÏë½éÉÜÒ»ÏÂÎÒÃǵÄʵʱ¼ÆËãϵͳ¡ª¡ªSloth¡£SlothÊÇÒ»¸ö»ùÓÚSQL¿ª·¢µÄÁ÷¼ÆËãϵͳ£¬ËüµÄSQL¿´ÆðÀ´ÓëHive
SQLÀàËÆ£¬Í¬ÑùÖ§³ÖDDL¡¢UDF£¬join×Ó²éѯµÈ¡£ÎÒÃǵÄÁ÷¼ÆËãϵͳ»ùÓÚFlinkÒýÇæ¿ª·¢£¬Í¨¹ýCodeGenµÄ·½Ê½Éú³ÉFlink´úÂ룬Ȼºóͬ²½µ½¼¯ÈºÖ´ÐС£
ÔÚЧ¹ûÉÏ£¬ÎÒÃÇ×öµ½ÁËExactly Once¸úÔöÁ¿¼ÆËãÄ£ÐÍ£¬Í¨¹ýʵʱ¼ÆËãSQLËã³öÀ´µÄ½á¹û¸úÓÃÀëÏß¼ÆËã³öÀ´µÄ½á¹ûÒ»Ñù£¬ÕâÊǶÔÊý¾ÝÕýÈ·ÐÔµÄÖØÒª±£Ö¤¡£µ±È»£¬SlothÒ²ÊÇÔÚÃÍáï´óÊý¾Ýƽ̨ÉÏ¿ª·¢µÄ¡£

ÒÔÉÏÊÇSlothµÄ¿ª·¢½çÃæ£¬ÎÒÃÇÉè¼ÆÁËдSQLµÄµØ·½£¬Í¬Ê±Ò²¿ÉÒÔµ÷ÊÔ²¢Íê³Éʵʱ¼ÆËãÈÎÎñ¡£ÒÔµçÉÌϵͳΪÀý£¬ÎÒÃÇÐèÒª¶ÔÉ̼Ұ´ÕÕÏúÊÛ¶î½øÐзÖÀàͳ¼Æ£¬±ÈÈç˵ÏúÊÛ¶î0-100Ö®¼ä×ö·ÖÀ࣬100-200Çø¼äÄÚ¹éΪÁíÒ»À࣬ÒÀ´ËÀàÍÆ¼ÆËã³öÿ¸öÇø¼äÄÚµÄÉ̼ҸöÊý¡£

ÒÔÉÏͼΪÀý£¬µÚÒ»Ìõ¼ÆËãÿ¸öÉ̼ҵÄÏúÊÛ×ܶÎÒÃÇÐèÒªÏȶ¨Ò»¸öÁÙʱ±ítmp£¬ÔÙÕë¶Ôtmp×öÒ»¸öGROUP
BY£¬Ï൱ÓÚ°ÑÉ̼ÒÏúÊÛ¶î¸øGROUP BY¼ÆË㣬µÃ³öÿ¸öÉ̼ҵÄÏúÊÛ¶î¡£
µÚ¶þÌõÊǼÆËãÿ¸öÇø¼äÄÚµÄÉ̼ҸöÊý¡£´Ëʱ£¬ÎÒÃÇ¿ÉÒÔÓÃGROUP BYÏúÊÛ¶î³ýÒÔ100£¬ÕâÊÇÒª²éѯµÄÁÙʱ±ítmp¡£Á½ÌõSQL¸úÀëÏßÍêȫһÑù£¬Èç¹û±í¶¨ÒåºÍʵʱ¼ÆËãÒ»ÑùµÄ»°£¬ÄãÊÇ¿ÉÒÔÄõ½HiveÉÏÔËÐеġ£
ֻҪͨ¹ýÕâÁ½ÌõSQL¾Í¿ÉÒÔÍêȫʵÏÖ¼ÆËãÈÎÎñ¿ª·¢£¬ÄÇËü¸úÀëÏß¼ÆËã½á¹ûÓÐʲô²»Ò»ÑùÄØ?ËüʵʱÊä³ö½á¹û£¬¶øÀëÏßÊÇÒ»´ÎÐÔÊä³ö½á¹û£¬Ìá½»ÕâÑùµÄSQL¾Í²»Í£µÄÊä³öÏúÊÛ¶îµÄ·ÖÀàͳ¼Æ¡£
ÔÚÕâ¸öÈÎÎñϼÙÉèÎÒÃÇÊäÈëµÄÊý¾ÝÓÐËÄÌõ(ÈçÏÂͼ)£ºµÚÒ»¸öÉ̼ҽ»Ò×¶î30£¬È»ºóµÚ¶þ¸öÉ̼ҽ»Ò×¶î10£¬µÚÈý¸öÉ̼ҽ»Ò×¶î80£¬ÔÙÀ´µÚÈý¸öÉ̼ҽ»Ò×¶î50£¬ÎÒÃÇÀ´¿´¿´Óò»Í¬µÄ¼ÆËãÒýÇæ³öÀ´µÄ¼ÆËã½á¹ûÓÐÄÄЩ²îÒì¡£
Èç¹ûÓÃMapReduceÕâÑùµÄÀëÏß¼ÆË㣬ÎÒ»áµÃµ½ËÄÌõÊý¾Ý»áµÃµ½0~100Çø¼äÄÚÓÐ2Ìõ¼Ç¼£¬ 100~200Çø¼äÄÚÓÐ1Ìõ¼Ç¼¡£µ«Èç¹ûÓÃÁ÷ʽ¼ÆË㣬¿ÉÄܾͻáÓöµ½ÎÊÌ⣬ΪʲôÕâÃ´ËµÄØ?Èç¹ûÄãÏÖÔÚÒѾ´¦ÀíÁË3ÌõÊý¾Ý£¬¾ÍÊÇ˵(1£¬¡¢30)£¬(£¬2£¬¡¢10)£¬(3£¬¡¢80)ÕâÈýÌõÊý¾Ý£¬Õâ¸öÇé¿öÏÂÄã˵³öµÄÊä³öµÄ½á¹ûÊÇ0-100ÓÐÈý¸öÉ̼ҡ£µ±µÚËÄÌõÊý¾Ý²ÎÓë¼ÆËãºó£¬ÏµÍ³¿ÉÄܾͻáÊä³ö0-100ÓÐÈý¸öÓÐ3¸öÉ̼ң¬100-200ÓÐÒ»¸öÓÐ1É̼ң¬Õâ¸ö½á¹û¾ÍÊÇÓÐÎóµÄ£¬ÕâÊÇÒòΪʵʱ¼ÆËãûÓÐÈ¥¾ÀÕýÒѾÊä³öµÄ¼ÆËã½á¹û¡£µÄÔÔòÊDz»Í£µÃ¼ÆËã²¢Êä³ö½á¹û¡£

ÄÇô£¬Õâ¸öÎÊÌâÈçºÎ½â¾öÄØ?ÔçÆÚµÄFlinkȱÉٸù¦ÄÜ£¬ÎÒÃǾÍÔÚFlinkµÄ»ù´¡ÉÏ×öÁ˸ÄÔì¡£ËùνµÄÔöÁ¿¼ÆËãÊÇÖ¸ÔÚÓöµ½ÉÏÊöÇé¿öʱÐèÒª³·Ïúǰһ²½¼ÆËã½á¹û£¬ÉÏÓÎËã×ÓÐèÒª²»Í£µÃÏòÏÂÓÎËã×Ó·¢³ö³·Ïú²Ù×÷ÇëÇó£¬Ö±µ½Êý¾Ý¾ÀÕý¹ýÀ´×îÖÕÊä³öÕýÈ·½á¹û¡£
ͨ¹ý¸Ã·½Ê½£¬ÎÒÃDZ£Ö¤ÁËSQL¼ÆËãµÄÕýÈ·ÐÔ¡£
Ò»¸öSQLÈÎÎñ·ÖΪDDLºÍDMLÓï¾ä£¬Slothͨ¹ýSQL·½Ê½±àд£¬ DDLµÄ×÷ÓÃÊÇÔÚKafkaÖ®ÉϵÄDDL£¬Ò²¿É¶¨ÒåÔÚÆäËûÊäÈëÔ´Ö®É϶¨ÒåÁ÷±íÓû§µÄjob¾ÍÊǶ¨ÒåÔÚKafkaÖ®ÉϵÄDDL£¬Ò²¿É¶¨ÒåÔÚÆäËûÊäÈëÓïÑÔÖ®ÉÏ¡£Á÷±í¶¨ÒåÍê³ÉÖ®ºó£¬ÎÒÃÇÐèÒª×ö¾Í¿ÉÒÔ±àдºÜ¶àDML²Ù×÷Êý¾Ý£¬¼ÆËã½á¹û¡£
Ò»¸öSQLµÄjob·ÖΪDDLºÍDMLÓï¾ä£¬¶ÔÓÚ´¿SQLÓï¾ä£¬ÎÒÃÇÐèÒªÏÈ¶ÔÆä½øÐбàÒë¡£Ê×ÏÈ£¬ÎÒÃDZàÒëÿÌõDDL£¬¶ÔÿÌõDMLµ¥¶À±àÒëÿÌõSQLÓï¾ä;Æä´Î£¬Éú³ÉÖ´Ðмƻ®£¬½«²»Í¬SQLµÄÖ´Ðмƻ®´®ÁªÆðÀ´£¬ÒòΪËüÃDZ˴ËÖ®¼ä´æÔÚÊäÈëÊä³ö¹ØÏµ¡£È»ºó£¬¸ù¾Ý²»Í¬SQL¼Æ»®Ö®¼äµÄÒÀÀµ¹ØÏµ£¬ÎÒÃÇ»áÉú³ÉÒ»¸öÈ«¾ÖSlothÖ´Ðмƻ®;×îºó£¬ÎÒÃǽ«¸ÃÖ´Ðмƻ®Éú³É´úÂ룬½«´úÂëÌá½»¸øFlinkÖ´ÐУ¬Õâ¾ÍÊÇÕû¸öSlothµÄÖ´Ðйý³Ì¡£
½ÓÏÂÀ´£¬ÎÒ»á½éÉÜÍøÒ×ÔÚSpark¶à×â»§·½ÃæµÄ¹¤×÷£¬Õâ¸öÏîÄ¿½Ð×öKyuubi(¸ÃÏîÄ¿µÄ¿ªÔ´µØÖ·£º https://github.com/netease-bigdata/kyuubi
https://github.com/yaooqinn/kyuubi)£¬Êµ¼ÊÉÏÊÇÀàËÆÓÚHiveSever2µÄ³ÌÐò¡£´ó¼Ò¿ÉÄܶ¼ÖªµÀ£¬HiveÒ»°ãÓÐÁ½ÖÖʹÓÃģʽ£¬Ò»ÖÖÊÇclientģʽ£¬ËùÓеÄSQL½âÎö¶¼¿Í»§¶ËÔÚÕâÖ®ÖÐÍê³É¡£Ò»ÖÖÊÇHiveSever2ģʽ£¬Õû¸öSQL½âÎö·Åµ½server¶ËÍê³É¡£
ÔÚ¹«Ë¾Êµ¼ÊʹÓùý³ÌÖУ¬ÎÒÃǸüÏ£ÍûÓû§µÄʹÓÃÐÐΪͨ¹ýServer¶ËÍê³É£¬·ñÔò»áºÜÄѹÜÀí£¬ÒòΪ¿Í»§¶Ë¸ù±¾²»ÔÚÆ½Ì¨Õƿط¶Î§Ö®ÄÚ£¬ÎÒÃǺÜÄѽøÐи÷ÖÖÉý¼¶¼°ÅäÖñ仯¡£Ö»Óе±MetaStoreºÍHDFS
ÅäÖò»±©Â¶¸øÓû§£¬ÎÒÃDzÅÄܸüºÃµÃ¹Ü¿Ø¡£HiveµÄÉçÇø±È½ÏÍêÉÆ£¬ÔÚÕâ·½ÃæÃ»ÓÐÎÊÌ⣬µ«ÊÇSpark»¹ÓÐЩ²»×ã¡£Æäʵ£¬ËùνµÄKyuubiÖ»ÊÇÔÚÀàËÆHiveSever2µÄ»ù´¡ÉÏÌṩ·þÎñ£¬
ÌṩSparkSQL·þÎñ£¬¶ø²»ÊÇHive SQL·þÎñ¡£
Kyuubi»ùÓÚSpark Thrift Sever¸ÄÔ죬Spark Thrift SeverÀàËÆÓÚHiveSever2£¬µ«ÊÇËü²»¹»ÍêÉÆ¡£ÓÉÓÚÎÒÃÇÔÚ´Ë»ù´¡ÉÏÔö¼ÓÁ˶à×â»§µÄ¹¦ÄÜ£¬Òò´Ë¿ÉÒÔÖ§³ÖÍøÒ×ÄÚ²¿¸÷ÒµÎñÏßµÄʹÓá£ÒªÏëʵÏÖ¶à×â»§¹¦ÄÜ£¬Ê×ÏÈÒª°ÑSparkContext±ä³É¶àʵÀý£¬Ö®ºóÿ´ÎÖ´ÐдúÀíÕæÕýµÄÓû§Éí·ÝÖ´ÐÐ;Æä´Î£¬ÎÒÃÇÌṩÁËSpark
SQL¼¯Èº£¬Óû§ÇëÇó¸ºÔؾùºâµ½Ã¿Ì¨Kyuubi·þÎñÆ÷£¬²¢ÇÒÕⲿ·ÖÊǸ߿ÉÓõģ¬Ò»Ì¨·þÎñÆ÷¹ÒÁË»áÁ¢¿ÌÇл»µ½Áíһ̨¡£
´ËÍ⣬ÎÒÃǶ԰²È«ÐÔÒ²½øÐÐÁ˸Ľø£¬Ö§³Ökerbros¡£Æäʵ£¬Õû¸öÍøÒ×ÃÍáïÆ½Ì¨¶¼ÊÇÇ¿°²È«ÈÏ֤ϵͳ£¬Ã¿¸öÓû§¶¼ÓÐ×Ô¼ºµÄkerberos
key tabkerbros£¬ËùÓÐϵͳÄÃkerberoskerbros×öÈÏÖ¤·ÃÎʶ¼ÊÇ´øÈÏÖ¤µÄ£¬KyuubiÒªÈÚÈëÕâ¸öÌåϵͬÑùÐèÒªÖ§³Ökerberoskerbros¡£
KyuubiµÄÖ÷ÒªÌØµãÈçÏ£ºÒ»ÊǾ߱¸Í³Ò»½Ó¿Ú£¬ÓëHiveSever2Ïà±È£¬KyuubiÌṩSwiftThriftµÄAPI£¬ÎÞÂÛÊÇBeeline¿Í»§¶Ë¡¢JDBC¿Í»§¶Ë¡¢ODBC¿Í»§¶Ë»¹ÊÇÍøÒ×ÃÍáï×ÔÖú·ÖÎö²éѯƽ̨¡¢ÓÐÊý¿ÉÊÓ»¯BIƽ̨£¬Kyuubi¶¼¿ÉÒÔÓñê×¼µÄ·½Ê½Á¬½Óµ½Spark¡£
¶þÊÇÓе¯ÐÔµÄ×ÊÔ´¿ØÖÆÄÜÁ¦£¬KyuubiÖ§³Ösession¼¶±ðµÄ×ÊÔ´ÅäÖã¬Ã¿¸ösessionËùÐèµÄ¶ÓÁС¢×ÊÔ´ºËÊýºÍÄÚ´æ¶¼¿ÉÒÔ½øÐÐÅäÖá£
ÈýÊÇÖ§³ÖSparkContextµÄ¶¯Ì¬»º´æ¡£´´½¨Ò»¸öSparkContextºÄʱ½Ï³¤£¬ËùÒÔÎÒÃÇÒª¶ÔSparkContext½øÐлº´æÉèÖã¬ÈÃÓû§²»ÐèҪÿ´Î²éѯ¶¼¶¯Ì¬´´½¨SparkContext¡£
´ËÍ⣬ÎÒÃÇÒ²Ö§³ÖSpark¶¯Ì¬×ÊÔ´·ÖÅäÌØÐÔ£¬ÆôÓÃSparkContextÐèÒªÆôÓÃÒ»¶ÑSparkÖ´ÐÐÆ÷¡£Èç¹ûÒµÎñÐèÒª½Ï¿ìµÄÏìÓ¦ËÙ¶È£¬ÄǾÍÖ±½Ó·¢SQL£¬²»ÐèÒªµÈ´ý½ø³ÌÆôÓá£
ËÄÊÇKyuubi°²È«ÌØÐÔ£¬Ê×ÏÈÊÇÖ§³ÖKerberos»¹ÓдúÀíÖ´ÐУ¬×îºóÖ§³Ö¼¯³ÉÎÒÃÇ×Ô¼ºµÄspark-authorizerȨÏÞÑéÖ¤²å¼þ£¬¸Ã²å¼þ¶ÔSparkûÓÐÇÖÈëÐÔ£¬Ö÷ÒªÓÃÓÚ²éѯÓÅ»¯µÄ×îºó½×¶Î¡£Êµ¼ÊÉÏ£¬¾ßÌåȨÏÞ¶Ô½ÓµÄÊÇrRangerrÖеÄȨÏÞ¿ØÖÆÖÐÐÄ£¬Í¨¹ý¼¯³ÉSpark-authorizer£¬ÎÒÃÇÄܹ»×öµ½Ï¸Á£¶ÈµÄȨÏÞ¿ØÖÆ¡£
´ËÍ⣬ÎÒÃÇÒ²Ö§³Ö·þÎñµÄ¸ß¿ÉÓú͸ºÔؾùºâ£¬Kyuubi»ùÓÚ¸ºÔؾùºâµÄ·½Ê½Éè¼Æ£¬Í¨¹ý½«ZK×÷ΪNamespaceÀ´ÊµÏÖ¡£¾ßÌå¹ý³ÌΪ£¬Kyuubi½«×Ô¼º×¢²áµ½ZK£¬ZKÐγɷþÎñÁÐ±í£¬×¢Ã÷¸÷·þÎñµÄ´æ»î״̬£¬¿Í»§¶Ë»áÓëZKͨѶÄõ½¸Ã·þÎñÆ÷ÁÐ±í£¬´ÓÖÐÌôÑ¡Kyuubi·þÎñÆ÷Ö´ÐС£Í¨¹ýÕâÖÖ·½Ê½£¬ÎÒÃǽ«¸ºÔؾùºâµ½ÖÚ¶àSpark²éѯÉ豸ÉÏ£¬´Ó¶ø±ÜÃâÁ˵¥µã¹ÊÕÏ£¬±£Ö¤ÁË·þÎñµÄ¿ÉÓÃÐÔ¡£
×ܽáÀ´¿´£¬KyuubiÒÔHiveServer2 Thrift APIΪ½Ó¿ÚÐÒ飬ÌṩSpark SQL·þÎñ¡£Ïà±È´«Í³µÄSpark£¬KyuubiÖ÷ÒªÔö¼ÓÁËÆóÒµ¼¶ÌØÐÔ£¬Èç¹û¹«Ë¾¶à×â»§³¡¾°½Ï¶àÇÒÒµÎñÏ߸´ÔÓ£¬¶à×â»§¹¦ÄÜÊDZȽÏÒª½ôµÄÊÂÇé±ÈÈç¶à×â»§¡¢È¨ÏÞ¡¢¸ºÔؾùºâµÈ¡£
×îºó£¬ÎÒ½éÉÜÒ»ÏÂÍøÒ×ÔÚδÀ´µÄ¹æ»®¡£Ê×ÏÈ£¬ÎÒÃÇ»á½øÒ»²½ÍêÉÆ¸ßÐÔÄܲéѯÒýÇæ¡£Ä¿Ç°£¬ÎÒÃÇÕýÔÚÓõIJéѯÒýÇæÊÇImpala£¬ËäÈ»ÐÔÄܽÏÓÅ£¬µ«ÎÒÃÇ»¹Ï£Íû¿ÉÒÔÔÚÓëKuduÅäºÏµÈ·½Ãæ½øÐиü¶àÓÅ»¯¡£
¶þÊÇʵÏÖʵʱºÍÀëÏß¼ÆËã»ì²½¡£Õë¶ÔÍøÒ×ĿǰÅÓ´óµÄ¼¯ÈºÊýÁ¿£¬ÎÒÃÇÏ£Íû¿ÉÒÔͨ¹ý»ì²¿²½À´½â¾ö¸ÃÎÊÌâ¡£Ê×ÏÈ£¬ÍíÉÏÊÇÀëÏß¼ÆËãµÄ¸ß·åÆÚ£¬ÈÎÎñͨ³£»áµÈµ½ËùÓÐÊý¾ÝÍê³ÉÒ²¾ÍÊÇÁ賿¶¨Ê±ÆðÀ´ÅÜ£¬ÊµÊ±¼ÆËãµÄ¸ß·åÆÚÓëÓû§Ê¹Óø߷åÆÚÒ»Ñù¶¼ÔÚ°×Ì죬Òò´Ë¿ÉÒÔÓëÀëÏß¼ÆËãʵÏÖ´í·åÔËÐС£ÔÚ¼¯Èº¹æÄ£½Ï´óµÄÇé¿öÏ£¬ÕâÖÖ·½Ê½µÄÒâÒå·Ç³£Ã÷ÏÔ£¬ÎÒÃÇÏ£Íû¿ÉÒÔ½â¾öÕâÖÖ·½Ê½´øÀ´µÄ¸ôÀë¡¢µ¯ÐԵȷ½ÃæµÄÎÊÌâ¡£
ÈýÊǼ¯³É¸ü¶àÓ²¼þ×ö¼ÓËÙ£¬±ÈÈçGPU»òÕßFPGA¡£
ËÄÊÇÖÇÄÜÈÎÎñÕï¶ÏºÍÓÅ»¯¡£ÒòÎªÍøÒ×ÄÚ²¿Êý¾ÝÁ¿ºÍÈÎÎñ·Ç³£ÅÓ´ó£¬ÎÒÃÇÏ£Íû¿ÉÒÔͨ¹ýÖÇÄÜ»¯ÈÎÎñÕï¶ÏµÄ·½Ê½¸¨Öú¼¼ÊõÖ§³ÖÈËÔ±¸üºÃµÃÍê³É¹¤×÷£¬Î´À´Ï£Íû¿ÉÒÔ´ïµ½AIopsµÄ³Ì¶È¡£ |