Ëæ×ÅWeb2.0µÄµ½À´£¬»¥ÁªÍøÊý¾Ý¿ìËÙÔö³¤¡£´ó¹æÄ£Êý¾ÝµÄ²É¼¯ºÍ´¦Àí¼°Ó¦ÓÃÖ±½ÓÓ°Ïì×ÅÓû§ÌåÑ飬¾ö¶¨×ÅÆóÒµµÄ·¢Õ¹¡£±È½Ï´«Í³¹ØÏµÐÍÊý¾Ý¿âºÍ·Ö²¼Ê½·Ç¹ØÏµÐÍÊý¾Ý¿âÁ½Õß´¦Àí´óÊý¾ÝµÄÐÔÄÜ£¬½«±¾µØÊý¾ÝÇ¨ÒÆµ½·Ö²¼Ê½Êý¾Ý¿âÊÆÔÚ±ØÐС£ÎÄÕ·ÖÎöÁËÏÖÓÐÇ¨ÒÆ¹¤¾ßµÄÀû±×£¬»ùÓÚHBaseÊý¾Ý¿âÌá³öÁËÒ»ÖÖÓÐЧµÄÊý¾ÝÇ¨ÒÆ²ßÂÔ£¬²¢ÒÀ¾ÝÌá³öµÄ²ßÂÔʵÏÖÁËÒ»ÖÖ°ë×Ô¶¯»¯Òƹ¤¾ß¡£ÒÔÃÀ¹ú³ÇÊкͷ½ÑÔϵͳCityDetailÊý¾Ý¿âÊý¾ÝΪÀý£¬²ûÊöÁ˸ÃÇ¨ÒÆ¹¤¾ßµÄ¹¤×÷ÔÀí²¢¶ÔÇ¨ÒÆºóµÄÊý¾Ý½øÐжà´Î²éѯ±È½Ï£¬Ö¤Ã÷ÁËʹÓøù¤¾ß½øÐÐÊý¾ÝÇ¨ÒÆµÄ¸ßЧÐÔ¡£

