±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜimpalaµÄÔÀí¼Ü¹¹£¬impala²éѯ´¦Àí¹ý³Ì£¬¼°Ó¦Óó¡¾°£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔCSDN£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
impala¸ÅÊö
ÓÉcloudera¹«Ë¾Ö÷µ¼¿ª·¢µÄ´óÊý¾Ýʵʱ²éѯ·ÖÎö¹¤¾ß£¬Ðû³Æ±ÈÔÀ´»ùÓÚMapReduceµÄHiveSQL²éѯËÙ¶ÈÌáÉý3~90±¶£¬ÇÒ¸ü¼ÓÁé»îÒ×Óá£ÌṩÀàSQLµÄ²éѯÓï¾ä£¬Äܹ»²éѯ´æ´¢ÔÚHadoopµÄHDFSºÍHbaseÖеÄPB¼¶´óÊý¾Ý¡£²éѯËÙ¶È¿ìÊÇÆä×î´óµÄÂôµã¡£¼òÑÔÖ®impala×÷Ϊ´óÊý¾Ýʵʱ²éѯ·ÖÎö¹¤¾ß£¬¾ßÓвéѯËٶȿ죬Áé»îÐԸߣ¬Ò×ÕûºÏ£¬¿ÉÉìËõÐÔÇ¿µÈÌØµã¡£
1.²éѯËٶȿ졣Impala²»Í¬ÓÚhive£¬hiveµ×²ãÖ´ÐÐʹÓõÄÊÇMapReduceÒýÇæ£¬ÈÔÈ»ÊÇÒ»¸öÅú´¦Àí¹ý³Ì¡£²»Í¬ÓÚhive£¬impalaÖмä½á¹û²»Ð´Èë´ÅÅÌ£¬¼´Ê¹¼°Ê±Í¨¹ýÍøÂçÒÔÁ÷µÄÐÎʽ´«µÝ£¬´ó´ó½µµÍµÄ½ÚµãµÄIO¿ªÏú¡£
2.Áé»îÐԸߡ£¿ÉÒÔÖ±½Ó²éѯ´æ´¢ÔÚHDFSÉϵÄÔÉúÊý¾Ý£¬Ò²¿ÉÒÔ²éѯ¾¹ýÓÅ»¯Éè¼Æ¶ø´æ´¢µÄÊý¾Ý£¬Ö»ÐèÒªÊý¾ÝµÄ¸ñʽÄܹ»¼æÈÝMapReduce¡¢hive¡¢PigµÈµÈ¡£
3.Ò×ÕûºÏ¡£ºÜÈÝÒ׺ÍhadoopϵͳÕûºÏ£¬²¢Ê¹ÓÃhadoopÉú̬ϵͳµÄ×ÊÔ´ºÍÓÅÊÆ£¬²»ÐèÒª½«Êý¾ÝÇ¨ÒÆµ½Ìض¨µÄ´æ´¢ÏµÍ³¾ÍÄÜÂú×ã²éѯ·ÖÎöµÄÒªÇó¡£
4.¿ÉÉìËõÐÔ¡£¿ÉÒԺܺõÄÓëһЩBIÓ¦ÓÃϵͳÐͬ¹¤×÷£¬ÈçMicrostrategy¡¢Tableau¡¢QlikviewµÈ¡£
¼Ü¹¹½éÉÜ
impala¼Ü¹¹Í¼£º

