- hbase(main):079:0> create 'scores',{NAME=>'course',VERSIONS=>2}
- 0 row(s) in 0.9590 seconds
- hbase(main):080:0> put 'scores','Tom','course:math','97'
- 0 row(s) in 0.0100 seconds
- hbase(main):081:0> scan 'scores'
- ROW COLUMN+CELL
- Tom column=course:math, timestamp=1394097631387, value=97
- 1 row(s) in 0.0190 seconds
- hbase(main):082:0> put 'scores','Tom','course:math','100'
- 0 row(s) in 0.0080 seconds
- hbase(main):026:0> scan 'scores'
- ROW COLUMN+CELL
- Tom column=course:math, timestamp=1394097651029, value=100
- 1 row(s) in 0.0110 seconds
- hbase(main):027:0> scan 'scores',{TIMERANGE=>[1394097631387,1394097651029]}
- ROW COLUMN+CELL
- Tom column=course:math, timestamp=1394097631387, value=97
- 1 row(s) in 0.0210 seconds
- hbase(main):028:0> scan 'scores',{TIMERANGE=>[1394097631387,1394097651030]}
- ROW COLUMN+CELL
- Tom column=course:math, timestamp=1394097651029, value=100
- 1 row(s) in 0.0100 seconds
从上面可以看到,HBASE默认scan出来的结果是最后一条时间戳的记录,那么如何把这两条都scan出来呢,
这时候可以加入VERSIONS这个约束条件:
- hbase(main):032:0> scan 'scores',{VERSIONS=>2}
- ROW COLUMN+CELL
- Tom column=course:math, timestamp=1394097651029, value=100
- Tom column=course:math, timestamp=1394097631387, value=97
- 1 row(s) in 0.0130 seconds
上面的命令,已经把这条记录都scan出来了。
再看下面的例子:
- scan 'scores',{TIMERANGE=>[1394097631386,1394097651029],VERSIONS=>2}
- ROW COLUMN+CELL
- Tom column=course:math, timestamp=1394097631387, value=97
- 1 row(s) in 0.0130 seconds
从上面的结果只scan出一条记录。可知,TIMERANGE表示的是”>=开始时间 and <结束时间“的。再看:
- hbase(main):003:0> scan 'scores',{TIMERANGE=>[1394097631386,1394097651030],VERSIONS=>2}
- ROW COLUMN+CELL
- Tom column=course:math, timestamp=1394097651029, value=100
- Tom column=course:math, timestamp=1394097631387, value=97
- 1 row(s) in 0.0100 seconds
OK,这样就明白了。
不过上面的加了VERSIONS=>2,就可以查到历史的数据了,但是必须再创建表的时候加上VERSIONS,否则无效,看下面的例子:
- hbase(main):082:0> create 'member','address','info'
- 0 row(s) in 0.4140 seconds
- => Hbase::Table - member
- hbase(main):093:0> put 'member','wanglei','info:age','24'
- 0 row(s) in 0.0730 seconds
- hbase(main):093:1>get 'member','wanglei',{COLUMN=>'info:age'}
- COLUMN CELL
- info:age timestamp=1394438746187, value=24
- hbase(main):093:7> put 'member','wanglei','info:age','99'
- 0 row(s) in 0.0730 seconds
- hbase(main):093:18> get 'member','wanglei',{COLUMN=>'info:age'}
- COLUMN CELL
- info:age timestamp=1394439539837, value=100
- hbase(main):022:0> get 'member','wanglei',{COLUMN=>'info:age',TIMERANGE=>[1394438746187,1394439539838],VERSIONS=>2}
- COLUMN CELL
- info:age imestamp=1394439539837, value=100
- 1 row(s) in 0.0050 seconds
可以看到,虽然加了VERSIONS,但get的结果是1条;这就是因为建表时默认的VERSION是1.
修改VERSIONS:
- hbase(main):029:0> alter 'member',{NAME=>'info','VERSIONS'=>2}
- Updating all regions with the new schema...
- 0/1 regions updated.
- 1/1 regions updated.
- Done.
- 0 row(s) in 2.1680 seconds
- hbase(main):046:0> put 'member','wanglei','info:age','101'
- 0 row(s) in 0.0590 seconds
- hbase(main):047:0> get 'member','wanglei',{COLUMN=>'info:age'}
- COLUMN CELL
- info:age timestamp=1394441161595, value=101
- 1 row(s) in 0.0120 seconds
那么现在就可以把倆条记录get出来了,如下:
- hbase(main):049:0> get 'member','wanglei',{COLUMN=>'info:age',TIMERANGE=>[1394439539837,1394441161596],VERSIONS=>2}
- COLUMN CELL
- info:age timestamp=1394441161595, value=101
- info:age timestamp=1394439539837, value=100
- 2 row(s) in 0.0080 seconds
相关推荐
Hadoop 和 HBase 常用 shell 命令 在大数据处理中,Hadoop 和 HBase 是两个非常重要的组件。Hadoop 是一个分布式计算框架,用于处理大规模数据,而 HBase 是一个基于 Hadoop 的分布式数据库,用于存储和处理大规模...
这些是HBase Shell中最基础且最常用的命令。在实际使用中,你可能还需要了解更多的命令,如`list`(列出所有表)、`compact`(压缩表数据)等,以及更复杂的过滤和操作选项。熟练掌握这些命令将有助于你高效地管理和...
### HBase Shell 常用命令详解 #### 一、HBase Shell 概述 HBase Shell 是一个基于命令行的工具,用于与HBase进行交互。它提供了一系列丰富的命令来执行基本的数据管理任务,例如创建表、插入数据、查询数据等。...
### HBase Shell 常用命令详解 #### 一、概述 HBase 是一个分布式的、面向列的开源数据库,其设计受到了 Google 的 Bigtable 的启发。它非常适合于非结构化数据存储,提供了高可靠性、高性能、面向列、可伸缩等特点...
以下是对HBase Shell中一些常用命令的详细说明: 1. **创建表**: `create '表名称', '列族名称 1','列族名称 2','列族名称 N'` 这个命令用于创建一个新的HBase表。表名称是你自定义的字符串,列族名称则是表中...
HDFS_HBaseShell的常用命令 HDFS(Hadoop Distributed File System)是一种分布式文件系统,主要用于存储和管理大规模数据。HBase 是一个基于HDFS的NoSQL数据库,用于存储和管理大规模结构化和半结构化数据。HBase ...
下面我们将深入探讨HBase Shell的一些常用操作命令。 1. **创建表**: 使用 `create` 命令可以创建HBase表。例如,创建一个名为'member'的表,包含'member_id'、'address'和'info'三列族: ```shell create '...
以下是一些常用的HBase Shell命令: 1. **create**:创建表,如`create 'testTable', 'cf'` 创建一个名为testTable的表,包含一个列族cf。 2. **put**:向表中插入数据,如`put 'testTable', 'row1', 'cf:q1', '...
HBase Shell常用命令 HBase Shell是Hadoop技术中的一个重要组件,用于管理和操作HBase数据库。以下是HBase Shell的常用命令,分为一般操作、数据定义语言(DDL)操作和数据操作语言(DML)操作三大类。 一般操作 ...
以上只是HBase Shell常用的一些命令,实际上还有更多高级操作,如过滤器、性能调优等。熟练掌握这些命令,将有助于更好地管理和维护HBase数据库。在实际工作中,根据具体需求,结合HBase的API和Shell,可以实现各种...
HBase shell及常用命令 HBase Shell是HBase数据库的命令行工具,用户可以使用HBase Shell与HBase进行交互。HBase Shell是一个封装了Java客户端API的JRuby应用软件,在HBase的HMaster主机上通过命令行输入hbase ...
下面将对HBase shell commands进行分类和详细解释。 一、General HBase shell commands 1. status:显示集群状态,支持三种模式:summary、simple、detailed。 示例:hbase> status、hbase> status 'simple'、...
在本文中,我们将深入探讨HBase的Shell命令,特别是针对数据的增删改查操作。HBase是一个基于列族的分布式存储系统,广泛应用于大数据处理领域。它与传统的关系型数据库不同,更适合处理大规模稀疏数据。通过HBase的...
实验的目标是让你理解HBase在Hadoop架构中的地位,以及掌握通过Shell命令和Java API进行基本操作的方法。 首先,让我们来看看实验的平台配置。实验要求的操作系统是Linux,这通常是大数据处理的首选平台,因为它...
2. **熟练使用HBase操作常用的Shell命令**:通过HBase Shell,用户可以执行诸如创建表、插入数据、查询数据、删除表等一系列管理操作。 3. **熟悉HBase操作常用的Java API**:Java API允许开发者在应用程序中直接与...
HBase Shell 提供了大多数的 HBase 命令,通过 HBase Shell,用户可以方便地创建、删除及修改表,还可以向表中添加数据,列出表中的相关信息等。本节介绍一些常用的命令和具体操作,并讲解如何使用命令行实现一个...
下面将详细介绍HBase shell中的一些常用操作命令。 1. **创建表**: 使用`create`命令创建表,例如创建一个名为`user`的表,包含`info`和`data`两个列族: ```bash create 'user',{NAME => 'info', VERSIONS => ...
### Hadoop2安装与常用Shell命令详解 #### Hadoop2安装步骤 在开始Hadoop2的安装之前,首先需要确保所有节点的操作系统版本为CentOS/Red Hat Linux 6.4_x64,并且每台服务器都已完成基本的系统配置。 ##### 系统...