±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ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¸ö×Ö½Ú£¬¸ù¾Ýʵ¼ÊÐèÇó½øÐе÷Õû¡£
|