1.´ÓÉÏͼ¿ÉÒÔ¿´³ö£¬Î»ÓÚDatanodeÉϵÄÿ¸öimpalad½ø³Ì£¬¶¼¾ßÓÐQuery Planner,QueryCoordinator,Query
ExecEnginerÕ⼸¸ö×é¼þ£¬Ã¿¸öimpala½ÚµãÔÚ¹¦ÄÜÉÏÊǶԵȵģ¬Ò²¾ÍÊÇ˵£¬ÈκÎÒ»¸ö½Úµã¶¼ÄܽÓÊÜÍⲿ²éѯÇëÇó¡£µ±ÓÐÒ»¸ö½Úµã·¢Éú¹ÊÕÏºó£¬ÆäËû½ÚµãÈÔÈ»Äܹ»½Ó¹Ü£¬Õ⻹µÃÒæÓÚHDFSµÄÊý¾ÝÈßÓ౸·Ý»úÖÆ£¬¼´Ê¹Ä³¸öimpalad½Úµã¹Òµô£¬Ö»Òª¹ÒµôµÄ½ÚµãÉϵÄÊý¾ÝÔÚÆäËû½ÚµãÉÏÓб¸·Ý£¬ÈÔÈ»ÊÇ¿ÉÒÔ¼ÆËãµÄ¡£
2.ImpalaÓÉimpalad£¬statestore£¬CLI×é³É¡£ÏÂÃæ·Ö±ð¸ÅÊö¸÷×ԵŦÄÜ£º
impaladÊÇimpalaµÄºËÐĽø³Ì£¬ÓëDatanodeÔÚͬһ¸ö½ÚµãÉÏ£¬½ÓÊܿͻ§¶ËµÄ²éѯÇëÇó(½ÓÊܲéѯÇëÇóµÄimpaladΪCoordinator,Coordinatorͨ¹ýJNIµ÷ÓÃjavaǰ¶Ë½âÊÍSQL²éѯÓï¾ä£¬Éú³É²éѯ¼Æ»®Ê÷£¬ÔÙͨ¹ýµ÷¶ÈÆ÷°ÉÖ´Ðмƻ®·Ö·¢¸ø¾ßÓÐÏàÓ¦Êý¾ÝµÄÆäËûimpaladÖ´ÐÐ)£¬¶ÁдÊý¾Ý£¬²¢ÐÐÖ´Ðвéѯ£¬²¢°Ñ½á¹ûͨ¹ýÍøÂçÁ÷ʽ´«¸øCoordinator,ÓÐCoordinator·µ»Ø¸ø¿Í»§¶Ë¡£Í¬Ê±impaladÒ²Óëstatestore±£³ÖÁ¬½Ó£¬ÓÃÓÚÈ·¶¨ÄÄЩimpaladµÄ½¡¿µµÄÊÇ¿ÉÒÔÖ´ÐÐÐÂÈÎÎñµÄ¡£
state store¸ú×Ù¼¯ÈºÖеÄimpaladµÄ½¡¿µ×´Ì¬¼°Î»ÖÃÐÅÏ¢£¬²¢²»¶Ï°Ñ½¡¿µ×´¿ö·¢Ë͸øËùÓеÄimpalad½ø³Ì½Úµã¡£Ò»µ©Ä³¸öimpala½Úµã²»¿ÉÓã¬statestoreÈ·±£½«ÕâÒ»ÐÅÏ¢¼°Ê±´«´ïµ½ËùÓеÄimpalad½ø³Ì½Úµã£¬µ±ÓÐеIJéѯÇëÇóʱ£¬impalad½ø³Ì½Úµã²»»á°Ñ²éѯÇëÇó·¢Ë͵½²»¿ÉÓõĽڵãÉÏ¡£statestoreͨ¹ý´´½¨¶à¸öÏß³ÌÀ´´¦ÀíimpaladµÄ×¢²á¶©ÔĺÍÓë¸÷¸öimpalad±£³ÖÐÄ̬Á¬½Ó¡£ÖµµÃ×¢ÒâµÄÊÇ£¬statestore²¢·Ç¹Ø¼ü½ø³Ì£¬¼´Ê¹²»¿ÉÓã¬impalad½ø³Ì½Úµã¼äÈÔÈ»¿ÉÒÔÏ໥е÷Õý³£¶ÔÍâÌṩ·Ö²¼Ê½²éѯ¡£
CLI£ºÓû§²éѯµÄÃüÁîÐй²×飬»¹ÌṩÁËHue¡¢JDBC¡¢ODBCµÈ½Ó¿Ú¡£
ÓëhiveµÄ±È¼Û£º

