Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Hbase ÐмüÉè¼Æ£¨rowkey£© ʵÏÖ¶àÌõ¼þ²éѯ
 
  7922  次浏览      28
 2018-10-18
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÖÐΪÁËÃèÊö¼òµ¥Ê¹ÓÃÁËStringµÄHashcode£¬Ï£Íû¶ÔÄúµÄѧϰÓаïÖú¡£

2018×îб༭

HBASEµÄʹÓøúÒµÎñÂß¼­ÓкÜÇ¿µÄ¹ØÁªÐÔ£¬¾ÍÏñ±¾ÎÄÀïÌáµ½µÄÀý×ÓʹÓÃElasticSearch¸üºÏÊÊ¡£HBASEÊʺÏÄÇÖÖʹÓÃkey-valueģʽµÄ¿ìËÙ²éѯ£¬¶à×ֶβéѯ»¹ÊDz»ÊʺÏËü¡£

ËùÒÔ´ó¼ÒÈç¹û¿´±¾Îĵϰ£¬¾ÍÈ«µ±ÊǼÓÉî¶Ôhbase¹ýÂËÆ÷µÄÀí½â°É£¬ÄÚÈݸÅÀ¨ÆðÀ´¾ÍÊÇʵÏÖÒ»¸öʹÓÃλÔËËãµÄ±È½ÏÆ÷¡£

ÕªÒª

±¾ÎÄÖ÷ÒªÄÚÈÝÊÇͨ¹ýºÏÀíhbase Ðмü£¨rowkey)Éè¼ÆÊµÏÖ¿ìËٵĶàÌõ¼þ²éѯ£¬Ëù²ÉÓõķ½·¨½«ËùÓÐÒªÓÃÓÚ²éѯÖеÄÁо­¹ýһЩ´¦Àíºó´æ´¢ÔÚrowkeyÖУ¬²éѯʱͨ¹ýrowkey½øÐвéѯ£¬Ìá¸ßrowkeyµÄÀûÓÃÂÊ£¬¼Ó¿ì²éѯËÙ¶È¡£Ðмü£¨rowkey)²¢²»ÊǼòµ¥µÄ°ÑËùÓÐÒª²éѯµÄÁеÄÖµÖ±½ÓÆ´½ÓÆðÀ´£¬¶øÊǽ«¸÷¸öÁеÄÊý¾Ýת³ÉÕûÐÍ£¨int)Êý¾ÝÀ´´æ´¢¡£Ö®ºóʵÏÖÁ½¸ö×Ô¶¨ÒåµÄ±È½ÏÆ÷£¨comparator)£ºÒ»¸öÊÇÏàµÈ±È½ÏÆ÷£¬ÓÃÓÚʵÏÖÀàËÆÓÚSQLµÄ¶àÌõ¼þ¾«È·²éÕÒ¹¦ÄÜ¡£

select * from table where col1='a' and col2='b'

ÁíÒ»¸öÊÇ·¶Î§±È½ÏÆ÷£¬ÓÃÓÚʵÏÖÀàËÆÓÚSQLÓï¾ä

select * from table where col3 > '10' and col4<'100'

ÕâÑùµÄ·¶Î§²éÕÒ¹¦ÄÜ¡£

µ±Á½¸ö±È½ÏÆ÷ÅäºÏʹÓÃÔÙ½áºÏhbaseµÄ¹ýÂËÆ÷£¬ÒÔʵÏÖÀàËÆÓÚÏÂÃæÕâÌõSQLÓï¾äÕâÑù¶àÌõ¼þµÄ²éѯ

select * from table where col1='a' and col2='b' andcol3 > '10' and col4<'100'

ÎÊÌâ±³¾°

hbase ×÷Ϊ¿ªÔ´ÁÐʽ´æ´¢£¬Ê¹ÓÃÆðÀ´Ó봫ͳµÄ¹ØÏµÐÍÊý¾Ý¿â»¹ÊÇÓкܶ಻ͬµÄ¡£¾ÍÒÔÎÒËùÔÚ¹«Ë¾ÎªÀý£¬ÏÂÃæµÄÊý¾ÝÊÇÒ»Ð©ÍøÒ³Á¬Í¨ÐÔµÄÊý¾Ý£¬

