1.HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
2.Hbase架构
table_help: 表引用命令提供帮助。 whoami: 提供有关用户的信息
3.2数据定义语言
create: 创建一个表。
list: 列出HBase的所有表。 disable: 禁用表。 is_disabled: 验证表是否被禁用。 enable: 启用一个表。 is_enabled: 验证表是否已启用。 describe: 提供了一个表的描述。 alter: 改变一个表。 exists: 验证表是否存在。 drop: 从HBase中删除表。 drop_all: 丢弃在命令中给出匹配“regex”的表。 Java Admin API: 在此之前所有的上述命令,Java提供了一个通过API编程来管理实现DDL功能。在这个org.apache.hadoop.hbase.client包中有HBaseAdmin和HTableDescriptor 这两个重要的类提供DDL功能。3.3
本章介绍了如何使用自带HBase交互shell启动HBase。
HBase Shell
HBase包含可以与HBase进行通信的Shell。 HBase使用Hadoop文件系统来存储数据。它拥有一个主服务器和区域服务器。数据存储将在区域(表)的形式。这些区域被分割并存储在区域服务器。
主服务器管理这些区域服务器,所有这些任务发生在HDFS。下面给出的是一些由HBase Shell支持的命令。
通用命令
-
status: 提供HBase的状态,例如,服务器的数量。
-
version: 提供正在使用HBase版本。
-
table_help: 表引用命令提供帮助。
-
whoami: 提供有关用户的信息。
数据定义语言
这些是关于HBase在表中操作的命令。
- create: 创建一个表。
- list: 列出HBase的所有表。
- disable: 禁用表。
- is_disabled: 验证表是否被禁用。
- enable: 启用一个表。
- is_enabled: 验证表是否已启用。
- describe: 提供了一个表的描述。
- alter: 改变一个表。
- exists: 验证表是否存在。
- drop: 从HBase中删除表。
- drop_all: 丢弃在命令中给出匹配“regex”的表。
- Java Admin API: 在此之前所有的上述命令,Java提供了一个通过API编程来管理实现DDL功能。在这个org.apache.hadoop.hbase.client包中有HBaseAdmin和HTableDescriptor 这两个重要的类提供DDL功能。
3.3.操作数据库的语言
put: 把指定列在指定的行中单元格的值在一个特定的表。
get: 取行或单元格的内容。 delete: 删除表中的单元格值。 deleteall: 删除给定行的所有单元格。 scan: 扫描并返回表数据。 count: 计数并返回表中的行的数目。 truncate: 禁用,删除和重新创建一个指定的表。 Java client API: 在此之前所有上述命令,Java提供了一个客户端API来实现DML功能,CRUD(创建检索更新删除)操作更多的是通过编程,在org.apache.hadoop.hbase.client包下。 在此包HTable 的 Put和Get是重要的类。