HBase shell 中的十六进制数值表示
在使用Hbase shell 进行get 或scan操作时,时不时会看到一些数值被转成了16进制, 就像下面那样

value=W\x5C5\x80
那么这个值具体等于多少? 查阅资料后发现算法如下
W -> W的ASCII码16进制 为 0x57
\x5C -> 就是16进制不变 0x5C
5 -> 5的ASCII码16进制 为 0x35
\x80 -> 就是16进制不变 0x80
所以从左往右重新拼起来就是
0x575C3580 -> 转成十进制为 1465660800
所以照例,如下

value=W]PA
W -> W的ASCII码16进制 为 0x57
] -> ]的ASCII码16进制 为 0x5D
P -> P的ASCII码16进制 为 0x50
A -> A的ASCII码16进制 为 0x41
0x575D5041 -> 转成十进制为 1465733185
以上是查询结果出现十六进制的情况, 那么如果查询的Key本身也被转为16进制怎么办? 因为有时候key中可能有中文字符.
可以照如下操作:
先写个简单测试程序把中文UTF-8转成16进制
System.out.println(org.apache.commons.codec.binary.Hex.encodeHex("中文".getBytes("UTF-8")));
//输出结果:e4b8ade69687
System.out.println(new String(org.apache.commons.codec.binary.Hex.decodeHex("e4b8ade69687".toCharArray()),"UTF-8"));
//输出结果:中文
也可以直接使用网站工具
https://sites.google.com/site/nathanlexwww/tools/utf8-convert
转好后把16进制每2位一组前面加上\x
就比如上面的
e4b8ade69687 -> \xe4\xb8\xad\xe6\x96\x87
举个例子:
我要查询的key是
CE20CCE09EEB4F8A6BB50E41953A55FCD|3|钢铁烈阳37|PA-1453442402-6111|PR-1453442402-3599
直接
get 'role_history_info' , 'CE20CCE09EEB4F8A6BB50E41953A55FCD|3|钢铁烈阳37|PA-1453442402-6111|PR-1453442402-3599'
没有结果
把其中的中文字符按照上面的方法转成如下
钢铁烈阳->e992a2e99381e78388e998b3 -> \xe9\x92\xa2\xe9\x93\x81\xe7\x83\x88\xe9\x98\xb3
查询时 包着key的单引号换成双引号
get 'role_history_info' , "CE20CCE09EEB4F8A6BB50E41953A55FCD|3|\xe9\x92\xa2\xe9\x93\x81\xe7\x83\x88\xe9\x98\xb337|PA-1453442402-6111|PR-1453442402-3599"

查出来啦...
HBase shell 中的十六进制数值表示的更多相关文章
- Hadoop HBase概念学习系列之hbase shell中执行java方法(高手必备)(二十五)
hbase shell中执行java方法(高手必备),务必掌握! 1. 2. 3. 4. 更多命令,见scan help.在实际工作中,多用这个!!! API参考: http://hbase.apac ...
- Shell中字符串、数值的比较
原文:http://apps.hi.baidu.com/share/detail/31263915 在shell中字符串与数值的比较方法是不同的,要注意区分 整数比较: -eq 等于 ...
- hbase shell中log4j重复问题
[root@centos ~]# hbase shellSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding ...
- hbase shell中执行list命令报错:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
问题描述: 今天在测试环境中,搭建hbase环境,执行list命令之后,报错: hbase(main):001:0> list TABLE ERROR: org.apache.hadoop.hb ...
- Hbase shell 中能否通过filter实现的高级查询
import org.apache.hadoop.hbase.filter.CompareFilter import org.apache.hadoop.hbase.filter.SingleColu ...
- 解决Xshell中使用hbase shell backspace无法删除
进入到XShell 文件 –> 属性 –> 终端 –> 键盘 在 DELETE键序列 和 BACKSPACE键序列 中都选择 ASCII 127 最后进入 Hbase 命令行测试,可 ...
- HBase shell 命令介绍
HBase shell是HBase的一套命令行工具,类似传统数据中的sql概念,可以使用shell命令来查询HBase中数据的详细情况.安装完HBase之后,如果配置了HBase的环境变量,只要在sh ...
- HBase学习笔记2 - HBase shell常用命令
转载请标注原链接:http://www.cnblogs.com/xczyd/p/6639397.html 扫表的时候限定行数 scan } 即为扫表的时候,限定只输出五条数据 ============ ...
- hbase shell 命令
HBase使用教程 时间 2014-06-01 20:02:18 IT社区推荐资讯 原文 http://itindex.net/detail/49825-hbase 主题 HBase 1 基 ...
随机推荐
- JZOJ 5185. 【NOIP2017提高组模拟6.30】tty's sequence
5185. [NOIP2017提高组模拟6.30]tty's sequence (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB ...
- C语言实现判断分数等级
从屏幕上输入一个学生的成绩(0-100),对学生成绩进行评定: <=60为"E" 60~69为"D" 70~79为"C" 80~89为 ...
- 学习Pytbon第三天,用户输入
_username ='dream' #定义用户名 _password ='dream123'#定义用户密码username = input("username:")#请输入用户名 ...
- (转)iOS静态库与动态库的区别
一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用 ...
- A1055 The World's Richest(25 分)
A1055 The World's Richest(25 分) Forbes magazine publishes every year its list of billionaires based ...
- 将FragmentManger事务添加到返回栈中
FragmentManger事务添加或替换的 Fragment 后,这时点击 Back 键,程序并不会返回添加之前的状态. 我们可以使用 Transaction 对象的 addToBackStack( ...
- 堆STL和重载运算符
大根堆: 1.priority_queue<int> q;[默认 2. priority_queue< node,vector<node>,less<node> ...
- git基础之常用操作
一.版本提交: (1)git add 文件名 (2)git commit -m "版本提交信息" 注:git分两个区:工作区+版本库 在电脑中看到的文件夹就是工作区 有一个隐藏的. ...
- 【转】C# client 与java netty 服务端的简单通信,客户端采用Unity
http://blog.csdn.net/wilsonke/article/details/24721057 近日根据官方提供的通信例子自己写了一个关于Unity(C#)和后台通信的类,拿出来和大家分 ...
- HTML5 新增绘图功能
<!DOCTYPE html> <html> <head lang="en"> <title></title> < ...