HBase Shell

HBase包含可以与HBase进行通信的Shell。 HBase使用Hadoop文件系统来存储数据。它拥有一个主服务器和区域服务器。数据存储将在区域(表)的形式。这些区域被分割并存储在区域服务器。

主服务器管理这些区域服务器,所有这些任务发生在HDFS。下面给出的是一些由HBase Shell支持的命令。

启动hbase shell:hbase shell

通用命令

  • status: 提供HBase的状态,例如,服务器的数量。//hbase(main):001:0>status
  • version: 提供正在使用HBase版本。//hbase(main):001:0>version
  • table_help: 表引用命令提供帮助。//hbase(main):001:0>table_help
  • whoami: 提供有关用户的信息。//hbase(main):001:0>whoami

数据定义语言

这些是关于HBase在表中操作的命令。

  • create: 创建一个表。//hbase(main):001:0>create  '表名称','row_id字段名称,'自定义字段名称','{NAME=>'自定义字段名称',VERSIONS=>设置版本号}'
  • list: 列出HBase的所有表。//hbase(main):001:0>list
  • disable: 禁用表。//hbase(main):001:0>disable '表的名称'
  • is_disabled: 验证表是否被禁用。//hbase(main):001:0>is_disabled '表的名称'
  • enable: 启用一个表。//hbase(main):001:0>enable '表的名称'
  • is_enabled: 验证表是否已启用。//hbase(main):001:0>is_enabled ‘表的名称’
  • describe: 提供了一个表的描述。//hbase(main):001:0>describe ‘表的名称’
  • alter: 改变一个表。//书写形式很多
  • exists: 验证表是否存在。//hbase(main):001:0>exists  ‘表的名称’
  • drop: 从HBase中删除表。//先hbase(main):001:0>disable hbase(main):001:0>drop  ‘表的名称’
  • drop_all: 丢弃在命令中给出匹配“regex”的表。
  • Java Admin API: 在此之前所有的上述命令,Java提供了一个通过API编程来管理实现DDL功能。在这个org.apache.hadoop.hbase.client包中有HBaseAdmin和HTableDescriptor 这两个重要的类提供DDL功能。

数据操纵语言

  • put: 把指定列在指定的行中单元格的值在一个特定的表。//hbase(main):001:0>put '表名','rowid行健','列簇名称/列簇名称:列名称',‘value’
  • get: 取行或单元格的内容。//查找正行数据:hbase(main):001:0>get '表名称' 'rowid行主键'     查找某列的数据:hbase(main):001:0>get '表名称' 'rowid行主键' {COLUMN=>'[列簇:列,簇列]'}
  • delete: 删除表中的单元格值。//删除一行数据中的一列的数据:delete 'table','rowid','column','time stamp'  
  • deleteall: 删除给定行的所有单元格。//删除一行数据中的所有列的数据:deleteall 'table','rowid'
  • scan:
  • count: 计数并返回表中的行的数目。//count  ‘table’
  • truncate: 禁用,删除和重新创建一个指定的表。
  • Java client API: 在此之前所有上述命令,Java提供了一个客户端API来实现DML功能,CRUD(创建检索更新删除)操作更多的是通过编程,在org.apache.hadoop.hbase.client包下。 在此包HTable 的 Put和Get是重要的类。