ImpalaÓëHiveµÄÒìͬ£º
Êý¾Ý´æ´¢£ºÊ¹ÓÃÏàͬµÄ´æ´¢Êý¾Ý³Ø¶¼Ö§³Ö°ÑÊý¾Ý´æ´¢ÓÚHDFS, HBase¡£
ÔªÊý¾Ý£ºÁ½ÕßʹÓÃÏàͬµÄÔªÊý¾Ý¡£
SQL½âÊÍ´¦Àí£º±È½ÏÏàËÆ¶¼ÊÇͨ¹ý´Ê·¨·ÖÎöÉú³ÉÖ´Ðмƻ®¡£
Ö´Ðмƻ®£º
Hive:ÒÀÀµÓÚMapReduceÖ´Ðпò¼Ü£¬Ö´Ðмƻ®·Ö³É map->shuffle->reduce->map->shuffle->reduce¡µÄÄ£ÐÍ¡£Èç¹ûÒ»¸öQuery»á
±»±àÒë³É¶àÂÖMapReduce£¬Ôò»áÓиü¶àµÄдÖмä½á¹û¡£ÓÉÓÚMapReduceÖ´Ðпò¼Ü±¾ÉíµÄÌØµã£¬¹ý¶àµÄÖмä¹ý³Ì»áÔö¼ÓÕû¸öQueryµÄÖ´ÐÐʱ¼ä¡£
Impala:°ÑÖ´Ðмƻ®±íÏÖΪһ¿ÃÍêÕûµÄÖ´Ðмƻ®Ê÷£¬¿ÉÒÔ¸ü×ÔÈ»µØ·Ö·¢Ö´Ðмƻ®µ½¸÷¸öImpaladÖ´Ðвéѯ£¬¶ø²»ÓÃÏñHiveÄÇÑù°ÑËü×éºÏ³É¹ÜµÀÐ͵Ämap->reduceģʽ£¬ÒԴ˱£Ö¤ImpalaÓиüºÃµÄ²¢·¢ÐԺͱÜÃâ²»±ØÒªµÄÖмäsortÓëshuffle¡£
Êý¾ÝÁ÷£º
Hive:²ÉÓÃÍÆµÄ·½Ê½£¬Ã¿Ò»¸ö¼ÆËã½Úµã¼ÆËãÍê³Éºó½«Êý¾ÝÖ÷¶¯ÍƸøºóÐø½Úµã¡£
Impala:²ÉÓÃÀµÄ·½Ê½£¬ºóÐø½Úµãͨ¹ýgetNextÖ÷¶¯ÏòÇ°Ãæ½ÚµãÒªÊý¾Ý£¬ÒÔ´Ë·½Ê½Êý¾Ý¿ÉÒÔÁ÷ʽµÄ·µ»Ø¸ø¿Í»§¶Ë£¬ÇÒÖ»ÒªÓÐ1ÌõÊý¾Ý±»´¦ÀíÍ꣬¾Í¿ÉÒÔÁ¢¼´Õ¹ÏÖ³öÀ´£¬¶ø²»Óõȵ½È«²¿´¦ÀíÍê³É£¬¸ü·ûºÏSQL½»»¥Ê½²éѯʹÓá£
ÄÚ´æÊ¹Óãº
Hive:ÔÚÖ´Ðйý³ÌÖÐÈç¹ûÄÚ´æ·Å²»ÏÂËùÓÐÊý¾Ý£¬Ôò»áʹÓÃÍâ´æ£¬ÒÔ±£Ö¤QueryÄÜ˳ÐòÖ´ÐÐÍꡣÿһÂÖMapReduce½áÊø£¬Öмä½á¹ûÒ²»áдÈëHDFSÖУ¬Í¬ÑùÓÉÓÚMapReduceÖ´Ðмܹ¹µÄÌØÐÔ£¬shuffle¹ý³ÌÒ²»áÓÐд±¾µØ´ÅÅ̵IJÙ×÷¡£
Impala:ÔÚÓöµ½ÄÚ´æ·Å²»ÏÂÊý¾Ýʱ£¬µ±Ç°°æ±¾1.0.1ÊÇÖ±½Ó·µ»Ø´íÎ󣬶ø²»»áÀûÓÃÍâ´æ£¬ÒÔºó°æ±¾Ó¦¸Ã»á½øÐиĽø¡£ÕâʹÓõÃImpalaĿǰ´¦ÀíQuery»áÊܵ½Ò»¶¨µÄÏÞÖÆ£¬×îºÃ»¹ÊÇÓëHiveÅäºÏʹÓá£ImpalaÔÚ¶à¸ö½×¶ÎÖ®¼äÀûÓÃÍøÂç´«ÊäÊý¾Ý£¬ÔÚÖ´Ðйý³Ì²»»áÓÐд´ÅÅ̵IJÙ×÷£¨insert³ýÍ⣩¡£
µ÷¶È£º
Hive:ÈÎÎñµ÷¶ÈÒÀÀµÓÚHadoopµÄµ÷¶È²ßÂÔ¡£
Impala:µ÷¶ÈÓÉ×Ô¼ºÍê³É£¬Ä¿Ç°Ö»ÓÐÒ»ÖÖµ÷¶ÈÆ÷simple-schedule£¬Ëü»á¾¡Á¿Âú×ãÊý¾ÝµÄ¾Ö²¿ÐÔ£¬É¨ÃèÊý¾ÝµÄ½ø³Ì¾¡Á¿¿¿½üÊý¾Ý±¾ÉíËùÔÚµÄÎïÀí»úÆ÷¡£µ÷¶ÈÆ÷Ŀǰ»¹±È½Ï¼òµ¥£¬ÔÚSimpleScheduler::GetBackendÖпÉÒÔ¿´µ½£¬ÏÖÔÚ»¹Ã»Óп¼ÂǸºÔØ£¬ÍøÂçIO×´¿öµÈÒòËØ½øÐе÷¶È¡£µ«Ä¿Ç°ImpalaÒѾÓжÔÖ´Ðйý³ÌµÄÐÔÄÜͳ¼Æ·ÖÎö£¬Ó¦¸ÃÒÔºó°æ±¾»áÀûÓÃÕâЩͳ¼ÆÐÅÏ¢½øÐе÷¶È°É¡£
ÈÝ´í£º
Hive:ÒÀÀµÓÚHadoopµÄÈÝ´íÄÜÁ¦¡£
Impala:ÔÚ²éѯ¹ý³ÌÖУ¬Ã»ÓÐÈÝ´íÂß¼£¬Èç¹ûÔÚÖ´Ðйý³ÌÖз¢Éú¹ÊÕÏ£¬ÔòÖ±½Ó·µ»Ø´íÎó£¨ÕâÓëImpalaµÄÉè¼ÆÓйأ¬ÒòΪImpala¶¨Î»ÓÚʵʱ²éѯ£¬Ò»´Î²éѯʧ°Ü£¬ÔÙ²éÒ»´Î¾ÍºÃÁË£¬ÔÙ²éÒ»´ÎµÄ³É±¾ºÜµÍ£©¡£µ«´ÓÕûÌåÀ´¿´£¬ImpalaÊÇÄܺܺõÄÈÝ´í£¬ËùÓеÄImpaladÊǶԵȵĽṹ£¬Óû§¿ÉÒÔÏòÈκÎÒ»¸ö
ImpaladÌá½»²éѯ£¬Èç¹ûÒ»¸öImpaladʧЧ£¬ÆäÉÏÕýÔÚÔËÐеÄËùÓÐQuery¶¼½«Ê§°Ü£¬µ«Óû§¿ÉÒÔÖØÐÂÌá½»²éѯÓÉÆäËüImpalad´úÌæÖ´ÐУ¬²»»áÓ°Ïì·þÎñ¡£¶ÔÓÚState
StoreĿǰֻÓÐÒ»¸ö£¬µ«µ±State StoreʧЧ£¬Ò²²»»áÓ°Ïì·þÎñ£¬Ã¿¸öImpalad¶¼»º´æÁËState
StoreµÄÐÅÏ¢£¬Ö»ÊDz»ÄÜÔÙ¸üм¯Èº×´Ì¬£¬ÓпÉÄÜ»á°ÑÖ´ÐÐÈÎÎñ·ÖÅ䏸ÒѾʧЧµÄImpaladÖ´ÐУ¬µ¼Ö±¾´ÎQueryʧ°Ü¡£
ÊÊÓÃÃæ£º
Hive:¸´ÔÓµÄÅú´¦Àí²éѯÈÎÎñ£¬Êý¾Ýת»»ÈÎÎñ¡£
Impala£ºÊµÊ±Êý¾Ý·ÖÎö£¬ÒòΪ²»Ö§³ÖUDF£¬ÄÜ´¦ÀíµÄÎÊÌâÓòÓÐÒ»¶¨µÄÏÞÖÆ£¬ÓëHiveÅäºÏʹÓÃ,¶ÔHiveµÄ½á¹ûÊý¾Ý¼¯½øÐÐʵʱ·ÖÎö¡£
ImpalaÏà¶ÔÓÚHiveËùʹÓõÄÓÅ»¯¼¼Êõ£º
1¡¢Ã»ÓÐʹÓà MapReduce½øÐв¢ÐмÆË㣬ËäÈ»MapReduceÊǷdz£ºÃµÄ²¢ÐмÆËã¿ò¼Ü£¬µ«Ëü¸ü¶àµÄÃæÏòÅú´¦Àíģʽ£¬¶ø²»ÊÇÃæÏò½»»¥Ê½µÄSQLÖ´ÐС£ÓëMapReduceÏà±È£ºImpala°ÑÕû¸ö²éѯ·Ö³ÉÒ»Ö´Ðмƻ®Ê÷£¬¶ø²»ÊÇÒ»Á¬´®µÄMapReduceÈÎÎñ£¬ÔÚ·Ö·¢Ö´Ðмƻ®ºó£¬ImpalaʹÓÃÀʽ»ñÈ¡Êý¾ÝµÄ·½Ê½»ñÈ¡½á¹û£¬°Ñ½á¹ûÊý¾Ý×é³É°´Ö´ÐÐÊ÷Á÷ʽ´«µÝ»ã¼¯£¬¼õÉÙµÄÁ˰ÑÖмä½á¹ûдÈë´ÅÅ̵IJ½Ö裬ÔÙ´Ó´ÅÅ̶ÁÈ¡Êý¾ÝµÄ¿ªÏú¡£ImpalaʹÓ÷þÎñµÄ·½Ê½±ÜÃâÿ´ÎÖ´Ðвéѯ¶¼ÐèÒªÆô¶¯µÄ¿ªÏú£¬¼´Ïà±ÈHiveûÁËMapReduceÆô¶¯Ê±¼ä¡£
2¡¢Ê¹ÓÃLLVM²úÉúÔËÐдúÂ룬Õë¶ÔÌØ¶¨²éѯÉú³ÉÌØ¶¨´úÂ룬ͬʱʹÓÃInlineµÄ·½Ê½¼õÉÙº¯Êýµ÷ÓõĿªÏú£¬¼Ó¿ìÖ´ÐÐЧÂÊ¡£
3¡¢³ä·ÖÀûÓÿÉÓõÄÓ²¼þÖ¸ÁSSE4.2£©¡£
4¡¢¸üºÃµÄIOµ÷¶È£¬ImpalaÖªµÀÊý¾Ý¿éËùÔڵĴÅÅÌλÖÃÄܹ»¸üºÃµÄÀûÓöà´ÅÅ̵ÄÓÅÊÆ£¬Í¬Ê±ImpalaÖ§³ÖÖ±½ÓÊý¾Ý¿é¶ÁÈ¡ºÍ±¾µØ´úÂë¼ÆËãchecksum¡£
5¡¢Í¨¹ýÑ¡ÔñºÏÊʵÄÊý¾Ý´æ´¢¸ñʽ¿ÉÒԵõ½×îºÃµÄÐÔÄÜ£¨ImpalaÖ§³Ö¶àÖÖ´æ´¢¸ñʽ£©¡£
6¡¢×î´óʹÓÃÄڴ棬Öмä½á¹û²»Ð´´ÅÅÌ£¬¼°Ê±Í¨¹ýÍøÂçÒÔstreamµÄ·½Ê½´«µÝ¡£
impala²éѯ´¦Àí¹ý³Ì

