Hbase使用

hbase shell命令的使用

再使用hbase 命令之前先检查一下hbase是否运行正常

[email protected]:/usr/hbase/bin$ jps
2640 HMaster
27170 NameNode
27533 SecondaryNameNode
3038 Jps
27795 TaskTracker
27351 DataNode
2574 HQuorumPeer
27618 JobTracker
2872 HRegionServer

如果运行不正常的话,关闭hbase后重新启动一下

stop-hbase.sh
start-hbase.sh

1.  status命令

hbase(main):008:0> status
1 servers, 0 dead, 3.0000 average load

2. version命令

hbase(main):007:0> version
0.94.12, r1524863, Fri Sep 20 00:25:45 UTC 2013

3. create 命令
创建一个名为 test 的表,这个表只有一个列为 cf。其中表名、列都要用单引号括起来,并以逗号隔开。

hbase(main):001:0> create ‘test‘, ‘cf‘
0 row(s) in 10.3830 seconds

4. list 命令
查看当前 HBase 中具有哪些表。

hbase(main):009:0> list
TABLE
test
1 row(s) in 0.3590 seconds

5. put 命令
使用 put 命令向表中插入数据,参数分别为表名、行名、列名和值,其中列名前需要列族最为前缀,时间戳由系统自动生成。
格式: put 表名,行名,列名([列族:列名]),值
例子:
加入一行数据,行名称为“row1”,列族“cf”的列名为”(空字符串)”,值位 value1。
我这里插入3条记录

hbase(main):003:0> put ‘test‘, ‘row1‘, ‘cf:a‘, ‘value1‘
0 row(s) in 0.2350 seconds

hbase(main):004:0> put ‘test‘, ‘row2‘, ‘cf:b‘, ‘value2‘
0 row(s) in 0.0350 seconds

hbase(main):005:0> put ‘test‘, ‘row3‘, ‘cf:c‘, ‘value3‘
0 row(s) in 0.0040 seconds

6. describe 命令
查看表“test”的构造。

hbase(main):010:0> describe ‘test‘
DESCRIPTION                                          ENABLED
 ‘test‘, {NAME => ‘cf‘, DATA_BLOCK_ENCODING => ‘NONE true
 ‘, BLOOMFILTER => ‘NONE‘, REPLICATION_SCOPE => ‘0‘,
  VERSIONS => ‘3‘, COMPRESSION => ‘NONE‘, MIN_VERSIO
 NS => ‘0‘, TTL => ‘2147483647‘, KEEP_DELETED_CELLS
 => ‘false‘, BLOCKSIZE => ‘65536‘, IN_MEMORY => ‘fal
 se‘, ENCODE_ON_DISK => ‘true‘, BLOCKCACHE => ‘true‘
 }
1 row(s) in 1.6630 seconds

7.get 命令
a.查看表“test”中的行“row2”的相关数据。

hbase(main):011:0> get ‘test‘,‘row2‘
COLUMN                CELL
 cf:b                 timestamp=1381568161926, value=value2
1 row(s) in 0.4500 seconds

b.查看表“test”中行“row2”列“cf :b”的值。

hbase(main):012:0> get ‘test‘,‘row2‘, ‘cf:b‘
COLUMN                CELL
 cf:b                 timestamp=1381568161926, value=value2
1 row(s) in 0.3090 seconds

或者

hbase(main):012:0> get ‘test‘, ‘row2‘, {COLUMN=>‘cf:b‘}
hbase(main):012:0> get ‘test‘, ‘row2‘, {COLUMNS=>‘cf:b‘}

备注:COLUMN 和 COLUMNS 是不同的,scan 操作中的 COLUMNS 指定的是表的列族, get操作中的 COLUMN 指定的是特定的列,COLUMNS 的值实质上为“列族:列修饰符”。COLUMN 和 COLUMNS 必须为大写。

8. scan 命令
a. 查看表“test”中的所有数据。

hbase(main):006:0> scan ‘test‘
ROW                   COLUMN+CELL
 row1                 column=cf:a, timestamp=1381568140492, value=value1
 row2                 column=cf:b, timestamp=1381568161926, value=value2
 row3                 column=cf:c, timestamp=1381568176693, value=value3
3 row(s) in 0.0770 seconds

注意:
scan 命令可以指定 startrow,stoprow 来 scan 多个 row。
例如:

scan ‘user_test‘,{COLUMNS =>‘info:username‘,LIMIT =>10, STARTROW => ‘test‘, STOPROW=>‘test2‘}

b.查看表“scores”中列族“course”的所有数据。

hbase(main):012:0> scan  ‘scores‘, {COLUMN => ‘grad‘}
hbase(main):012:0> scan  ‘scores‘, {COLUMN=>‘course:math‘}
hbase(main):012:0> scan  ‘scores‘, {COLUMNS => ‘course‘}
hbase(main):012:0> scan  ‘scores‘, {COLUMNS => ‘course‘}

9.count 命令——统计出表中有多少条记录

hbase(main):013:0> count ‘test‘
3 row(s) in 1.6530 seconds

10. exists 命令——查看表是否存在

hbase(main):014:0> exists ‘test‘
Table test does exist
0 row(s) in 1.1620 seconds

11. incr 命令

给‘test’这个列增加 uid 字段,并使用counter实现递增
连续执行incr以上,COUNTER VALUE 的值会递增,通过get_counter

hbase(main):010:0> incr ‘test‘, ‘row2‘, ‘uid‘, 2
COUNTER VALUE = 2

hbase(main):011:0> incr ‘test‘, ‘row2‘, ‘uid‘, 3
COUNTER VALUE = 5