{ "_id" : { "$oid" : "584a6e030cf29ba18da2fcd5"} , "url" : "http://www.nmlc.gov.cn/zsyz.htm" , "md5url" : "ea67a96f233d6fcfd7cabc9a6a389283" , "status" : -1 , "code" : 404 , "stime" : 1481272834722 , "sdate" : 20161209 , "sitecode" : "1509250008" , "ip" : "10.168.106.153" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272835222} , "free" : 0 , "close" : 0 , "queue" : 1 , "scantype" : 1 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e020cf224463e76c162"} , "url" : "http://www.xzxzzx.gov.cn:8000/wbsprj/indexlogin.do" , "md5url" : "fd38c0fb8f6e839be56b67c69ad2baa5" , "status" : -1 , "code" : 503 , "stime" : 1481272828174 , "sdate" : 20161209 , "sitecode" : "3203000002" , "ip" : "10.117.8.89" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272834887} , "free" : 0 , "close" : 0 , "queue" : 1 , "scantype" : 0 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e020cf27d1a31f617e0"} , "url" : "http://www.nmds.gov.cn/portal/bsfw/nsfd/list_1.shtml" , "md5url" : "d51abcd8edff79d23ca4a9a0576a1996" , "status" : -1 , "code" : 404 , "stime" : 1481272822971 , "sdate" : 20161209 , "sitecode" : "15BM010001" , "ip" : "10.162.86.176" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272834846} , "free" : 0 , "close" : 0 , "queue" : 0 , "scantype" : 0 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e020cf29ba18da2fcd4"} , "url" : "http://beijing.customs.gov.cn/publish/portal159/tab60561/" , "md5url" : "e27bbc9192e760bacc23c226ffd90219" , "status" : -1 , "code" : 503 , "stime" : 1481272832559 , "sdate" : 20161209 , "sitecode" : "bm28020001" , "ip" : "10.168.106.153" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272834766} , "free" : 0 , "close" : 0 , "queue" : 1 , "scantype" : 0 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e020cf29ba18da2fcd3"} , "url" : "http://www.nss184.com/web2/newlist_index.aspx?classid=1" , "md5url" : "cbc2c0571464621024c89aa019cd09ef" , "status" : -1 , "code" : 404 , "stime" : 1481272826788 , "sdate" : 20161210 , "sitecode" : "BT10000001" , "ip" : "10.168.106.153" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272834732} , "free" : 0 , "close" : 1 , "queue" : 1 , "scantype" : 0 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e020cf2847bb13af52c"} , "url" : "http://cgw.bjdch.gov.cn/n1569/n4860273/n9719314/index.html" , "md5url" : "00a18048ed95f1c057fccc8928ddf610" , "status" : -1 , "code" : 503 , "stime" : 1481272803601 , "sdate" : 20161208 , "sitecode" : "1101010059" , "ip" : "10.117.187.7" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272834150} , "free" : 1 , "close" : 0 , "queue" : 1 , "scantype" : 0 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e020cf29ba18da2fcd2"} , "url" : "http://www.qdn.gov.cn/zwdt/ztfw/shbzfw.htm" , "md5url" : "e6bfa0a07e773e3bab27a37f36ff221a" , "status" : -1 , "code" : 404 , "stime" : 1481272833479 , "sdate" : 20161209 , "sitecode" : "5226000038" , "ip" : "10.168.106.153" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272834046} , "free" : 0 , "close" : 0 , "queue" : 1 , "scantype" : 0 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e010cf29ba18da2fcd1"} , "url" : "http://www.caac.gov.cn/E1/E2/" , "md5url" : "e6217482388cbc57aa80422c3f64bb35" , "status" : -1 , "code" : 404 , "stime" : 1481272833297 , "sdate" : 20161209 , "sitecode" : "bm70000001" , "ip" : "10.168.106.153" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272833723} , "free" : 0 , "close" : 0 , "queue" : 1 , "scantype" : 0 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e010cf22c906fb6f846"} , "url" : "http://www.ny.xwie.com/Thought/" , "md5url" : "b7912f3bdb50be7b58f5a67d65273201" , "status" : -1 , "code" : 404 , "stime" : 1481272821713 , "sdate" : 20161209 , "sitecode" : "4408250003" , "ip" : "10.168.156.196" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272833498} , "free" : 0 , "close" : 0 , "queue" : 1 , "scantype" : 0 , "scanmemo" : ""}
{ "_id" : { "$oid" : "584a6e010cf29ba18da2fcd0"} , "url" : "http://www.guoluo.gov.cn/html/1746/List.html" , "md5url" : "e353cd577fd721eb71538d0938d041f7" , "status" : -1 , "code" : 404 , "stime" : 1481272832723 , "sdate" : 20161209 , "sitecode" : "6326000004" , "ip" : "10.168.106.153" , "port" : 5200 , "type" : 2 , "intime" : { "$date" : 1481272833472} , "free" : 0 , "close" : 0 , "queue" : 1 , "scantype" : 0 , "scanmemo" : ""}

ÿÐÐjson×Ö·û´®¶¼±íʾijһÌõÍøÖ·µÄÁ¬Í¨ÐÔɨÃèÐÅÏ¢£¬²¿·ÖÐèÒª¼ìË÷µÄjsonÊôÐÔµÄÒâÒåÈçÏÂ

1.md5url urlµÄmd5µÄÖµ

2.status ɨÃè״̬

3.code http·ÃÎÊ·µ»ØÂë

4.sdate ɨÃèÈÕÆÚ

5.sitecode ËùÊôÕ¾µã

6.type ɨÃèÀàÐÍ

7.free ÊÇ·ñÊÕ·Ñ

8.close ÊÇ·ñ¹Ø±Õ

9.queue µÈ´ý¶ÓÁÐ

10.scantype ɨÃèÀàÐÍ