¹ØÏµÐÍÊý¾Ý¿â;HBase;Ç¨ÒÆ¹¤¾ß
Web2.0ʱ´ú£¬ÍøÂç¼¼Êõ·ÉËÙ·¢Õ¹£¬¸öÈËÓëÆóÒµ¶¼ÔÚ²»¶ÏµØ´´Ô캣Á¿Êý¾Ý£¬ÔÚеľò½ð´ó³±ÖУ¬ÈçºÎÀûÓÃÊý¾ÝÒÔ¼°½«Êý¾Ýת»¯ÎªÓмÛÖµÐÅÏ¢µÄËÙ¶È£¬Ô½À´Ô½³ÉΪÆóÒµ³É¹¦Óë·ñµÄ¾ö¶¨ÐÔÒòËØ¡£ÊµÏÖÊý¾ÝµÄ¿ìËÙ·ÖÎö£¬²¢×ö³öÖ¸µ¼£¬¶ÔÊý¾Ý´æ´¢Ìá³öÁ˸ü´óµÄÌôÕ½¡£ËäÈ»´«Í³Êý¾Ý¿âÒѾ·¢Õ¹Á˺ܶàÄ꣬ÔÚÆóÒµÓ¦Ó÷½ÃæÒ²ÐγÉÁ˺ܴóµÄʹÓùæÄ££¬µ«ÊÇÆäÔÚ´¦Àí´óÊý¾ÝÓ¦Ó÷½ÃæÈÔÈ»´æÔÚ²»×ã[1]¡£Ê×ÏÈ£¬´«Í³¹ØÏµÐÍÊý¾Ý¿âÎÞ·¨Íê³É´ó¹æÄ£Ë®Æ½ÍØÕ¹£¬¾¡¹ÜÍøÂç½â¾ö·½°¸ÔÚÒ»¶¨³Ì¶ÈÉϽâ¾öÁËÕâ¸öÎÊÌ⣬µ«ÍøÂçÖÐÈÔÎÞ·¨¶¯Ì¬µØ´´½¨¼¯Èº;Æä´Î£¬¹ØÏµÐÍÊý¾Ý¿âÎÞ·¨ÓÐЧ´æ´¢Web2.0ʱ´úµÄ°ë½á¹¹¼°·Ç½á¹¹»¯Êý¾Ý;´ËÍ⴫ͳµÄ¹ØÏµÐÍÊý¾Ý¿âÒ²ÎÞ·¨Âú×ã´óÊý¾Ýʱ´ú¶Ôº£Á¿Êý¾Ý¸ßЧ²éѯµÄÐèÇó¡£
·Ç¹ØÏµÐÍÊý¾Ý¿âµÄ³öÏÖÃÖ²¹ÁË´«Í³¹ØÏµÐÍÊý¾Ý¿âÔÚ´¦Àí´ó¹æÄ£Êý¾ÝÖеIJ»×ã¡£·Ç¹ØÏµÐÍÊý¾Ý¿âÊǶÔCassandra¡¢MongoDBºÍHBaseµÈÖÚ¶àÖ§³Ö·Ç¹ØÏµ»¯ÒÔ¼°Èõ¹ØÏµ»¯Êý¾Ý´æ´¢µÄÊý¾Ý¿âµÄͳ³Æ¡£·Ç¹ØÏµÐÍÊý¾Ý¿âÖеıíÖ÷Òª²ÉÓþۺϵĴ洢½á¹¹£¬Õâ¾ÍʹµÃÊý¾Ý¹ÜÀí¸üΪ·½±ã[2];ͨ¹ýÔ¤·ÖÅä¿Õ¼ä»úÖÆÇáËÉʵÏÖÁ˺£Á¿Êý¾Ý´æ´¢;¿Éͨ¹ýÁ¬ÐøÌí¼Ó·þÎñ½ÚµãÀ´ÊµÏÖÀ©Õ¹£¬²»ÐèҪͣ»úά»¤ºÍÊý¾ÝÇ¨ÒÆ¡£´ËÍ⣬ÖÚ¶àµÄ·Ç¹ØÏµÐÍÊý¾Ý¿âÓÐ×ÅÇ¿´óµÄÒµÎñÕë¶ÔÐÔ£¬ÔÚÓ¦ÓÃÐÔÄÜÉϽϴ«Í³¹ØÏµÐÍÊý¾Ý¿âÓÐ×ŵ߸²ÐÔµÄÌáÉý¡£ÆäÖÐHBaseƾ½è×ÅÓëHadoopµÄÎ޷켯³ÉºÍÇ¿´óµÄ¸ßÀ©Õ¹ÐÔÒÔ¼°ÓµÓо޴óµÄ¶àÔª»¯ÉçÇøµÄÓÅÊÆ[3]£¬±»¸÷´ó»¥ÁªÍøÆóÒµÕùÏàÓ¦Óá£
HBaseµÄ¹ã·ºÓ¦Óã¬Ê¹µÃ´æ´¢ÔÚ´«Í³¹ØÏµÐÍÊý¾Ý¿âÖеÄÀúÊ·Êý¾ÝÏòHBaseµÄÇ¨ÒÆ³ÉΪµ±ÏÂÑо¿Èȵ㡣
1¡¢¹úÄÚÍâÑо¿ÏÖ×´
Õë¶Ô´«Í³¹ØÏµÐÍÊý¾ÝÏòHBaseÇ¨ÒÆµÄÑо¿£¬Ä¿Ç°£¬Òµ½çÖ»Ìá³öÁËһЩÊý¾ÝÇ¨ÒÆµÄ·½·¨£¬È´ºÜÉÙÓбȽÏȨÍþµÄÊý¾ÝÇ¨ÒÆ¹¤¾ß£¬¸üûÓпÉÒÔÇ¨ÒÆÔÓбíģʽ»òÕß×Ô¶¯»¯µÄÇ¨ÒÆ¹¤¾ß¡£
ÏÖÓеÄÇ¨ÒÆ¹¤¾ßÈçHadoopµÄ¹Ù·½¹¤¾ßSqoopÖ»Ö§³Öµ¥±íµÄÔöÁ¿¼ÓÔØ£¬ÎÞ·¨Íê³ÉÊý¾Ý¿âϵͳÖÐÖÚ¶à±íģʽµÄÇ¨ÒÆ;HBaseµÄImporttsv ¹¤¾ßÖ»Ö§³ÖTSVµÈÖ¸¶¨ÎļþµÄÇ¨ÒÆ;Put·½·¨ËäÈ»¼òµ¥Ö±½Óµ«Ò²Ö»ÊÇÍê³ÉÊý¾ÝµÄÇ¨ÒÆÇÒÇ¨ÒÆÐ§Âʲ»¼Ñ¡£´ËÍâ¹úÄÚÍâµÄ´óÐÍ»¥ÁªÍø¹«Ë¾Èç΢Èí¡¢»ªÎªµÈÒ²¶¼ÕùÏ࿪·¢×Ô¼ºµÄÇ¨ÒÆ¹¤¾ß£¬µ«¶àÊÇ»ùÓÚ×ÔÉíµÄÉÌÒµÓ¦ÓÃ[4]¡£
×ÛÉÏËùÊö£¬ÊµÏÖÒ»¸ö×Ô¶¯»¯»ò°ë×Ô¶¯»¯µÄÊý¾ÝÇ¨ÒÆ¹¤¾ßºÜÓбØÒª¡£ÕâÑù¿ÉÒÔ¸ü´óÏ޶ȵØÀûÓÃÒµÎñ´æ´¢ÔÚÔÓйØÏµÐÍÊý¾Ý¿âÖеÄÀúÊ·Êý¾Ý£¬¼õÉÙÊý¾ÝÖ®¼ä¹ØÏµµÈÕä¹ó×ÊÔ´µÄÀË·Ñ£¬´ËÍ⣬Ҳ½«±ÜÃâÈ˹¤ÔٴμÈë¡£±¾ÎÄÕë¶Ô¹ØÏµÐÍÊý¾Ý¿âMySQLºÍ·Ç¹ØÏµÐÍÊý¾Ý¿âHBaseµÄ´æ´¢ÔÀíºÍ±í½á¹¹½øÐÐÁËÉîÈëÑо¿£¬²¢ÒÔ CityDetailϵͳΪÀý²ûÊöÁË´«Í³¹ØÏµÐÍÊý¾Ý¿âÏòHBaseÇ¨ÒÆµÄ˼Ï룬²¢Éè¼ÆÊµÏÖÁËÇ¨ÒÆ¹¤¾ß¡£×îÖÕ£¬ÑéÖ¤ÁËͨ¹ý´Ë·½·¨½øÐÐÊý¾ÝÇ¨ÒÆºó£¬¶ÔÊý¾Ý¿â²éѯµÄ¸ßЧÐÔ¡£
2¡¢Êý¾Ý¿âµÄ´æ´¢ÔÀí·ÖÎö
2.1¡¢¹ØÏµÐÍÊý¾Ý¿â´æ´¢ÔÀí
¹ØÏµÐÍÊý¾Ý¿â[5]ÊÇÒ»ÖÖ½¨Á¢ÔÚ¹ØÏµÄ£ÐÍ»ù´¡ÉϵÄÊý¾Ý¿â¡£¹ØÏµÐÍÊý¾Ý¿âÖÐÓÃÒ»ÕŶþά±í´ú±íÏÖʵÊÀ½çÖеÄʵÌ壬ÓñíÖеÄ×ֶδú±íʵÌåµÄÊôÐÔ£¬ÓÃÍâ¼üµÈÁªºÏ²Ù×÷´ú±íʵÌåÖ®¼äµÄ¹ØÏµ¡£±íÖеÄÒ»Ðм´Ò»¸ö¼Ç¼´ú±íÁËÒ»¸öʵÌ壬һ¸ö»ò¶à¸öÕâÑùµÄ±íÒÔ¼°±íÖ®¼äµÄ¹ØÏµ×é³ÉÁËÒ»¸ö¹ØÏµÐÍÊý¾Ý¿â¡£
¹ØÏµÐÍÊý¾Ý¿âMySQLÖÐĬÈϰ²×°INFORMATION_SCHEMAÊý¾Ý¿â¡£INFORMATION_SCHEMAÊý¾Ý¿âÖд洢×ÅMySQLÖÐËùÓÐÊý¾Ý¿âµÄ±íÃû¡¢ÁÐÃû¡¢¼Ç¼ÌõÊý¡¢Ö÷¼ü¡¢Íâ¼üÒÔ¼°¹ý³ÌºÍ·½·¨µÈÐÅÏ¢¡£ÕâЩ´æ´¢ÔÚINFORMATION_SCHEMAÖеÄÊý¾Ý¾Í½Ð×öÊý¾Ý¿âϵͳµÄÔªÊý¾Ý¡£Èçͼ1Ëùʾ¡£
ÔªÊý¾ÝÊÇÓÃÀ´ÃèÊöÊý¾ÝµÄÊý¾Ý[6]£¬ÓÃÀ´Ö§³ÖÈçÊý¾ÝµÄ´æ´¢Î»Öá¢ÀúÊ·Êý¾Ý¡¢×ÊÔ´²éÕҵȹ¦ÄÜ¡£ÔªÊý¾Ý¿ÉÒÔÊÓΪһÖÖµç×ÓĿ¼£¬ÓÃÀ´ÐÖúÊý¾Ý¼ìË÷¡£ÔÚ¹ØÏµÐÍÊý¾Ý¿âÖÐÀûÓÃDESCRIBµÈSQLÓï¾ä½øÐмìË÷ʱ¾ÍÊDzéѯµÄÊý¾Ý¿âÖеÄÕâЩԪÊý¾Ý¡£Òò´Ë£¬ÔÚÊý¾ÝÇ¨ÒÆµÄ¹ý³ÌÖУ¬¿ÉÒÔÀûÓöԹØÏµÐÍÊý¾Ý¿âÖÐÔªÊý¾Ý±íµÄ²éѯ¿ìËÙ»ñÈ¡¹ØÏµÐÍÊý¾Ý¿âÖи÷¸ö±íµÄģʽºÍ¸÷±íÖ®¼äµÄ¹ØÏµ£¬È»ºó½øÐÐÇ¨ÒÆ¡£
2.2¡¢HBaseµÄ´æ´¢ÔÀí
·Ç¹ØÏµÐÍÊý¾Ý¿âHBaseÊǶÔGoogleµÄBigTableÊý¾Ý¿âµÄ¿ªÔ´ÊµÏÖ¡£Ëü¾³£±»ÃèÊöΪÊÇÒ»ÖÖÏ¡ÊèµÄ¡¢·Ö²¼Ê½µÄ¡¢³Ö¾Ã»¯µÄ¶àΪӳÉä[7]¡£HBaseÖеÄÂß¼ÊÓͼÈçͼ2Ëùʾ¡£
ÓÉͼ2¿ÉÒÔ¿´³öHBaseµÄ±íÊÇÒ»¸öÏ¡Êè¾ØÕó¡£HBaseÓ봫ͳ¹ØÏµÐÍÊý¾Ý¿â±íËù²»Í¬µÄÊÇ£ºËü¿ÉÒÔ´æ´¢°ë½á¹¹»¯Êý¾Ý£¬¼´HBaseÖеıíÔÚÉè¼ÆÉÏûÓÐÑϸñµÄÏÞÖÆ[8]£¬Êý¾Ý¼Ç¼¿ÉÄܰüº¬²»Ò»ÖµÄÁС¢²»È·¶¨´óСµÈ¡£´ËÍ⣬Óë¹ØÏµÐÍÊý¾Ý¿â²»Í¬£¬HBaseÔÚ´æ´¢ÉÏ»ùÓÚÁжø·ÇÐУ¬Òò´Ë¶ÔͬÁÐÖеÄÊý¾Ý¾ßÓнϺõIJéѯÐÔÄÜ¡£HBase±í¿ÉÒÔÓÐÊý°ÙÍòÁкÍÊýÊ®ÒÚÐУ¬Òò´Ë¿ÉÒÔÓÃÀ´´æ´¢´ó¹æÄ£Êý¾Ý¡£HBaseÖÐʵ¼ÊÉ϶¨ÒåÁËÈçϵÄ˼άÊý¾ÝÄ£ÐÍ[7]£¬·Ö±ðΪ£º
(1)±í¡£HBaseÓñíÀ´×éÖ¯Êý¾Ý£¬±íÃûΪ×Ö·û´®¡£
(2)Ðмü¡£HBase±íÖУ¬Êý¾Ý°´Ðд洢¡£ÐÐÓÉÐмüΨһ±êÖ¾£¬ÐмüûÓÐÊý¾ÝÀàÐÍ£¬×ÜÊDZ»ÊÓΪ×Ö½ÚÊý×é¡£
(3)ÁÐ×å¡£±íÖеÄÊý¾ÝÔÚÐÐÖб»×éÖ¯³ÉÁÐ×壬ÁÐ×åÒ²Ó°Ïìµ½HBaseÊý¾ÝµÄÎïÀí´æ·Å¡£ÏµÍ³»á°ÑÁÐ×å´æ´¢ÔÚHBase×Ô¼ºµÄÊý¾Ý¿âÖУ¬ËùÒÔÁÐ×åÒªÔÚ½¨±íʱ¶¨ÒåºÃ²¢ÇÒ²»ÄÜÇáÒ×Ð޸ġ£´ËÍ⣬HBaseÖÐÿÐÐÓÐÏàͬµÄÁÐ×壬ÏàͬÁÐ×åÏ¿ÉÒÔÓµÓв»Í¬µÄÁÐÏÞ¶¨·û¡£
(4)ÁÐÏÞ¶¨·û¡£ÁÐ×åÀïµÄÊý¾Ýͨ¹ýÁÐÏÞ¶¨·û»òÁÐÀ´¶¨Î»¡£ÓëÁÐ×岻ͬ£¬ÁÐÏÞ¶¨·û¿ÉÒÔ²»±ØÊÂǰ¶¨Òå¡£ÁÐÏÞ¶¨·ûÒ²²»±ØÔÚ²»Í¬ÐÐÖ®¼ä±£³ÖÒ»Ö¡£ÁÐÏÞ¶¨·ûûÓÐÊý¾ÝÀàÐÍ£¬×ÜÊÇÊÓΪ×Ö½ÚÊý×é¡£
(5)µ¥Ôª¡£Ðмü¡¢ÁÐ×åºÍÁÐÏÞ¶¨·ûÒ»ÆðÈ·¶¨ÁËÒ»¸öµ¥Ôª¡£´æ´¢ÔÚµ¥ÔªÀïµÄÊý¾Ý³ÆÎªµ¥ÔªÖµ¡£ÖµÃ»ÓÐÊý¾ÝÀàÐÍ£¬ÊÓΪ×Ö½ÚÊý×ébyte[]¡£
(6)ʱ¼ä°æ±¾¡£HBaseÖÐÓð汾À´´æ´¢µ¥ÔªÖµÔÚ²»Í¬Ê±¼äµÄÖµ£¬Ä¬ÈÏ´æ´¢3¸ö°æ±¾¡£Ê±¼ä°æ±¾ÓÃʱ¼ä´ÁÀ´±êʶ¡£
ÔÚÎïÀíÉÏ£¬HBaseµÄÊý¾Ý´æ´¢ÔÚHDFSÖУ¬Äܹ»ºÜºÃµØÀûÓÃHDFSµÄ·Ö²¼Ê½´¦Àíģʽ£¬²¢´ÓHadoopµÄMapReduce³ÌÐòÄ£ÐÍÖлñÒæ¡£ HBaseÂß¼ÉϵıíÔÚÐеķ½ÏòÉÏ·Ö¸î³É¶à¸öHRegion,HRegion°´´óС·Ö¸î£¬Ã¿ÕÅ±í¿ªÊ¼Ö»ÓÐÒ»¸öRegion,Ëæ×żÇ¼ÊýµÄ²»¶ÏÔö¼Ó£¬Region²»¶ÏÔö´ó£¬µ±Ôö´óµ½Ò»¶¨³Ì¶Èʱ£¬HRegion»á±»µÈ·Ö³ÉÁ½¸öеÄHRegion¡£HRegionÊÇHBaseÖзֲ¼Ê½´æ´¢ºÍ¸ºÔؾùºâµÄ×îСµ¥Ôª£¬µ«È´²»ÊÇ´æ´¢µÄ×îСµ¥Ôª¡£HRegionÓÉÒ»¸ö»òÕß¶à¸öStore×é³É£¬Ã¿¸öStore±£´æÁ˱íÖеÄÒ»¸öÁÐ×塣ÿ¸öStoreÓÖÓÉÒ»¸ö MemstoreºÍ0ÖÁ¶à¸öStoreFile(HFile)×é³É,StoreFileÓÃÀ´´æ´¢Êý¾Ý²¢ÒÔHFileµÄÐÎʽ±£´æÔÚHDFSÉÏ[9]¡£
3¡¢Ç¨Òƹ¤¾ßµÄÖ÷Ҫģ¿é
±¾Ç¨ÒÆÏµÍ³µÄÖ÷Òª×é³ÉÄ£¿éΪÈçϼ¸¸ö²¿·Ö¡£
3.1¡¢ÌáȡԴÊý¾Ý¿âÖеıíģʽ
ͨ¹ý¶Ô´«Í³¹ØÏµÐÍÊý¾Ý¿âÖд洢½á¹¹µÄ·ÖÎö¿ÉÖª£¬INFORMATION_SCHEMAÊý¾Ý¿â´æ´¢ÁËMySQLÖÐËùÓÐÊý¾Ý±íµÄÔªÊý¾Ý£¬Òò´Ë¿ÉÒÔͨ¹ý¶ÔÕâЩԪÊý¾ÝµÄ·ÃÎÊ£¬¿ìËÙÌáÈ¡µ½ÒªÇ¨ÒƵÄMySQLÊý¾Ý¿âÖÐËùÓÐÔ´Êý¾ÝµÄ±íģʽ¡£
INFORMATION_SCHEMAÊý¾Ý¿âÖеÄSCHEMATA±íÌṩÁ˵±Ç°MySQLʵÀýÖÐËùÓÐÊý¾Ý¿âµÄÐÅÏ¢£¬SQL²éѯÓïÑÔshow datatablesµÄ½á¹û¾ÍÊdzö×Ô´Ë±í¡£TABLES±íÌṩÁ˹ØÓÚÊý¾Ý¿âÖеıíÐÅÏ¢£¬ÏêϸÃèÊöÁËij¸ö±íÊôÓÚÄĸöSCHEMAÒÔ¼°±íÀàÐÍ¡¢±íÃû³Æ¡¢Ã¿¸ö±íµÄ¼Ç¼ÊýÒÔ¼°´´½¨Ê±¼äµÈÐÅÏ¢¡£COLUMNS±íÌṩÁ˱íÖеÄÁÐÐÅÏ¢£¬Ïêϸ±íÊöÁËijÕűíµÄËùÓÐÁÐÒÔ¼°Ã¿¸öÁеÄÐÅÏ¢¡£STATISTICS±íÌṩÁ˱íÖÐËùÓеÄË÷ÒýÐÅÏ¢£¬´ËÍ⻹ÓÐÃèÊö±íµÄÓû§È¨Ï޵ȵÄÔªÊý¾Ý¡£Í¨¹ý¶ÔÕâЩ±íµÄÁªºÏ·ÃÎÊ£¬¿ÉÒÔ¿ìËÙÌáȡԴÊý¾Ý¿âģʽ£¬±ÜÃâÒò¶ÔÊý¾Ý¿âÖеÄÊý¾Ý±íµÄ·ÃÎʶøÑÓ³¤ÏìӦʱ¼ä¡£
3.2¡¢±íģʽµÄת»»
ͨ¹ý¶ÔHBaseÊý¾Ý¿â´æ´¢½á¹¹µÄÑо¿¿ÉÖª£¬HBaseÊý¾Ý¿âÖбíµÄ½á¹¹Ó봫ͳ¹ØÏµÐÍÊý¾Ý¿âÓÐËù²»Í¬¡£HBaseÖеĸ÷±íÖ®¼ä²»´æÔÚ¹ØÁª¹ØÏµ£¬Ò²²»´æÔÚ¹ØÏµÐÍÊý¾Ý¿âÖеÄJoinÁ¬½Ó²éѯµÈ²Ù×÷¡£Òª½øÐбíģʽµÄÇ¨ÒÆ¾Í±ØÐ뽫´«Í³¹ØÏµÐÍÊý¾Ý¿âÖдæÔÚÏ໥ÁªÏµµÄÊý¾ÝÇ¨ÒÆµ½HBaseÖеÄͬһÐÐÖС£¿¼Âǵ½ HBaseÊý¾Ý¿âµÄÌØÊâ±í½á¹¹ºÍ´æ´¢½á¹¹£¬ÎªÁËÊ¹Ç¨ÒÆºóµÄÊý¾Ý¾¡Á¿²»Ó°ÏìÒµÎñ¹¦ÄÜ£¬¶ÔÊý¾ÝµÄ±íģʽ×öÒÔÏÂת»»[10]:
(1)»ù±¾±íµÄת»»
¶ÔCityDetailϵͳÖеÄËùÓÐ±í½øÐлù±¾×ª»»¾ÍÊÇÖ±½Ó½«Ô´Êý¾Ý±íÇ¨ÒÆµ½HBase¶Ë¡£°ÑÔ´Êý¾Ý±íµÄ±íÃû×÷ΪHBase±íµÄ±íÃû£¬Ö÷¼ü×÷ΪÐмü£¬±íÃûºÍÁÐÃûµÄ×éºÏ×÷ΪHBase¶Ë±íÖеÄÁÐÏÞ¶¨·û£¬°æ±¾ÉèÖÃΪ1¡£
(2)ÄÚǶת»»
ÔÚCityDetailϵͳÖдæÔÚCountry±íÓëCity±íÖ®¼äµÄ¹ØÁª¹ØÏµ£¬Í¬Ê±´æÔÚCountry±íÓëCountryLanguage±íÖ®¼äµÄ¹ØÁª¹ØÏµ¡£HBaseÖеÄÎïÀí´æ´¢½á¹¹¾ö¶¨ÁËHBase±íµÄ²»Í¬ÁÐ×å´æ´¢ÔÚ²»Í¬µÄStoreÎļþÖУ¬ÓÖÒòΪԴÊý¾ÝÖжԲ»Í¬±íµÄÁ¬½Ó²éѯ²Ù×÷ÒªÔ¶Ô¶ÉÙÓÚµ¥±íµÄ²Ù×÷£¬Òò´Ë½«City±íºÍCountryLanguage±í·Ö±ð×÷ΪCountry±íµÄÒ»¸öÁÐ×å½øÐд洢¼´¿É¡£ËùÒÔ£¬ÒªÊµÏÖÕâÀà±íµÄÇ¨ÒÆ¾ÍÒª±£Áô CountryµÄ±íģʽ£¬È»ºó¶ÔCity±íºÍCountryLanguage±í½øÐзָ×÷ΪCountry±íµÄÒ»¸öÁÐ×åÌí¼ÓÔÚCountry±íÖС£
(3)µÝ¹éת»»
ÔÚCityDetailϵͳÖгý´æÔÚCountry±íÓëCity±íÖ®¼äµÄ¹ØÁª¹ØÏµÍ⣬»¹´æÔÚ×ÅÏÂÒ»¼¶ÈçDetail±íºÍCity±íÖ®¼äµÄ¹ØÁª¹ØÏµ¡£ÒªÍê³ÉÕâÒ»ÀàÐͱíµÄÇ¨ÒÆ£¬¾ÍÒªÔÚCountry±íºÍCity±í½øÐÐÄÚǶת»»µÄ»ù´¡ÉÏ£¬¶ÔCity±íºÍDetail±íÒ²½øÐÐÉîÒ»¼¶µÄÄÚǶ±ä»»¡£¸ù¾ÝµÝ¹éÔÀí£¬ÏȽ«Detail±í½øÐзָ×÷ΪCity±íÏàÓ¦ÐÐÖеÄÒ»¸öÁÐ×壬ȻºóÔÙ¶ÔCity±í½øÐзָ×÷ΪCountry±íµÄÒ»¸öÁÐ×å½øÐÐÇ¨ÒÆ¡£
(4)·Ö¸îת»»
¸ù¾Ý¹ØÏµÐÍÊý¾Ý¿âµÄ¹ØÏµ·¶Ê½[11]¿ÉÖª£¬±íÖ®¼ä»¹¿ÉÄÜ´æÔÚͬһ¸ö±íDescribeÊÇ ÍâÈý¸ö±íCountry¡¢CityºÍCountryLanguageµÄ×Ó±íµÄÇé¿ö£¬Õë¶ÔÕâÀà¹ØÏµµÄת»»¿ÉÒÔͨ¹ý¶ÔDescribe±í½øÐзָ²¢·Ö±ðÌí¼Óµ½Èý¸ö±í¶ÔÓ¦µÄÁÐ×åÏµķ½·¨À´Íê³É¡£
ͨ¹ýÒÔÉÏËÄÖÖת»»·½Ê½µÄÕûºÏÓ¦Óã¬×îÖÕÍê³ÉCityDetailϵͳµÄËùÓбíģʽµÄÇ¨ÒÆ¡£
4¡¢Éè¼ÆÊµÏÖ
±¾ÎÄÉè¼ÆµÄÇ¨ÒÆÏµÍ³Á÷³ÌͼÈçͼ3Ëùʾ¡£