查看表可以看到:

hbase(main):012:0> scan ‘test‘
ROW                   COLUMN+CELL
 row1                 column=uid:1, timestamp=1381571789416, value=buym:1
 row2                 column=uid:, timestamp=1381572436088, value=\x00\x00\x00\x
                      00\x00\x00\x00\x05
 row2                 column=uid:2, timestamp=1381571805008, value=buym:20
2 row(s) in 0.0790 seconds

12. delete 命令
删除表“test”中行为“row3”, 列族“cf”中的“c”。

hbase(main):015:0> delete ‘test‘,‘row3‘,‘cf:c‘
0 row(s) in 0.4640 seconds

13. truncate 命令——将表删除后再重新创建

hbase(main):018:0> truncate ‘test‘
Truncating ‘test‘ table (it may take a while):
 - Disabling table...
 - Dropping table...
 - Creating table...
0 row(s) in 5.6480 seconds

14. disbale、drop 命令
通过“disable”和“drop”命令删除“test”表。

hbase(main):001:0> disable ‘test‘
hbase(main):003:0> drop ‘test‘
0 row(s) in 3.9310 seconds

时间: 2024-10-09 05:04:53

Hbase使用的相关文章

hbase过滤器(1)

最近在公司做hbase就打算复习下它的过滤器以便不时之需,RowFilter根据行键(rowkey)筛选数据 public void filter() throws IOException { Filter rf = new RowFilter(CompareFilter.CompareOp.LESS, new BinaryComparator(Bytes.toBytes("35643b94-b396-4cdc-abd9-029ca495769d"))); Scan s = new S

[原创]HBase学习笔记(1)-安装和部署

HBase安装和部署 使用的HBase版本是1.2.4 1.安装步骤(默认hdfs已安装好) # 下载并解压安装包 cd tools/ tar -zxf hbase-1.2.4-bin.tar.gz   # 重命名为hbase mv hbase-1.2.4 hbase # 将hadoop目录下的hdfs-site.xml 和 core-stie.xml拷贝到 hbase下的conf 目录中 cd /home/work/tools/hbase/conf cp /home/work/tools/ha

Hbase delete遇到的常见异常: Exception in thread "main" java.lang.UnsupportedOperationException

hbase 执行批量删除时出现错误: Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:161) at org.apache.hadoop.hbase.client.HTable.delete(HTable.java:852) 这种异常其实很常见,remove操作不支持,为什么会出现不支持的情况呢?检查

HBase学习

记录HBase的学习过程.之后会陆续添加内容. 读取hbase的博客,理解hbase是什么.推荐博文: 1,HBase原理,基础架构,基础概念 2,HBase超详细介绍 ----------------------------------------------------- 一.直接实践吧! 1,HBase standalone模式安装 版本:1.2.4 参考文档:http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.6-cdh5.3.3/book

基于HBase的时间序列数据库(改进)

基本知识: 期望:1.利用高效的行.列键组织数据存储方式和使用平滑的数据持久策略缓解集群压力 2.利用zookeeper保障数据一致性(选举Leader) 提高性能的技术:数据压缩.索引技术.实体化视图 zookeeper 监控HRegionServer,保存Root Region实际地址,HMaster物理地址,减轻分布式应用从头开发协作服务的负担 HMaster管理HRegionServer负载均衡 日志根据Hadoop的SequenceFile存储 HBase主要处理实际数据文件和日志文件

hbase shell 命令

1.首先要打开hbase,使用jps查看进程 jps是java进程状态工具,它会返回进程ID和服务名称 [email protected]:~/Apache/hbase-0.94.15-security$ jps 3082 NameNode 6245 HRegionServer 3493 JobTracker 6064 HMaster 5999 HQuorumPeer 3638 TaskTracker 3259 DataNode 3413 SecondaryNameNode 6320 Jps 2

HBASE遇到的java.lang.OutOfMemoryError: unable to create new native thread解决方法

简单分享一下,类似问题的解决方法 刚才在某机器上上xxx用户下压测时遇到这个问题,连xxx都进不去了 说明xxx用户下无法创建跟多的线程了(当然root用户没这个问题) 系统能够创建的最大线程数:(MaxProcessMemory - JVMMemory – 系统内存) / (ThreadStackSize) = Number of threads 有两种方式: 减少xxx下的ThreadStackSize 增加xxx下的nproc数量 修改 [[email protected]]$ ulimi

MapReduce/Hbase进阶提升(原理剖析、实战演练)

什么是MapReduce? MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性.他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上. 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一

“挖掘机”升级路 一篇(03)--HBase集群安装中的收获

粗略算算,从上周五到这周二,折腾Hadoop已经三天了.这三天我是过得诚惶诚恐,作为一个学徒,老大虽然没有说啥,但是我恨不得立马完成这些基本的部署工作,感觉拖了好久好久.简单的总结一下,第一天折腾Hadoop单机和伪分布式的安装,第二天在折腾Hive的安装,以失败告终,第三天折腾HBase的集群安装,在主节点上安装成功. 也就来具体的谈谈今天的收获,今天的参考资料主要是这么两篇1.分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建(我FQ看的,不知道

CDH5.5.1版HBase安装使用LZO压缩

1.安装 RHEL/CentOS/Oracle 5 Navigate to this link and save the file in the /etc/yum.repos.d/ directory. RHEL/CentOS/Oracle 6 Navigate to this link and save the file in the /etc/yum.repos.d/ directory. RHEL/CentOS/Oracle 7 Navigate to this link and save