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 基 ...
随机推荐
- 笔记-python tutorial-9.classes
笔记-python tutorial-9.classes 1. Classes 1.1. scopes and namespaces namespace: A namespace is ...
- rest_framework序列化
1.序列化 1)拿到queryset 2)将queryset 给序列化类 serializer = IdcSerializer(idc) #单个对象 serializer = IdcSerial ...
- laravel5.2总结--服务容器(依赖注入,控制反转)
1.依赖 我们定义两个类:class Supperman 和 class Power,现在我们要使用Supperman ,而Supperman 依赖了Power class Supperman { p ...
- WebApi 跨域
http://www.cnblogs.com/lori/p/3557111.html http://bbs.csdn.net/topics/391020576
- STL学习笔记4--set and multiset
集合(Set)是一种包含已排序对象的关联容器.多元集合(MultiSets)和集合(Sets)相像,只不过支持重复对象,其用法与set基本相同. 用法介绍 1.insert()函数 首先把头文件set ...
- C# 方法重载 overload、方法重写 override、隐藏 new
一.重载:同一个作用域内发生(比如一个类里面),定义一系列同名方法,但是方法的参数列表不同.这样才能通过传递不同的参数来决定到底调用哪一个. 值得注意的是,方法重载只有通过参数不同来判断调用哪个方法, ...
- redis linux 安装
安装 1): wget http://download.redis.io/releases/redis-5.0.2.tar.gz 2): tar xzf redis-5.0.2.tar.gz 3):c ...
- iOS App启动图不显示的解决办法.
1. 正常来说,启动图以及App图标需按照命名规则命名, 但是命名不规范并不影响显示; 2. 设置启动图的两种方法: (1) iOS 8—xcode 6 之后新出LaunchScreen.s ...
- iOS-绘制UIView之drawCGRect
写在前面 UIView对于iOS开发来讲,再熟悉不过了.也正是因为这一点,我们可能会忽略UIView一些特有方法的理解和使用.今天,笔者主要整理一下对drawRect方法的理解和使用. 默认情况下,该 ...
- pdf生成
要用本文的方法生成PDF文件,需要两个控件:itextsharp.dll和ICSharpCode.SharpZipLib.dll,由于示例代码实在太多,我将代码全部整理出来,放在另外一个文件“示例代码 ...