(1)Á¬½Ó¹ØÏµÐÍÊý¾Ý¿âMySQL
Ê×ÏÈÔÚJava³ÌÐòÖÐʹÓÃClass.forNameÓï¾ä¼ÓÔØMySQLµÄJDBCÇý¶¯³ÌÐò£¬È»ºóÓÃÓï¾ä¡°Connection conn = DriverManager.getConnection(url, user, password)¡±´´½¨Ò»¸öеÄÁ¬½Ó,½ø¶ø·ÃÎÊÊý¾Ý¿âµÄÔªÊý¾Ý£¬»ñÈ¡±íģʽ¡£
(2)ģʽת»»
±éÀú(1)ÖлñÈ¡µÄËùÓбíģʽ£¬ÀûÓÃǰÎÄÌáµ½µÄËÄÖÖת»»·½Ê½×ª»»µÃµ½Ç¨ÒƺóµÄHBaseÖеıíģʽ¡£
(3)Á¬½ÓHBaseÊý¾Ý¿â
ͨ¹ýÓï¾ä¡°Configuration conf=HBaseConfigurAtion.create¡±»ñÈ¡HBaseÊý¾Ý¿âÖеÄÅäÖÃÐÅÏ¢£¬È»ºóÓÃÓï¾ä¡°table=new HTable(conf,tablename)¡±ÔÚHBaseÖд´½¨ÐÂ±í£¬¸ù¾Ý(2)ÖÐת»»µÃµ½µÄ±íģʽ,ÓÃÓï¾ä¡°byte[] family=Bytes.toBytes(¡°n¡±)¡±Ö¸¶¨¸÷ÁÐ×åµÄÃû³Æ¡£ÖÁ´Ë£¬Ç¨ÒÆÏµÍ³µÄ±íÄ£Ê½Ç¨ÒÆÍê±Ï¡£
(4)Êý¾ÝÇ¨ÒÆ
ÔÚÊý¾ÝÇ¨ÒÆÄ£¿éÖÐÒª·Ö±ðÁ¬½ÓÁ½¸öÊý¾Ý¿â¡£Ê×ÏÈ£¬Á¬½ÓMySQLÊý¾Ý¿â£¬´´½¨Ò»¸öMySQL ObjectÓÃÓÚ·ÃÎÊMySQLÖÐÖ¸¶¨µÄÊý¾Ý¿â£¬ÓÃSQL²éѯÓï¾äÑ»·±éÀúÊý¾Ý£¬»ñÈ¡Êý¾Ý¿âÖеļǼ£¬È»ºóÁ¬½Ó´´½¨µÄHBaseÊý¾Ý±í£¬Éú³ÉHBase Object£¬ÓÃPut·½·¨ÒÀ´Î½«SELECT²éѯ»ñÈ¡µÄÊý¾Ý¼Ç¼²åÈëµ½HBaseµÄ±íÖУ¬×îÖչرÕÊý¾Ý¶ÔÏó£¬Íê³ÉÊý¾ÝÇ¨ÒÆ¡£
5¡¢²âÊÔÓë½áÂÛ

