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是重要的类。