永发信息网

hbase value 支持多大字符串

答案:3  悬赏:80  手机版
解决时间 2021-02-18 07:27
hbase value 支持多大字符串
最佳答案
文中可能涉及到的API:

Hadoop/HDFS:http://hadoop.apache.org/common/docs/current/api/

HBase: http://hbase.apache.org/apidocs/index.html?overview-summary.html

Begin!
在设置scan的startRowKey与endRowKey时,经常需要在某个条件字符串后面补充出一个范围。(再比如SingleColumnValueFilter也会用到)

比如:我的条件字符串是“abc”,scan时我需要将下述内容都囊括到我scan的范围内。

abc123

abcdabc

abccca

....

这时候我startRowKey使用“abc”即可,上述字符串按字典序都比“abc”要大,“abc”串c之后的值是0嘛~

而endRowKey最初我使用了“abc~”,因为我查ASCII码表时‘~’是倒数第二个,值为127,足够大,肯定大于上述串中的1、d、c等字符。

这样做,在处理英文数据时就足够了,系统运行正常。

但当我处理中文数据时,中文一般都是以UTF-8格式处理的,一个汉字表示出来类似“0xe6,0xc2,0xe1”。0xe6大于127。所以使用‘~’遇到中文必然悲催。

我的解决方法:

使用UltraEdit,进入十六进制编辑模式,将值改为FF。然后回到文本模式,将刚才的字符复制下来。这个字符应该是一个不可显示的字符,看着好像两个空格的长度。

然后在设置endRowKey时

new String(name + " "); //这里只是示例,引号间就是刚才复制的那个字符。将这个字符串作为endRowKey,果然所有的中文字符就囊括在内了。

另外一定要注意:使用HBase API时不要使用str.getBytes将String转化为byte[] ,而应该使用Bytes.toBytes(str);同样使用Bytes.toString(bytes);完成逆向转换。
全部回答

可通过此参数设置
    hbase.client.keyvalue.maxsize
    104857600
目前也在测试,看hfile存储格式中有value length块用来存储value的长度,该块大小位4B,所能表示的十进制最大值为2147483647,所以value 的byte[]最大长度为2147483647即约为2G,不知道对不对,请大神指教
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
顺发粮油商行这个地址在什么地方,我要处理点
经过防腐处理的柳桉木与菠萝格哪个更耐腐蚀
烟台到威海的汽车站在威海哪里?第二早一早的
解放路/东顺城街(路口)在哪里啊,我有事要去
hope to visit Dalian
三星S6充电太慢了,要5个小时
花园路/钟鼓楼名店街步行街(路口)我想知道这
求初一数奥题
手机加盟店选择什么好啊?
如果考研复试没有通过还有其他机会吗?
大众朗逸油量少时会报警吗
天天快印图文广告在什么地方啊,我要过去处理
我的男朋友是福建人,我是潮汕人,他让我去他家
微商刚到货了说说
湖南省长潭高速公路管理处地址在哪,我要去那
推荐资讯
小井巷/北大街(路口)怎么去啊,有知道地址的
明年男朋友本命年, 我织了条大红围巾送给他
蘑菇各生长期的管理要点是什么?
手机作为MODEM使用CMNET激活后拿到IP地址使用
若多项式2x²-ax+3y-b+bx²+2x-6y+5的值与字
comic怎么读
苹果电脑要刻录需要下个什么软件
已知:关于x的方程x方+ax+b=0与x方+bx+a=0,只
太康县豫康医药连锁有限责任公司龙城分店在什
对某些中小城镇,在______情况可考虑采用合流
“如果我们过于爽快地承认失败,就可能使自己
手机变号软件可行吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?