ʵÑé²âÊÔÔÚHadoop¼¯ÈºÉϽøÐУ¬¼¯Èº°üÀ¨4̨Ö÷»ú£¬Ã¿Ì¨Ö÷»ú¶¼°²×°ÁËHadoop¡¢HBaseºÍZookeeper,¼¯ÈºÐÅÏ¢Èç±í1Ëùʾ¡£
±¾ÊÔÑé·Ö±ðÓñ¾ÎÄËùÌáÊý¾ÝÇ¨ÒÆ¹¤¾ßÓëApacheΪHadoopÅäÖõĹٷ½Êý¾ÝÇ¨ÒÆ¹¤¾ßSqoop¶ÔCityDetailϵͳ½øÐÐÇ¨ÒÆ£¬²¢Ê¹Óò»Í¬´óСµÄÊý¾Ý¼¯¶ÔÁ½ÖÖ¹¤¾ßµÄÇ¨ÒÆ¹ý³ÌºÍ½á¹û½øÐÐÁ˶Աȡ£
Ê×ÏÈ£¬ÔÚÇ¨ÒÆ¹ý³ÌµÄ·±¼ò·½Ã棬Sqoop¹¤¾ßÊÇÔÚÖÕ¶ËÉÏͨ¹ýÖ¸¶¨²ÎÊý°üÀ¨Á¬½ÓÊý¾Ý¿âµÄÓï¾ä¡¢Ç¨ÒÆÇ°ºóµÄÊý¾Ý±íÃû¡¢ÊôÐÔÃûµÈÀ´Íê³ÉÊý¾ÝµÄÇ¨ÒÆ¡£ÔÚ²ÎÊýÖ¸¶¨ÉϱȽϷ±Ëö£¬²»ÈÝÒײÙ×÷¡£¶ø±¾ÎÄÇ¨ÒÆ¹¤¾ß´Ó»ñÈ¡±íģʽµ½½¨Á¢HBaseÊý¾Ý±íºÍÇ¨ÒÆÊý¾Ý¾ùÓÉϵͳ×Ô¶¯Íê³É£¬±È½Ï¶øÑÔ£¬×Ô¶¯»¯³Ì¶È½Ï¸ß¡£
Æä´Î£¬ÔÚ²éѯÐÔÄÜÉÏ£¬ÓÉÓÚ±¾ÎÄÇ¨ÒÆ¹¤¾ßÍê³ÉÁ˱íÄ£Ð͵Äת»»ºÍÇ¨ÒÆ£¬¶øSqoopÖ»ÊÇ»úе»¯µØÇ¨ÒÆÁËÌØ¶¨±íÖеÄÊý¾Ý£¬²¢Ã»ÓнøÐбíģʽµÄÇ¨ÒÆ£¬Á½Õ߱Ƚϣ¬Ç°ÕßÇ¨ÒÆ½á¹û´æÔںܴóµÄÓÅÊÆ¡£ÒÔµäÐ͵ÄSQL²éѯÓï¾ä£º¡°SELECT Name,Language where Country.CountryCode=Language.CountryCode¡± ΪÀý£¬Á½ÕߵIJéѯ½á¹ûÈçͼ4¡£
´Óͼ4¿ÉÒÔ¿´³ö£¬±¾ÎÄÇ¨ÒÆ¹¤¾ß½ÏSqoopÔÚ²éѯÐÔÄÜÉÏÓÐÁ˺ܴóµÄ¸ÄÉÆ¡£ÒòΪ±¾ÎÄÇ¨ÒÆ¹¤¾ßͨ¹ý¶Ô±íģʽµÄת»»£¬½«ÊôÓÚͬһÌõ¼Ç¼µÄÐÅÏ¢´æ´¢ÔÚÁËÒ»¸öHRegionÖУ¬Í¬Ò»±íÖеÄÊý¾Ý´æ´¢ÔÚÁËͬһ¸öStoreÎļþÖУ¬²éѯʱ£¬¼õÉÙÁ˶à´ÎѰַµÄ¹ý³Ì£¬´Ó¶ø½µµÍÁËϵͳÏìӦʱ¼ä¡£
6¡¢½áÂÛ
±¾ÎÄͨ¹ý¶ÔCityDetailϵͳ´ÓMySQLÊý¾Ý¿âµ½HBaseÊý¾Ý¿âµÄÇ¨ÒÆ°¸Àý·ÖÎö£¬Ñо¿ÁËMySQLÊý¾Ý¿âºÍHBaseÊý¾Ý¿â´æ´¢Êý¾ÝµÄÔÀí£¬Ìá³öͨ¹ý·ÃÎÊMySQLÊý¾Ý¿âÔªÊý¾Ý¿ìËÙÌáÈ¡±íģʽ²¢×ª»»Ç¨ÒƵķ½·¨£¬½â¾öÁËÒÔÍùÇ¨ÒÆ¹¤¾ß²»ÄÜÇ¨ÒÆ±íģʽµÄÎÊÌâ¡£ÔÚ¾¡Á¿±£Ö¤Êý¾ÝÍêÕûÐÔµÄǰÌáÏ£¬Ìá¸ßÁËÇ¨ÒÆËÙ¶È¡¢×Ô¶¯»¯³Ì¶ÈºÍÇ¨ÒÆºóÊý¾ÝµÄ²éѯÐÔÄÜ¡£µ«ÊÇ£¬ÓÉÓÚHBaseÖдæÔÚΨһË÷Òý£¬ÔÚ¶àÌõ¼þ²éѯÉϵIJéѯÐÔÄܿ϶¨»á½ÏMySQLÓнϴóµÄϽµ£¬Òò´Ë¹ØÓÚË÷ÒýµÄÓÅ»¯»¹ÓдýѧϰºÍÑо¿¡£