HBase的安装与配置

注意:先做好hadoop集成配置后再来进行

HBase是Apache的Hadoop项目的子项目。HBase是一个分布式的、面向列的开源数据库。HBase在Hadoop之上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

1、创建用户

分别在四台节点机上创建用户hbase,密码都为123456,uid和gid与hadoop用户的相同,因为Hadoop没设gid,因此是随机分配的,所以先进行查看

(如果做过Hadoop用户的集成之后,可以直接用Hadoop用户去完成)

[root@node1 ~]# cat /etc/group

Hbase分布式数据库管理案例_zookeeper

因此执行命令

[root@node1 ~]# useradd -u 660 -g 1002 -o hbase

上面的仅作参考,之后依然用Hadoop用户进行搭建

2、分别修改四台节点机的环境变量。

(Hadoop配置时已经完成)

3、下载hbase软件包。

4、使用WinSCP上传hbase软件包到node1节点机的root目录下

Hbase分布式数据库管理案例_hadoop_02

5、解压文件,安装文件。

[root@node1 ~]# tar xzvf hbase-1.1.5-bin.tar.gz 
[root@node1 ~]# mv hbase-1.1.5 /home/hadoop/

6、Hbase配置文件(主要三个)

主要有:hbase-env.sh、hbase-site.xml、regionservers,配置文件在/home/hadoop/hbase-1.1.5/conf/目录下。

1)修改hbase-env.sh文件,主要设置jdk路径和设置由hbase自动启动zookeeper。

[root@node1 ~]# cd /home/hadoop/hbase-1.1.5/conf
[root@node1 conf]# vim hbase-env.sh

直接后面添加,java的版本要跟自己安装的一样

Hbase分布式数据库管理案例_分布式_03

2)修改hbase-site.xml文件,将文件中的​​<configuration></configuration>​​修改为如下内容。

<configuration>
<property>
<name>hbase.master</name> #指明master节点
<value>node1:60000</value>
</property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>
<property>
<name>hbase.rootdir</name> #指明数据位置
<value>hdfs://node1:9000/hbase-1.1.5</value> #该值hdfs://node1:9000与
#hadoop的core-site.xml配置相同
</property>
<property>
<name>hbase.cluster.distributed</name> #指明是否配置成为集群模式
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name> #指明zookeeper安装节点
<value>node2,node3,node4</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
#指明zookeeper数据存储目录
<value>/home/hadoop/hbase-1.1.5/tmp/zookeeper</value>
</property>
</configuration>

3)修改配置文件regionservers,添加slave节点的机器名或IP地址。

Hbase分布式数据库管理案例_hbase_04

7、修改“/home/hbase/”文件用户主/组属性。

[root@node1 conf]# chown -R hadoop:hadoop /home/hadoop

8、将配置好的hbase系统复制到其他三个节点机上。

[root@node1 ~]# cd /home/hadoop/
[root@node1 hadoop]# scp -r hbase-1.1.5 hadoop@node2:/home/hadoop/
[root@node1 hadoop]# scp -r hbase-1.1.5 hadoop@node3:/home/hadoop/
[root@node1 hadoop]# scp -r hbase-1.1.5 hadoop@node4:/home/hadoop/

9、分别登录node2、node3、node4节点机,修改 “/home/hbase/”文件用户主/组属性。

[root@node2 ~]# chown -R hadoop:hadoop /home/hadoop
[root@node3 ~]# chown -R hadoop:hadoop /home/hadoop
[root@node4 ~]# chown -R hadoop:hadoop /home/hadoop

HBase管理与HBase Shell

Hbase是分布式数据库,运行在hadoop环境上,HBase Shell是HBase提高的操作命令。

HBase Shell的主要命令包括:create 创建表,describe 查看表的结构,enable/disable 表激活/取消,drop 删除表,get/put 表读/写。本实训主要完成HBase数据库服务的启动、停止,HBase数据库的管理操作。

1、启动hbase服务。

(开启hbase前需要先开启hadoop)

Hbase分布式数据库管理案例_zookeeper_05

Hbase分布式数据库管理案例_hbase_06

2、检查运行结果

Master节点机的进程如下所示:(若出现节点少HRegionServer,考虑时间没有同步,先进行同步配置,参考同专栏《网络时间协议》)也可以手动去虚拟机设置那里直接选择与物理主机时间同步选项

Hbase分布式数据库管理案例_分布式_07

Hbase分布式数据库管理案例_数据库_08

Hbase分布式数据库管理案例_hbase_09

Hbase分布式数据库管理案例_分布式_10

3、停止hbase服务。(暂不操作)

stop-hbase.sh

4、登录hbase的 web界面。

Hbase分布式数据库管理案例_zookeeper_11

5、启动hbase shell(进行以下一系列数据库操作)

Hbase分布式数据库管理案例_分布式_12

6、建立表scores,两个列簇:grade和course。

hbase(main):001:0> create 'scores','grade','course'
#以下为输出
0 row(s) in 1.4890 seconds

=> Hbase::Table - scores

7、查看当前hbase中的表。

hbase(main):002:0> list
#以下为输出
TABLE
scores
1 row(s) in 0.0260 seconds

=> ["scores"]

8、添加6条纪录。

1)记录1:jie,grade:143cloud。操作命令如下:

hbase(main):003:0> put 'scores','jie','grade:','143cloud'
#以下为输出
0 row(s) in 0.1760 seconds

2)记录2:jie,course:math,85。操作命令如下:

hbase(main):004:0> put 'scores','jie','course:math','85'
#以下为输出
0 row(s) in 0.0180 seconds

3)记录3:jie,course:cloud,92。操作命令如下:

hbase(main):005:0> put 'scores','jie','course:cloud','92'
#以下为输出
0 row(s) in 0.0190 seconds

4)记录4:shi,grade:133soft。操作命令如下:

hbase(main):006:0> put 'scores','shi','grade:','133soft'
#以下为输出
0 row(s) in 0.0160 seconds

5)记录5:shi,grade:math,86。操作命令如下:

hbase(main):007:0> put 'scores','shi','course:math','86'
#以下为输出
0 row(s) in 0.0140 seconds

6)记录6:shi,grade:cloud,90。操作命令如下:

hbase(main):008:0> put 'scores','shi','course:cloud','90'
#以下为输出
0 row(s) in 0.0110 seconds

9、

1)读取jie的记录。

hbase(main):009:0> get 'scores','jie'

Hbase分布式数据库管理案例_数据库_13

2)读取jie的班级。

hbase(main):010:0> get 'scores','jie','grade'

Hbase分布式数据库管理案例_hbase_14

10、查看整个表记录。

hbase(main):011:0> scan 'scores'

Hbase分布式数据库管理案例_数据库_15

11、按列查看表记录。

hbase(main):012:0> scan 'scores',{COLUMNS=>'course'}

Hbase分布式数据库管理案例_分布式_16

12、增加新的列簇。

hbase(main):013:0> alter 'scores',NAME=>'age'

Hbase分布式数据库管理案例_hbase_17

13、查看表结构。

hbase(main):014:0> describe 'scores'

Hbase分布式数据库管理案例_分布式_18

14、删除指定记录。

delete 'scores','shi','grade'

15、删除列簇,删除表

alter 'scores',NAME=>'age',METHOD=>'delete' #删除列簇

disable 'scores' #删除表
drop 'scores' #删除表