Impalad·ÖΪJavaǰ¶ËÓëC++´¦Àíºó¶Ë£¬½ÓÊܿͻ§¶ËÁ¬½ÓµÄImpalad¼´×÷ΪÕâ´Î²éѯµÄCoordinator£¬Coordinatorͨ¹ýJNIµ÷ÓÃJavaǰ¶Ë¶ÔÓû§µÄ²éѯSQL½øÐзÖÎöÉú³ÉÖ´Ðмƻ®Ê÷£¬²»Í¬µÄ²Ù×÷¶ÔÓ¦²»ÓõÄPlanNode,È磺SelectNode£¬
ScanNode£¬ SortNode£¬ AggregationNode£¬ HashJoinNodeµÈµÈ¡£
Ö´Ðмƻ®Ê÷µÄÿ¸öÔ×Ó²Ù×÷ÓÉÒ»¸öPlanFragment±íʾ£¬Í¨³£Ò»Ìõ²éѯÓï¾äÓɶà¸öPlan Fragment×é³É£¬
PlanFragment 0±íʾִÐÐÊ÷µÄ¸ù£¬»ã¾Û½á¹û·µ»Ø¸øÓû§£¬Ö´ÐÐÊ÷µÄÒ¶×Ó½áµãÒ»°ãÊÇScan²Ù×÷£¬·Ö²¼Ê½²¢ÐÐÖ´ÐС£
Javaǰ¶Ë²úÉúµÄÖ´Ðмƻ®Ê÷ÒÔThriftÊý¾Ý¸ñʽ·µ»Ø¸øImpalaC++ºó¶Ë£¨Coordinator£©£¨Ö´Ðмƻ®·ÖΪ¶à¸ö½×¶Î£¬Ã¿Ò»¸ö½×¶Î½Ð×öÒ»¸öPlanFragment£¬Ã¿Ò»¸öPlanFragmentÔÚÖ´ÐÐʱ¿É
ÒÔÓɶà¸öImpaladʵÀý²¢ÐÐÖ´ÐÐ(ÓÐЩPlanFragmentÖ»ÄÜÓÉÒ»¸öImpaladʵÀýÖ´ÐÐ,Èç¾ÛºÏ²Ù×÷)£¬Õû¸öÖ´Ðмƻ®ÎªÒ»Ö´Ðмƻ®Ê÷£©£¬ÓÉ
Coordinator¸ù¾ÝÖ´Ðмƻ®£¬Êý¾Ý´æ´¢ÐÅÏ¢£¨Impalaͨ¹ýlibhdfsÓëHDFS½øÐн»»¥¡£Í¨¹ýhdfsGetHosts·½·¨»ñµÃÎļþÊý¾Ý
¿éËùÔÚ½ÚµãµÄλÖÃÐÅÏ¢£©£¬Í¨¹ýµ÷¶ÈÆ÷£¨ÏÖÔÚÖ»ÓÐsimple-scheduler, ʹÓÃround-robinËã·¨£©Coordinator::Exec¶ÔÉú³ÉµÄÖ´Ðмƻ®Ê÷·ÖÅ䏸ÏàÓ¦µÄºó¶ËÖ´ÐÐÆ÷ImpaladÖ´ÐУ¨²éѯ»áʹÓÃLLVM
½øÐдúÂëÉú³É£¬±àÒ룬ִÐС£
Ó¦Óó¡¾°