ÆäʵÎÒÃDz»ÐèÒªÖªµÀÆäÿ¸öÊôÐÔ¶¼´ú±íʲôÒâ˼£¬ÎÒÃÇÖ»ÐèÒªÖªµÀÎÒÃÇÔÚ²éѯµÄʱºòÓпÉÄÜ»áÓõ½ÉÏÊöÒ»¸ö»ò¶à¸öÊôÐÔ£¬ÀýÈç

²éѯijһÌõURLÔÚijһÌìµÄɨÃèÊý¾Ý SQL±íʾ

select * from table where md5url='somemd5url' and sdate='somedate'

»òÕßÊÇÎÒÃÇÒª²éѯijһÌìÁ¬²»Í¨µÄÍøÖ·£¨·µ»ØÂëÊÇ404£©

select * from table where sdate='somedate' and code='404'

»òÕß²éѯij¸öURLÔÚ¹ýȥij¼¸ÌìÄÚµÄÊý¾Ý

select * from table where sdate<'enddate' and sdate>'startdate' and md5url='somemd5url'

ÒÔÉÏÖ»ÊǼòµ¥Áоټ¸ÖÖ²éѯµÄÐèÇó£¬Êµ¼ÊÉú²úÖлáÓиü¶àÖÖÀ۵IJéѯÐèÇó£¬ÄÇÈçºÎÉè¼Æhbase ±í½á¹¹¾Í³ÉΪ½â¾öÎÊÌâµÄ¹Ø¼ü¡£

Ðмü£¨rowkey)Éè¼Æ

¸ù¾ÝÎÊÌâÐèÇó£¬ÎÒÃÇ¿´µ½ÐèÒª²éѯµÄÊôÐÔ¶à´ï10¸ö£¬Èç¹û˵²éѯÿһ¸öÊôÐÔµÄֵʱ¶¼Ê¹ÓÃcolumnvaluefilter µÄ»°ÄÇËÙ¶ÈÊÇÏ൱ÂýµÄ£¬hbase ÐèҪȥ½øÐÐÈ«±íµÄɨÃ衯Âúɽ±éÒ°¡¯µØÕÒÓëÄãÖµÏàÆ¥ÅäµÄÐУ¬¶øÇÒʹÓÃcolumnvaluefileterÒ²ºÜÄÑʵÏÖÒ»´Î²éÕÒÖзÅÈë¶à¸öÕÒÕÒÌõ¼þ£¨PS£ºÒ²ÐíÊÇÎÒÀí½â²»¹»ÉîÈë°¡£¬²»¶®ÈçºÎʹÓÃcolumnvaluefileter ͨ¹ýÒ»´Îscan¿ÉÒԵõ½¶àÁж¼Âú×ãÒªÇóµÄÊý¾Ý£¬ÕâÀïÔÝÇÒ²»Ì¸¡££©¡£¼ÈȻȫ±íɨÃèµÄÕâÖÖ·½Ê½±»·ñ¶¨£¬ÄÇÔõôÑù½â¾öÕâ¸öÎÊÌ⣿¹Ø¼ü¾ÍÔÚÓÚÐмü£¨rowkey)

rowkeyÉè¼ÆÓÐÒÔϼ¸¸öÔ­Ôò£¨http://www.cnblogs.com/kxdblog/p/4328699.html£©

1¡¢³¤¶ÈÔ½¶ÌÔ½ºÃ

2¡¢Î¨Ò»ÐÔ

3¡¢É¢ÁÐÐÔ

ÎÒÃÇÈçºÎÄÜËù¾¡¿ÉÄܶàµÄÊôÐÔÖµÒÔ¾¡¿ÉÄ̵ܶÄÐÎʽ·Åµ½rowkey¾ÍÊǽâ¾öÎÊÌâµÄ¹Ø¼ü(³¤¶È¾¡¿ÉÄܶÌÂú×ãÁ˵ÚÒ»¸öÔ­Ôò£¬¾¡¿ÉÄܶàµÄÊôÐԷŵ½rowkeyÖУ¬Èç¹ûÁ½ÐÐÊý¾Ý²»Í¬ÄÇôÆäÐγɵÄrowkeyÒ²Ó¦¸ÃÊDz»Í¬µÄÕâ¾ÍÂú×ãÁ˵ڶþ¸öÔ­Ôò£¬µÚÈý¸öÔ­ÔòÎÒÃÇÔÝÇÒ²»Ì¸£©

»ØÍ·¿´ÎÒÃǵÄÊý¾Ý£¬ÎÒÃÇ·¢ÏÖÿ¸öÊôÐÔµÄÖµµÄÀàÐÍÓÐÈýÖÖ£º×Ö·û´®£¨String)ÀàÐÍ£¬Èçmd5url¡¢siteCode£»ÕûÐÍ(int),Èçcode¡¢type;²¼¶ûÐÍ£¨boolean),Èçfree ,ÄÇÎÒÃÇÓ¦¸ÃÔõôÑù°ÑÕâÈýÖÖÀàÐ͵ÄÊý¾ÝÈں͵½Ðмüµ±ÖÐÄØ£¿

