启动HBase
start-all.sh # 启动Hadoop
zkServer.sh start # 所有节点启动Zookeeper
start-hbase.sh # 启动HBase
连接HBase
hbase shell
通用命令
- status: 提供HBase的状态,例如,服务器的数量。
- version: 提供正在使用HBase版本。
- table_help: 表引用命令提供帮助。
- whoami: 提供有关用户的信息。
数据定义语言 DDL
- create: 创建一个表。
create 'company','basic','report'
- list: 列出HBase的所有表。
- disable: 禁用表。
disable 'test'
- is_disabled: 验证表是否被禁用。
- enable: 启用一个表。
- is_enabled: 验证表是否已启用。
- describe: 提供了一个表的描述。
describle 'company'
- alter: 改变一个表。
删除列族:alter 'company', {NAME => 'report', METHOD => 'delete'}
,添加列族:alter 'company', {NAME => 'holder'}
- exists: 验证表是否存在。
- drop: 从HBase中删除表。
drop 'test'
- drop_all: 丢弃在命令中给出匹配“regex”的表。
- Java Admin API: 在此之前所有的上述命令,Java提供了一个通过API编程来管理实现DDL功能。在这个org.apache.hadoop.hbase.client包中有HBaseAdmin和HTableDescriptor 这两个重要的类提供DDL功能。
数据操纵语言 DML
- put: 把指定列在指定的行中单元格的值在一个特定的表。
put 'company','0001','basic:entname','xiaomi'
- get: 取行或单元格的内容。
get 'company','0001'
- delete: 删除表中的单元格值。
delete 'company','0002','basic:entno'
- deleteall: 删除给定行的所有单元格。
- scan: 扫描并返回表数据。
scan 'company'
- count: 计数并返回表中的行的数目。
count 'company'
- truncate: 禁用,删除和重新创建一个指定的表。
- Java client API: 在此之前所有上述命令,Java提供了一个客户端API来实现DML功能,CRUD(创建检索更新删除)操作更多的是通过编程,在org.apache.hadoop.hbase.client包下。 在此包HTable 的 Put和Get是重要的类。
其它
1、统计行数
效率比count
高
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter ‘tablename’
注意:
在hbase shell中如输入出错,按住Ctrl+删除键(backspace) 即可删除!