ImpalaµÄÓÅȱµã£º
Óŵ㣺
1.Ö§³ÖSQL²éѯ£¬¿ìËÙ²éѯ´óÊý¾Ý¡£
2.¿ÉÒÔ¶ÔÒÑÓÐÊý¾Ý½øÐвéѯ£¬¼õÉÙÊý¾ÝµÄ¼ÓÔØ£¬×ª»»¡£
3.¶àÖÖ´æ´¢¸ñʽ¿ÉÒÔÑ¡Ôñ£¨Parquet,Text, Avro, RCFile, SequeenceFile£©¡£
4.¿ÉÒÔÓëHiveÅäºÏʹÓá£
ȱµã£º
1.²»Ö§³ÖÓû§¶¨Ò庯ÊýUDF¡£
2.²»Ö§³ÖtextÓòµÄÈ«ÎÄËÑË÷¡£
3.²»Ö§³ÖTransforms¡£
4.²»Ö§³Ö²éѯÆÚµÄÈÝ´í¡£
5.¶ÔÄÚ´æÒªÇó¸ß¡£
ÔÚʵʱÐÔÒªÇ󲻸ߵÄÓ¦Óó¡¾°ÖУ¬±ÈÈ磬Ô¶ȡ¢¼¾¶È¡¢Äê¶È±¨±íµÄÉú³É¡£¿ÉÒÔʹÓûùÓÚ´«Í³HadoopMapreduce´¦Àíº£Á¿´óÊý¾Ý¡£µ«ÊÇÔÚһЩʵʱÐÔÒªÇóºÜ¸ßµÄ³¡¾°ÖУ¬Ò»·½ÃæÂú×ãʵʱÐÔÒªÇó£¬Ò»·½ÃæÌáÉýÓû§ÌåÑé¡£ImpalaÒòÆä¿ìËÙµÄÏìÓ¦ÄÜÁ¦µ±Ö®ÎÞÀ¢×÷ΪÊ×Ñ¡²éѯ·ÖÎö¹¤¾ß¡£
|