String ÀàÐÍ £ºÎÒÃÇÖªµÀ¶ÔÓÚÒ»¸ö×Ö·û´®(String)ÀàÐ͵ÄÊý¾Ý¸ù¾ÝÆä×Ö·û¼¯±àÂëÒÔ¼°×Ö·ûÊýÁ¿µÄ²»Í¬ÆäÕ¼ÓõÄ×Ö½ÚÊýÊDz»¹Ì¶¨µÄ£¬¿ÉÊÇÎÒÃÇÖªµÀ×Ö·û´®µÄ¹þÏ£ÖµÊÇÒ»¸öIntÐ͵ÄÊý¾Ý£¬IntÔÚjavaÄÚ´æÖй̶¨ÊÇÕ¼4¸ö×Ö½Ú¡£ËùÒÔ˵ÎÒÃÇÈç¹ûÔÚ×éºÏÐмüʱ²¢²»Ö±½ÓʹÓÃString¶øÊÇʹÓÃÆäËù¶Ô¾ÍµÄ¹þÏ£Öµ¾Í¿ÉÒÔËõ¶ÌÆäËùÕ¼µÄ×Ö½ÚÊý¡£

Int ÀàÐÍ£ºÎÒÃǾ¡Á¿ÈÃÊý¾ÝÒÔIntÀàÐÍÈ¥×é³Érowkey£¬ËùÒÔint ²»ÐèÒª´¦Àí¡£

²¼¶ûÀàÐÍ £º ÎÒÃÇÖªµÀ²¼¶ûÀàÐÍʹÓÃһλ1/0 ±íÊ¾Õæ/¼Ù¡£ÄDz¼¶ûÀàÐÍ¿ÉÒÔ±ÈInt ¸ü¶Ì£¨int Õ¼4¸ö×Ö½Ú32룩£¬µ«´Ë´¦ÎªÁ˼òµ¥Í³Ò»²¼¶ûÀàÐÍÒ²Ò»²¢°´ÕÕIntÀ´´¦Àí£¨ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔ×Ô¼ºÊµÏÖ£©

ÎÒÃÇÔÚÈ·¶¨ÁËÊý¾ÝÒÔºÎÖÖÐÎʽ·ÅÈërowkeyºó£¬ÎÒÃÇ»¹ÐèҪȷ¶¨¸÷¸öÊôÐÔÖµÔÚrowkeyÖеÄÏȺó˳Ðò£¬Õâ¸öÎÒÃǺó±ßÔÙ˵£¬ÕâÀïÎÒÃǾÍÒÔϱßËùʾµÄ˳Ðò×é³Érowkey

md5url¡¢siteCode¡¢status¡¢code¡¢sdate¡¢type¡¢free¡¢close¡¢gueue¡¢scantype

ÖÁ´ËÎÒÃÇÒѾ­È·¶¨ÁËÈçºÎÉú³Érowkey

Ëã·¨

ÔÚÈ·¶¨ÁËrowkeyµÄÉú³É·½Ê½ºó£¬ÈçºÎ²éÕÒrowkey¾Í³ÉΪÁËÏÖÔÚµÄÎÊÌâ¡£

hbase¸øÎÒÃÇÌṩÁ˶àÖÖ¹ýÂËÆ÷ºÍ¶àÖÖ±È½ÏÆ÷£¨¿ÉÒԲ鿴¡¶hbaseȨÍþÖ¸ÄÏ¡·ÖйØÓÚ¹ýÂËÆ÷µÄÃèÊö£©£¬Ã¿ÖÖ¹ýÂËÆ÷¶¼ÓÐÆäÌØµã£¬ÆäÖÐBitComparator ¿ÉÁËÎÒÒ»¶¨µÄÆôʾ£¬ÎÒÃǿɲ»¿ÉÒÔҲʹÓÃÕâÖÖλµÄ·½Ê½À´½øÐÐÆ¥ÅäÄØ£¿

ÎÒÃÇÒÔÒ»¸ö¼òµ¥µÄʾÀýÀ´ËµÃ÷²éÕÒÐмüµÄËã·¨£¬Ò»¸öint ÐÍÊý¾ÝÊÇÕ¼Ëĸö×Ö½Ú¡£ÏÖÔÚÎÒÃÇÓжà¸öintÐÍÊý¾Ý

10100111 11000101 10110100 01100011
10000101 11100001 00110000 00101011
10100011 11010101 10111100 01101011
00100111 11000111 10110101 01110011
00110111 11010101 10100100 01101011

ÒÔÉÏ5¸öÊýÎÒÃÇÓÃÀ´±íʾhbaseÖÐÿһÐеÄÐмü£¬ÀýÈçÎÒÃÇÒªÕÒµ½£¬´Ó×óÊýµÚ2¸ö×Ö½ÚÊÇ

11010101

µÄÊý¾Ý£¬ÄÇÎÒÃÇÓ¦¸ÃÔõÑù¼ÆËãÄØ£¿

ÎÒÃÇÐèÒªµÚÒ»¸ö±È½ÏÆ÷¿ÉÒÔʵÏÖÒÔϲ½Öè¡£

ת»¯Æ¥ÅäÌõ¼þ£ºÎÒÃÇÒªÕÒµÚ2¸ö×Ö½ÚÊÇ11010101 µÄÐУ¬ÎÒÃÇ¿ÉÒÔ¹¹½¨Ò»¸öÓÃÓÚ²éÕÒµÄÖµ£¬ÈçÏÂ

