- 浏览: 87947 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (110)
- myeclipse JVM 虚拟机内存设置 (1)
- 查询含有clob字段表的sql语句 (1)
- 项目个人价值体现 (1)
- Java多线程并发编程 (1)
- spring (4)
- 启悟 (1)
- hadoop (27)
- mysql数据库乱码问题 (1)
- linux (6)
- 架构与设计 (1)
- java (6)
- mysql (2)
- 分页编程 (1)
- 励志 (2)
- 技术要求 (0)
- guava (1)
- 分布式开发(SOA) (4)
- 微服务架构 + API 网关 (5)
- 消息中间件 (4)
- Dubbo (8)
- 面谈 (0)
- 高并发架构 (1)
- maven (1)
- MongoDB (1)
- hbase (2)
最新评论
摘自:http://blog.csdn.net/pirateleo/article/details/7957109
Author:Pirate Leo
myBlog: http://blog.csdn.net/pirateleo/
myEmail: codeevoship@gmail.com
转载请注明出处,谢谢。
文中可能涉及到的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);完成逆向转换。
Author:Pirate Leo
myBlog: http://blog.csdn.net/pirateleo/
myEmail: codeevoship@gmail.com
转载请注明出处,谢谢。
文中可能涉及到的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);完成逆向转换。
发表评论
-
MapReduce程序开发(good)
2016-09-06 18:25 278http://blog.csdn.net/qq10108856 ... -
ZooKeeper典型应用场景一览
2016-07-08 16:17 412ZooKeeper典型应用场景一览 摘自:http://www ... -
Apache HBase 2015年发展回顾与未来展望
2016-02-05 10:00 431摘自: http://mp.weixin.qq.com/s? ... -
搜索技术博客-淘宝
2015-12-10 18:33 472搜索技术博客-淘宝: http://www.searcht ... -
大数据性能调优之HBase的RowKey设计
2015-11-12 13:47 384摘自;http://www.open-open.com ... -
详细的讲解yarn和mapreduce的内存配置
2015-11-03 17:00 388摘自: http://docs.hortonworks.co ... -
Hadoop YARN常见问题以及解决方案 任务合理调度分配
2015-11-03 14:46 1160摘自: http://dongxicheng.org/map ... -
Windows下使用Hadoop2.6.0-eclipse-plugin插件
2015-10-29 15:43 372Windows下使用Hadoop2.6.0-eclipse-p ... -
HBase优化案例分析:Facebook Messages系统问题与解决方案
2015-10-21 18:58 448摘自:http://www.infoq.com/cn/arti ... -
HBase总结(十二)Java API 与HBase交互实例
2015-10-21 18:57 422import java.io.IOException; im ... -
NoSQL选型及HBase案例详解(hbase结合情景案例分析)
2015-10-21 18:55 520摘自:http://www.thebigdata.cn/Jie ... -
Hbase课程大纲学习路线
2015-10-21 18:49 1006Hbase课程大纲 学习内容: Hbase系统搭建与部署,Hb ... -
基于HBase的海量微博数据高效存储解析
2015-10-20 17:15 796通过分析HBase的特点, ... -
Hadoop 2.0+YARN启动脚本分析与实战经验
2015-10-16 23:38 597start-all.sh脚本现在已经废弃,推荐使用start- ... -
windows7+eclipse+hadoop2.5.2环境配置
2015-10-11 23:45 367http://www.dataguru.cn/thread-4 ... -
YARN ResourceManager调度器的分析
2015-10-11 23:39 350摘自:http://blogread.cn/it/articl ... -
Hadoop 新 MapReduce 框架 Yarn 详解
2015-10-11 23:08 527摘自:http://www.open-open.c ... -
yarn 启动时,nodemanager 成功,但是resourcemanager失败解决
2015-10-11 22:19 10497问题的描述; yarn 启动时,nodemanager 成功, ... -
hbase常识及habse适合什么场景
2015-09-18 14:15 379http://blog.csdn.net/lifuxiangc ... -
HBase案例设计分析
2015-09-18 14:03 434http://www.thebigdata.cn/JieJue ...
相关推荐
列族是逻辑上的分类,包含一组相关的列,列的命名是列族前缀加冒号后的任意字符串。每个单元格由行键、列族、列和时间戳唯一标识,可以有多个版本,以追踪数据的历史变化。 HBase的架构基于Bigtable的设计,主要...
- 行键:唯一标识每一行,用于数据定位,通常为字符串。 - 列族:逻辑上的数据分组,每个列族下可以有任意多的列,列名在使用时动态定义。 - 列:列族下的具体字段,由列族名+列限定符(Qualifier)组成。 - ...
标题中的“中文地址分词及匹配项目”是一个专注于处理中文地址的系统,它涉及到两个主要技术:中文地址的分词和地址匹配。分词是将连续的文本序列切分成具有独立意义的词语,而在中文环境下,由于没有明显的空格作为...
在原版代码中,由于使用了ISO8859-1编码,所以对含有汉字的查询字符串处理不当。修改后的版本将编码格式更改为支持汉字的UTF-8,这样就可以正确地解析和存储汉字数据。 修改的过程可能包括以下步骤: 1. 将`...
Rowkey设计原则应尽量简洁,通常使用字符串,避免使用汉字以确保排序效率。 8. HBase可以通过MapReduce或Coprocessor实现二级索引,二级索引的核心是倒排表,是对Rowkey的一级索引的补充。 9. Bloom Filter是一种...
总的来说,解析和使用“纯真IP库”在Java中涉及到文件读取、字符串处理、数据结构选择、查询算法设计以及异常处理等多个知识点。理解并掌握这些技能,对于开发涉及IP定位功能的Java应用程序至关重要。虽然这里的IP...
11. **数据类型和函数**:熟悉各种内置数据类型,如数值、字符串、日期/时间等,以及一系列内置函数,如字符串函数、数学函数、日期函数等。 12. **窗口函数**:掌握RANK、ROW_NUMBER、LAG和LEAD等高级功能,它们在...
文档“hive函数大全2.doc”和“hive函数大全.doc”很可能详尽列出了Hive支持的所有内置函数,包括聚合函数(如COUNT、SUM、AVG)、数学函数(如ABS、SQRT、RAND)、字符串函数(如CONCAT、SUBSTRING、TRIM)、日期...
- **空字符串**: 不允许作为集合名称。 **11. MongoDB 主键** - **UUID**: 通用唯一识别码,常用于作为主键。 - **Sequence**: 序列,也可以作为主键生成方式之一。 - **Auto-increment**: 自动递增,MongoDB 默认...
每个子类别的对象内部,又包含两个字符串数组,分别存储对应的中文名称和英文名称。这种数据结构设计有利于进行多语言的支持和信息检索。 "大数据"标签提示我们,这些医学名词可能被用于大规模数据分析或挖掘项目。...
时间字段换到 Excel 为空,修改 SELECT 语句中使用 TO_CHAR 转换成字符串,例如:TO_CHAR(START_TIME, 'yyyy-mm-dd HH24:MM:SS') AS START_TIME。Excel 中的记录不能超过 65535 条,否则会自动关闭文件,导致转换...
- `char`类型可以存储一个中文汉字,因为Java采用Unicode编码,单个`char`可以表示大部分字符。 ##### 23. 抽象类与接口 - **抽象类**:可以有具体实现,也可以有抽象方法。 - **接口**:只能定义抽象方法,Java 8...
- **Redis的数据类型**:字符串、哈希、列表、集合、有序集合等。 - **Redis的过期策略**:包括定时删除和惰性删除两种机制。 - **Redis的内存淘汰机制**:当内存不足时自动删除一些key来释放空间。 - **渐进式...