分享

新年第一问,关于hbase的数据版本问题

先说我装的hbase的版本0.98.9-hadoop2
在测试hbase的数据版本的时候,我发现实验的结果并不如权威指南上所说,使用scan 'test',{VERSIONS=3} 出现多个版本的数据。
想问下,这个是什么情况?hbase版本升高了,这特性就没了? 这个特性能带来什么好处?

hbase数据版本问题.jpg

已有(5)人评论

跳转到指定楼层
langke93 发表于 2015-1-1 19:42:31
不明白楼主想表达什么含义

创建/添加列族时候默认是三个版本,可以修改为1个版本或者更多个版本,
有几个版本,自己可以指定,例如5个版本

  1. {NAME => 'testTable', FAMILIES => [{NAME => 'log', COMPRESSION => 'NON true                     
  2. E', VERSIONS => '5', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEM                           
  3. ORY => 'false', BLOCKCACHE => 'true'}]}  
复制代码



回复

使用道具 举报

pengsuyun 发表于 2015-1-2 08:31:20
langke93 发表于 2015-1-1 19:42
不明白楼主想表达什么含义

创建/添加列族时候默认是三个版本,可以修改为1个版本或者更多个版本,

我明白了,我建的表版本都是1,谢谢啊
我的表版本.jpg
回复

使用道具 举报

pengsuyun 发表于 2015-1-3 10:08:10
langke93 发表于 2015-1-1 19:42
不明白楼主想表达什么含义

创建/添加列族时候默认是三个版本,可以修改为1个版本或者更多个版本,

同学,能告知下创建多版本表的方法吗?
回复

使用道具 举报

desehawk 发表于 2015-1-3 12:02:23
pengsuyun 发表于 2015-1-3 10:08
同学,能告知下创建多版本表的方法吗?
setMaxVersions(10)设置数据保存的最大版本数;setMinVersions(5)设置数据保存的最小版本数;

上面分别保存最大版本数为10,最小版本数为5


楼主,可以试试下面方法:
Configuration conf = HBaseConfiguration.create();
        HBaseAdmin admin = new HBaseAdmin(conf);
        //create namespace named "my_ns"
        admin.createNamespace(NamespaceDescriptor.create("my_ns").build());
        
        //create tableDesc, with namespace name "my_ns" and table name "mytable"
        HTableDescriptor tableDesc = new HTableDescriptor(TableName.valueOf("my_ns:mytable"));
        tableDesc.setDurability(Durability.SYNC_WAL);

        //add a column family "mycf"
        HColumnDescriptor hcd = new HColumnDescriptor("mycf");
hcd.setMaxVersions(10)
        tableDesc.addFamily(hcd);
        admin.createTable(tableDesc);
        admin.close();  


更多操作可参考:

HBase基本数据操作详解【精品】





回复

使用道具 举报

pengsuyun 发表于 2015-1-3 12:29:24
desehawk 发表于 2015-1-3 12:02
setMaxVersions(10)设置数据保存的最大版本数;setMinVersions(5)设置数据保存的最小版本数;

上面分别 ...

Ok,可以了,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条