00000000 11010101 00000000 00000000

¹¹½¨Ä£°åÊý×Ö£º´Ë´¦Ä£°åÊý×ÖÓÃÓÚÓëÐмü½øÐÐÓë²Ù×÷£¬ÒÔ¹ýÂËÆäËûÖµ¶Ô±È½ÏµÄ¸ÉÈÅ¡£

00000000 11111111 00000000 00000000

3¡¢¶ÁȡһÐÐrowkey ÓëµÚÒ»²½ÖÐÎÒÃǵÄÄ£°å½øÐÐÓë²Ù×÷£¬ÀýÈçÎÒÃÇÏÖÔÚ¶ÁÈ¡µ½µÚÒ»¸örowkey

10100111 11000101 10110100 01100011

ÓëÄ£°åÊý×Ö½øÐÐÓë²Ù×÷ºó½á¹ûΪ

00000000 11000101 00000000 00000000

4¡¢µÃµ½×îÖÕ½á¹û ¡£ÎÒÃÇ¿ÉÒÔ¿´µ½£¬ÔÚµÚ3²½×îºóµÃµ½µÄ½á¹û£¬Èç¹ûÓëÎÒÃǵIJéѯÌõ¼þÏàµÈµÄ»°Ê¹compareTo·½·¨µÄ·µ»ØÖµÎª0£¬Èç¹û²»ÏàµÈÔò·µ»Ø1 ±íʾ²»Âú×ãÌõ¼þ¡£

¸ù¾ÝÕâ¸öÔ­Àí£¬Í¬Ê±Æ¥Åä¶à¸ö×Ö½ÚÏàµÈÒ²ÊÇ¿ÉÐеġ£ÀýÈçÎÒÃÇÒªÕÒµÚÒ»¸ö×Ö½ÚÊÇ10000101µÚËĸö×Ö½ÚÊÇ00101011µÄÐУ¬ÄDzéѯÊý×Ö±ã¿ÉÒÔÊÇ10000101 00000000 00000000 00101011 ¹ýÂËÄ£°åÊý×ÖÓ¦¸ÃÊÇ11111111 00000000 00000000 11111111

È»ºó½øÐÐÉÏÊö²½Öè¾Í¿ÉÒÔÕý³£µÃµ½Âú×ãÒªÇóµÄÐС£

ÒÔÉÏËã·¨½â¾öÁËselect * from table where c1='v1' and c2='v2' ÕâÖÖ¾«È·Æ¥ÅäµÄ²éѯҪÇ󣬵«ÊǶÔÓÚ·¶Î§²éѯ»¹ÊÇûÓнâ¾ö£¬ÎÒÃÇÐèÒªÁíÍâÒ»¸ö±È½ÏÆ÷À´½â¾öÕâ¸öÎÊÌâ¡£

hbase µ±ÖÐÄØÒѾ­¸øÎÒÃÇÌṩÁ˱ȽÏÔËËã·ûÁË£¬ÎÒÃÇÐèÒª½â¾öÊÇÈçºÎÔËËã±È½Ï´óСµÄÎÊÌâ¡£

ÈÔȻʹÓÃÉÏÊöÊý×ÖΪÀý£¬ÎÒÃÇÒªÕÒµÚ2¸ö×Ö½Ú´óÓÚ11010101 µÄÐС£

1¡¢ÈÔÈ»Êǹ¹½¨²éѯÌõ¼þ

00000000 11010101 00000000 00000000

2¡¢¹ýÂËÄ£°åÊý×Ö

00000000 11111111 00000000 00000000

3¡¢¶ÁÈëÐмü²¢ÓëÄ£°åÊý×Ö½øÐÐÓë²Ù×÷£¬ÒÔµÚÒ»ÐÐΪÀýµÃµ½µÄ½á¹ûÊÇ

00000000 11000101 00000000 00000000

4¡¢×îºó·µ»ØµÚ3²½ÖеĽá¹ûÓë²éѯÌõ¼þµÄ²îÖµ¡£

ÎÒÃÇ¿ÉÒÔ¿´µ½ÉϱßÌáµ½µÄÁ½¸ö±È½ÏÆ÷²Ù×÷¹ý³Ì´óÌåÏàͬ£¬Ö»Óе½Á˵Ú4²½²»Í¬£¬ÄÇΪʲôÎÒÃDz»ÄܽáºÏµ½Ò»ÆðÄØ£¿

