HBase的安装和部署,和基本命令使用。
一、HBase的安装部署
Zookeeper的正常部署
首先保证zookeeper集群的正常部署,并启动:
在三台虚拟机的zookeeper安装目录的bin目录下,分别使用命令启动:
1 | ./zkServer.sh start |
Hadoop正常部署
Hadoop集群的正常部署并启动。
HBase的下载安装
HBase使用的是1.3.1 版本,下载地址 http://archive.apache.org/dist/hbase/1.3.1/ ,下载hbase-1.3.1-bin.tar.gz 压缩包,上传到bigdata1虚拟机,并解压到相应目录 ( /export/servers/ ) 。
Hbase配置文件的修改
HBase的配置文件都在 conf 目录下,这里我们主要对以下几个文件进行修改。
regionservers
即RegionServer,region所在的集群,这里写上我们的三台虚拟机主机名,如下。
hbase-env.sh
改三个位置,第一个是 27行左右的 JAVA_HOME,去掉注释,改为本地配好的 JDK 地址。
然后是45行左右,去掉两个export,因为在jdk1.8时已经不再需要。
第三个地方:128行左右,取消使用HBase内置的zookeeper,很不方便,而且会与我们自己的zookeeper冲突,由true改为法false。
hbase-site.xml
增加configuration 内的引用,代码如下。
1 | <configuration> |
软连接Hadoop配置文件到HBase
1 | ln -s /export/servers/hadoop-2.7.7/etc/hadoop/core-site.xml /export/servers/hbase-1.3.1/conf/core-site.xml |
HBase远程发送到集群其他主机
1 | scp -r hbase-1.3.1 bigdata2:$PWD |
HBase服务的启动
首先对bin目录下的启动方式做个简单介绍:
启动方式
HBase单节点启动
在主机bigdata1的 HBase bin目录下,使用命令:
1 | ./hbase-daemon.sh start master |
启动后,即可访问16010端口查看Web版的HBase。
启动regionserver。
1 | ./hbase-daemon.sh start regionserver |
可以看到,region为 启动的bigdata1。
HBase群起群关
我们可以通过 ./stop-hbase.sh
关闭HBase,但此命令只能在master上使用。
集群启动./start-hbase.sh,此命令在那个主机上启动,则该主机就默认为master。
提示:如果集群之间的节点时间不同步,会导致regionserver无法启动,抛出ClockOutOfSyncException 异常。
二、HBase Shell操作
基本操作
进入HBase客户端命令行
1 | ./hbase shell |
查看帮助命令
1 | hbase(main):001:0> help |
ddl是对表的操作,dml是对数据的操作。
查看当前数据库有哪些表
1 | hbase(main):002:0> list |
显示为 0,list只能查用户建的表,系统表则查询不到。
其他命令
1 | status whoami version |
查询服务器状态、查询当前用户、当前hbase使用的版本号。
使用HBase客户端的注意事项
- backspace为删除后面的字符,若想删除前面,则需要按住Ctrl。
- 不熟悉某个命令,可以输入该命令,直接回车,则会给出提示和例子。
DDL(对表的操作)
1、create *: 创建数据库表,创建命令可看帮助*help ‘create’
语法:create <table>, {NAME =><family>, VERSIONS => <VERSIONS>}
例示:create 'product',{NAME => 'computer', VERSIONS => 5},{ NAME => 'food' , VERSIONS => 3}
描述:创建一张名叫‘product’*数据库表,并且创建两个列族,分别为:‘computer’、‘food’*
1 | create 'product','computer','food',... |
2、*describe *: 查看表结构描述
用法:describe 'product'
3、alter : 修改表
用法:修改表结构必须先disable,再修改表,修改完成后,再enable表。
1 | `disable 'product' |
4、drop:删除表
用法:首先disable,然后drop。
disable 'product'
drop 'product'
DML(对数据的操作)
put
插入(修改)数据
1 | put 表名, RowKey, 列族:列名, 数据 |
scan
查询数据
1 | scan 表名 |
get
查询数据
1 | get 表名, RowKey, 列族 |
delete
删除一个RowKwy里的一个字段。
1 | delete 表名, RowKey, 列族:列名 |
type 会变为 DeleteColumn
deleteall
删除一个RowKey。
1 | deleteall 'stu','1001' # 删除stu表的 RowKey=1001 行数据 |
truncate
清空一张表(删除所有数据,即所有RowKey,所有列族),不建议使用。
1 | truncate 'stu' |