天天看点

Hbase基础(二):HBase 快速入门(HBase安装与Shell操作)

3.1 Hbase安装前

3.1.1 启动Zookeeper

首先保证Zookeeper集群的正常部署,并启动之:

3.1.2 启动Hadoop

Hadoop集群的正常部署并启动:

3.1.3 HBase的解压

解压HBase到指定目录:

3.2 HBase的安装

3.2.1 HBase的配置

修改HBase对应的配置文件。

1)HBase-env.sh修改内容:   可不用改  因为profile已经把JAVA_HOME设为全局了!

2)HBase-site.xml修改内容:

3)regionservers:

4)软连接hadoop配置文件到HBase:

3.2.2 分发HBase到其他节点

3.3 HBase服务的启动

1.启动方式1

提示:如果集群之间的节点时间不同步,会导致regionserver无法启动,抛出ClockOutOfSyncException异常。

修复提示:

a、同步时间服务

请参看帮助文档:《尚硅谷大数据技术之Hadoop入门》

b、属性:hbase.master.maxclockskew设置更大的值

2.启动方式2

对应的停止服务:

3.4 查看HBase页面

启动成功后,可以通过“host:port”的方式来访问HBase管理页面,例如:http://hadoop102:16010 

使用hbase shell可以进入一个shell命令行界面!

4.1 其他操作

1.查看集群状态

使用status可以查看集群状态,默认为summary,可以选择‘simple’和‘detailed’来查看详情。

2.查看版本

3.查看操作用户及组信息

4.查看表操作信息

5.查看帮助信息

6.查看具体命令的帮助

注意引号是必须的!

4.2 表的操作

4.2.1.  list

list后可以使用*等通配符来进行表的过滤!

4.2.2  create

创建表时,需要指定表名和列族名,而且至少需要指定一个列族,没有列族的表是没有任何意义的。

创建表时,还可以指定表的属性,表的属性需要指定在列族上!

格式:

create '表名', { NAME => '列族名1', 属性名 => 属性值}, {NAME => '列族名2', 属性名 => 属性值}, …

如果你只需要创建列族,而不需要定义列族属性,那么可以采用以下快捷写法:

create'表名','列族名1' ,'列族名2', …

4.2.3  desc

4.2.4  disable

停用表后,可以防止在对表做一些维护时,客户端依然可以持续写入数据到表。一般在删除表前,必须停用表。

在对表中的列族进行修改时,也需要停用表。

disable_all ‘正则表达式’ 可以使用正则来匹配表名。

is_disabled 可以用来判断表是否被停用。

4.2.5  enable

和停用表类似。enable ‘表名’用来启用表,is_enabled ‘表名’用来判断一个表是否被启用。

enable_all ‘正则表达式’可以通过正则来过滤表,启用复合条件的表。

4.2.6.  exists

4.2.7.  count

4.2.8.  drop

删除表前,需要先disable表,否则会报错。ERROR: Table xxx is enabled. Disable it first.

4.2.9  truncate

4.2.10  get_split

获取表所对应的Region个数。每个表在一开始只有一个region,之后记录增多后,region会被自动拆分。

4.2.11  alter

alter命令可以修改表的属性,通常是修改某个列族的属性。

alter ‘表名’, ‘delete’ => ‘列族名’

4.3 数据操作

4.3.1  scan

scan命令可以按照rowkey的字典顺序来遍历指定的表的数据。

scan ‘表名’:默认当前表的所有列族。

scan ‘表名’,{COLUMNS=> [‘列族:列名’],…} : 遍历表的指定列

scan '表名', { STARTROW => '起始行键', ENDROW => '结束行键' }:指定rowkey范围。如果不指定,则会从表的开头一直显示到表的结尾。区间为左闭右开。

scan '表名', { LIMIT => 行数量}: 指定返回的行的数量

scan '表名', {VERSIONS => 版本数}:返回cell的多个版本

scan '表名', { TIMERANGE => [最小时间戳, 最大时间戳]}:指定时间戳范围

注意:此区间是一个左闭右开的区间,因此返回的结果包含最小时间戳的记录,但是不包含最大时间戳记录

scan '表名', { RAW => true, VERSIONS => 版本数}

显示原始单元格记录,在Hbase中,被删掉的记录在HBase被删除掉的记录并不会立即从磁盘上清除,而是先被打上墓碑标记,然后等待下次major compaction的时候再被删除掉。注意RAW参数必须和VERSIONS一起使用,但是不能和COLUMNS参数一起使用。

scan '表名', { FILTER => "过滤器"} and|or { FILTER => "过滤器"}: 使用过滤器扫描

4.3.2  put

put可以新增记录还可以为记录设置属性。

put '表名', '行键', '列名', '值'

put '表名', '行键', '列名', '值',时间戳

put '表名', '行键', '列名', '值', { '属性名' => '属性值'}

put '表名', '行键', '列名', '值',时间戳, { '属性名' =>'属性值'}

4.3.3  get

get支持scan所支持的大部分属性,如COLUMNS,TIMERANGE,VERSIONS,FILTER

4.3.4  delete

删除某rowkey的全部数据:

删除某rowkey的某一列数据:

继续阅读