ÕâÊÇÒòΪ±È½Ï´óСÓë±È½ÏÏàµÈÊDz»Í¬µÄ£¬ÒòΪhbase¹ýÂËÆ÷ÖеıȽÏÔËËã·ûÎÒÃÇÒ»´ÎÖ»ÄÜ´«Ò»¸ö£¨»òÕß´óÓÚ»òÕßСÓÚ£©¡£ËùÒÔÄã²»ÄÜÔÚÒ»´Î±È½ÏÖм´ÕÒµ½µÚ2¸ö×Ö½Ú´óÓÚÖ¸¶¨Öµ£¬µÚ3¸ö×Ö½ÚСÓÚÖ¸¶¨Ö¸¡£ËùÒÔÕâ¸ö±È½ÏÆ÷ÕýÈ·µÄÓ÷¨Ó¦¸ÃÊÇ¡£ÔÚÒ»´ÎɨÃèÖй¹½¨¶à¸ö¹ýÂËÆ÷£¬Ã¿Ò»¸ö¹ýÂËÆ÷ÖÐµÄ±È½ÏÆ÷½ö±È½ÏÐмüÖеÄijһ¸ö×Ö½Ú£¬½«¶à¸ö¹ýÂËÆ÷½áºÏʹÓþͿÉÒÔÔÚÒ»´ÎɨÃèÖвé³öÂú×ã¶à¸ö·¶Î§Ìõ¼þµÄÐС£ÀýÈ磬ÎÒÒªÕÒµÚ2¸ö×Ö½Ú´óÓÚ11000101 ͬʱµÚ3¸ö×Ö½ÚСÓÚ10111100µÄֵʱ£¬ÎÒÃÇÐèÒªÁ½¸ö¹ýÂËÆ÷µÚÒ»¸ö´«Èë00000000 11000101 00000000 00000000 ͬʱ´«ÈëÏàÓ¦µÄ±È½ÏÔËËã·û£¬µÚ2¸ö±È½ÏÆ÷Öд«Èë0000000 00000000 10111100 0000000 ºÍÏàÓ¦µÄ²Ù×÷·û£¬È»ºó½«ÕâÁ½¸ö¹ýÂËÆ÷ͬʱ¼Óµ½É¨ÃèÆ÷ÖУ¬ÒÔÔÚÒ»´ÎɨÃèÖеõ½Âú×ã¶à¸öÌõ¼þµÄÊý¾Ý ¡£

½«ÉÏÊöÀý×ÓÀ©Õ¹µ½ÎÒÃDZ¾ÎÄ¿ªÍ·µÄÎÊÌâÖдóÌåÒ²ÊÇÒ»ÑùµÄ£¬½ö½öһЩСϸ½ÚÉÏ»áÓгöÈ룬ÀýÈçÿ´ÎÎÒÃDzéѯµÄʱºò²»ÔÙÊÇÒªÇóijһ¸ö×Ö½ÚÊÇij¸öÖµ£¬¶øÊÇÒªÇóÔÚijһλÖõÄÕûÊýÂú×ãij¸öÖµ¡£

´úÂëʵÏÖ

±¾ÎÄÖÐËùÓõ½µÄ´úÂë¿ÉÒÔÔÚhttps://github.com/alphg/hbase.rowkeycomparator µÃµ½£¬ÎÒ¾õµÃÔÚÃ÷°×Ô­Àíºó£¬´ó¼ÒÍêÈ«¿ÉÒÔ°´ÕÕ×Ô¼ºµÄ±à³Ìϰ¹ßȥʵÏÖ£¬ÎҵĴúÂë½ö×÷Ϊ²Î¿¼£¨¶øÇÒÎÒ¾õµÃÎÒдµÄÒ²²»ºÃ£©¡£ÕâÀïÎÒÂÞÁÐһЩϸ½ÚºÍ×¢ÒâÊÂÏ

1¡¢ÔÚÔ­ÀíÖÐËù˵Á½¸ö±È½ÏÆ÷ÐèÒª½øÐÐÐòÁл¯£¬ÕâÀïʹÓõ½ÁËgoogleµÄprotobuf ²»»áµÄͬѧ¿ÉÒÔ¼òµ¥¶ø¶Èһϣ¬·Ç³£·½±ã¡£

2¡¢ÎªÁ˼õÉÙ±È½ÏÆ÷ÐòÁл¯ºóµÄ³¤¶È£¬Ò²¼õÉÙÐòÁл¯Óë·´ÐòÁл¯²¿·Ö´úÂ룬ͬʱ·½±ãʹÓã¬Ëã·¨ÖÐËùÌáµ½µÄ¹ýÂËÄ£°åÊDz»×öÐòÁл¯µÄ£¬¶øÊÇÔÚ¹¹Ô캯ÊýÖУ¬¸ù¾Ý²éѯÌõ¼þ½øÐд´½¨£¬Ï¸ÐĵÄͬѧҲÄÜ´ÓʾÀýµ±Öп´³öÆäÓë²éѯÌõ¼þµÄ¶ÔÓ¦¹ØÏµ£¬´Ó¶øÔÚʹÓÃʱ½øÐд´½¨¡£

´´½¨¹ýÂËÄ£°åÕâ¸ö²Ù×÷ûÓзŵ½compareº¯ÊýÖÐÊÇΪÁËÌá¸ßЧÂÊ£¬ÔÚhbaseÖÐÿ¸ö±È½ÏÆ÷ÊǸ´Óõģ¬ËùÒÔ½öÐèÒªÔÚ¹¹Ô캯ÊýÖмÆËãÒ»´Î£¬Ã¿´Î±È½Ïʱ¶¼¿ÉÒÔÖØ¸´ÀûÓá£

3¡¢µÚÈýµãÊǺÜÖØÒªµÄÒ»µã¡£

ÔÚ´¦ÀíÐмü(rowkey£©µÄ¹ý³ÌÖУ¬ÎÒ´úÂëÖÐÒ»Ö±¶¼Ê¹ÓõÄÊÇÀàÐÍbyte[] £¨×Ö½ÚÊý×é £©³ýÁËprintÍâûÓÐÒ»´¦»á½«Æäת»¯Îªstring£¬ÕâÊÇÒòΪתstring»áÓкܶ಻ȷ¶¨ÐÔÒòËØ£¬ÀýÈ磬Èç¹ûÄãµÄ×Ö½ÚÊý×éÖÐÓÐijһ¸ö×Ö½ÚÖµÊÇ0 £¬ÄÇÕâ¸östring»á²»»áÒòΪÕâ¸ö0¶øÌáǰ±»½Ø¶Ï£¿»¹ÓÐstringµÄ±àÂëÎÊÌ⣬×ÜÖ®¸Ð¾õתstringÎÊÌâ¶à¶à£¬ÎÒÃǵÄËã·¨Ò²²»ÐèÒªÆä°´ÕÕstringÀ´½øÐд¦Àí£¬SO£¬²»Òª½«Ðмüת³ÉString

4¡¢ÎÄÕÂÖÐÎÒÃǽ«×Ö·û´®ÀàÐ͵Äֵת»»³ÉÆähashcode ´æÔÚÁËrowkeyÖУ¬ËùÒÔ¶ÔÆä½øÐÐÏàµÈ»ò²»ÏàµÈµÄ±È½ÏÊÇûÓÐÎÊÌâµÄ£¬µ«ÊÇÈç¹ûÓÃÓڱȽϴóСÊÇ»áÓÐÎÊÌâµÄ,Èç ×Ö·û´®¡®def¡¯µÄ×Öµä˳ÐòÊÇÒª´óÓÚ¡¯abcdefghjk¡¯µÄ£¬µ«ÊÇÆähashcodeÊÇ·ñÈÔÈ»´óÓÚÄØ£¿ÏÔÈ»ÕâÊDz»È·¶¨µÄ¡£so Ó¦ÔÚÉϲãʵ¼Êʱ±ÜÃâ±È½Ï×Ö·û´®´óС¡£

5¡¢ÎÒµÄÑùÀý´úÂëÖÐÓÐһЩlogger ÓÃÀ´´òӡһЩÈÕÖ¾£¬ÒÔÑé֤ijЩÏë·¨£¬²»ÐèÒª´ó¼Ò¿ÉÒÔ½«ÆäÈ¥µô¡£

²âÊÔÒÔ¼°²¿·ÖÎÊÌâ½â¾ö

ÎÒÔÚÍê³ÉÉÏÊö´úÂëÖ®ºó½øÐÐÁËһЩ²âÊÔ£¬¹¦ÄÜÉÏÊÇÂú×ãÒªÇóµÄ£¬µ«ÊÇÔÚ²¿·ÖÐÔÄÜÉÏ»¹ÊÇÓÐЩÎÊÌâ¡£

¹«Ë¾ÄÚÍø»·¾³£¬3̨ÆÕͨ·þÎñÆ÷£¨ÕâÀï¾Í²»±¨ÅäÖÃÁË£©ÉϲâÊÔ£¬1000ÍòÊý¾ÝÁ¿£¬Ê¹ÓÃget½øÐо«È·²éÕÒ£¬²éѯһ´ÎÐèÒª300ms×óÓÒ £¬ËÙ¶È»¹¿ÉÒÔ½ÓÊÜ¡£

µ«ÊÇʹÓÃscan£¬½áºÏ±¾ÎÄÖеÄÄÚÈݽøÐÐɨÃèʱ£¬²»×÷ÈÎºÎÆäËûÏÞÖÆµÄɨÃèʱÆäËÙ¶ÈÄÇÊÇÏ൱Îȶ¨µÄÂý 50Ãë×óÓÒ¡£

ÕâÊÇÒòΪÿ´ÎɨÃè¶¼¶ÔÐмü(rowkey£©½øÐÐÒ»´ÎÈ«±íɨÃ裬ÕâÑùµÄ»°ËÙ¶ÈÂý¾Í¿ÉÒÔÀí½âÁË£¬ÄÇÔõôÑù½â¾öÕâ¸öÎÊÌâÄØ£¿

¾ÍÊÇÒªÏÞ¶¨É¨ÃèÐмüµÄÆðÖ¹·¶Î§¡£ÕâÑù¿ÉÒÔ´ó·ù¶È¼õÉÙɨÃèµÄÐÐÊý´Ó¶øÌá¸ßÏìӦʱ¼ä¡££¨Õⲿ·ÖÄÚÈݾͲ»Ï¸ËµÁË£¬´ó¼Ò¿ÉÒÔ¿´Ïà¹ØÊé¼®Á˽âÈçºÎÖ¸¶¨ÆðʼºÍ½áÊøÐмü£©

¾Ù¸öÀý×Ó£¬ÎÒÒªÕÒmd5url=¡¯00a18048ed95f1c057fccc8928ddf610¡¯ ÎÒÃÇ¿ÉÒÔÖ¸¶¨

ÆðʼÐмüµÚÒ»¸öÕûÊýÊÇ¡¯00a18048ed95f1c057fccc8928ddf610¡¯.hashcode() ºó±ßËùÓеÄÖµ¶¼ÊÇ0

½áÊøÐмüµÚÒ»¸öÕûÊýÊÇ¡¯00a18048ed95f1c057fccc8928ddf610¡¯.hashcode() +1 ºó±ßͬÑù¶¼ÊÇ0

ÕâÑù×ӵϰ£¬É¨Ãè½ö½örowkey ÒÔÖµ¡¯00a18048ed95f1c057fccc8928ddf610¡¯.hashcode() ¿ªÍ·µÄÊý¾Ý£¬´Ó¶ø¼õÉÙɨÃèÁ¿¡£

˵µ½ÕâÀïÖ®ºó¾Í¸úÎÒÃÇǰ±ßËù˵rowkeyÖи÷¸öÊôÐÔµÄÏȺó˳ÐòÓÐÁ˺ôÓ¦£¬±¾ÎÄÖÐÄÚÈÝÒÔmd5url¿ªÍ·£¬ÕâÑùµ±ÎÒÃDzéѯÌõ¼þÖÐÓÐmd5urlʱÎÒÃÇ¿ÉÒÔÀûÓÃÆäºÜÇáËɵÄÖ¸¶¨ÆðʼÐмü£¬µ«ÊÇÈç¹û²éѯÌõ¼þÖаüº¬md5urlÄØ£¿ÄDzéѯÓÖÒª»Øµ½Ô­Ê¼µÄÈ«±íɨÃèÁË¡£

ÕâʱºòÎÒÃǾÍÐèÒªÓõ½hbaseµÄ¶þ¼¶Ë÷Òý£¬Õâ¸öʱºò¾ÍÒª¸ù¾ÝÎÒÃǵIJéѯÐèÇ󣬵÷Õû¸÷¸öÊôÐÔµÄÏȺóλÖ㬹¹½¨Ë÷Òý±í¡£Õâ¸ö´ÓÊé¡¶HBaseÆóÒµÓ¦Óÿª·¢ÊµÕ½¡·µÄʵÀýÖпÉÒÔÕÒµ½·½·¨£¬ÓÐʱ¼äµÄ»°ÎÒÒ²»áÔÙÒÔºóµÄÎÄÕÂÖÐдһЩÕâ·½ÃæµÄÄÚÈÝ¡£

×îºó

ÆäʵÔÚ´¦Àí¹«Ë¾Õâ¸öÈÎÎñµÄʱºòÕæÊǸоõÓкܶණÎ÷Ҫд£¬µ«ÕæÕýд³öÀ´È´Ã»¶àÉÙ¶«Î÷£¬¸Ð¾õ×Ô¼ºÂ©Á˲»ÉÙ¶«Î÷£¬Ò²²»ÖªµÀÓÐûÓÐдÇå³þ£¬Èç¹ûÓÐʲôдµÄ²»Çå³þµÄµØ·½£¬»òÕßÓÐʲôÎÊÌâ´óÓпÉÒÔÔÚÆÀÂÛÀïÌá³öÀ´¡£

ÕâÖÖÐмüµÄÉè¼Æ·½·¨Æäʵ»¹Óкܶà¿ÉÒԸĽøµÄµØ·½£¬ÀýÈç²¼¶ûÀàÐ͵ÄÊý×ÖÎÒÃÇʹÓÃһλÀ´±íʾ£¨¶ø²»ÊÇÎÄÕÂÖеÄÒ»¸öÕûÐÍ£©µÈµÈ £¬´ó¼ÒÔÚ¹¤×÷Öиù¾ÝÐèÒªÔÙ½øÐиĽø£¬±¾ÎľͲ»ÔÙ×öÉîÈëµÄÑо¿ÁË¡£

×¢Òâ±¾ÎÄÖÐÎÒÃÇÖªµÀµ±Êý¾ÝÁ¿ºÜ´óʱ£¬hashcodeÓпÉÄܳöÏÖÖØ¸´µÄÇé¿ö£¬¼´²»Í¬µÄURLת»¯³ÉµÄhashÖµÊÇÏàͬµÄ£¬ÎªÁ˱ÜÃâÕâÖÖÎÊÌ⣨»òÕß˵ÊǾ¡Á¿¼õÉÙÕâÖÖÇé¿ö·¢ÉúµÄ¸ÅÂÊ£©ÎÒÃÇ¿ÉÒÔʹÓÃstringµÄmd5Öµ£¬Èç¹ûʹÓÃ16λµÄmd5¼ÓÃÜÆäËù¶ÔÓ¦µÄÖµÕ¼8¸ö×Ö½Ú£¬Èç¹ûʹÓÃ32λÊýÖµÕ¼16¸ö×Ö½Ú£¬¸ù¾Ýʵ¼ÊÐèÇó½øÐе÷Õû¡£

 

   
7922 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