1 启动条件
HBase也需要安装在成功部署了Hadoop的平台上,并且要求Hadoop已经正常启动。同时,HBase需要作为集群来部署,因此,我们将在Master和Slave上安装HBase。下面的所有操作均使用csu用户,请先进行用户的切换,还有就是要有zookeeper要不也会闪退.
2 安装
可以从“http://hbase.apache.org”下载最新版本的HBase,我们采用了较早版本的HBase。实际上,研究发现,在安装Hadoop 3.1以后,将HBase升级到2以上版本需要慎重对待。从官方文献以及实践来看,高版本的Hadoop与高版本的HBase存在失配的问题,因此我们这里采用低版本的HBase。在现实中,采用什么版本的软件应当从实际需要出发。
请将该文件复制到Master的“/home/csu/resources”目录下(为了管理方便,建议读者把所有软件资源都放在一个目录下),然后将该文件复制到“/home/csu/”下面,我们从这里开始安装。
tar -zxvf hbase-2.0.4-bin.tar.gz
sudo mv hbase-2.0.4 ~
3 配置
进入HBase安装目录下的“conf”子目录,这是配置文件所在的位置。
修改环境变量hbase-env.sh
执行“gedit hbase-env.sh”命令开始编辑hbase-env.sh文件。在该文件的靠前部分,可以看到下面的代码:
在上述代码中,修改第二行,去掉“#”号,即将“# export JAVA_HOME=/usr/java/ jdk1.8.0/”修改为“export JAVA_HOME=/usr/java/jdk1.8.0_171/”。
# The java implementation to use. Java 1.8+ required. # export JAVA_HOME=/usr/java/jdk1.8.0/
在上述代码中,修改第二行,去掉“#”号,即将“# export JAVA_HOME=/usr/java/ jdk1.8.0/”修改为“export JAVA_HOME=/usr/local/jdk1.8.0_171/”。
修改配置文件hbase-site.xml
接着修改配置文件hbase-site.xml。安装HBase后,系统自动生成了hbase-site.xml文件,执行“gedit hbase-site.xml”命令可编辑该文件。将下面的代码放在hbase-site.xml文件的<configuration> </configuration>之间。
<property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master</value> </property> <property> <name>hbase.master.info.port</name> <value>60010</value> </property>
注意事项
必须指出,上述代码中的“60010”是通过Web方式得到的HBase系统状态的端口号。HBase 1.0以下版本不需要在hbase-site.xml文件中添加该端口号,用户就可以访问其Web页面。但是Hbase 1.0以上版本则需要由用户自己添加端口号,就像我们上面所做的那样。有些用户安装了Hbase 1.0以上版本后,可以启动并进入Shell使用系统,但不能通过Web方式查看系统状态,其原因就是没有在hbase-site.xml文件中添加上述相关配置代码。
配置regionservers
regionservers文件类似Hadoop的slaves文件,其中保存了RigionServer的列表。在启动HBase时,系统将根据该文件建立HBase集群。regionservers文件在HBase的安装目录下的“conf”子目录下,执行“vim regionservers”命令可编辑该文件。
slave0 slave1
#HBase export HBASE_HOME=/home/csu/hbase-2.0.4/ export PATH=$HBASE_HOME/bin:$PATH export HADOOP_CLASSPATH=$HBASE_HOME/lib/*
配置Linux环境变量文件
修改.bash_profile文件,执行“vim etc/profile”命令可编辑该文件,如图6-43所示。
#HBase export HBASE_HOME=/home/csu/hbase-2.0.4/ export PATH=$HBASE_HOME/bin:$PATH export HADOOP_CLASSPATH=$HBASE_HOME/lib/*
source /etc/profile
将HBase安装目录复制到Slave
本次有两个Slave(Slave0和Slave1),因此复制操作需要执行两次,复制到Slave 0的命令是scp -r ~/hbase-2.0.4/ slave0:~/。
4 启动并验证HBase
进入Master上的HBase安装目录,执行“bin/start-hbase.sh”命令可启动HBase。
执行命令后如果看到的信息,表明HBase已经成功启动。
可以看到,系统首先启动HBase自带的ZooKeeper,然后启动HBase的HMaster,接着分别启动Slave上的RegionServer。
可以通过“jps”命令查看Master的进程,其中HMaster是HBase的主控节点进程,HQuorumPeer则是HBase的ZooKeeper进程(即HBase内置的ZooKeeper)。
同样,也可以通过Web方式查看HBase系统的运行状态。打开Firefox浏览器,在地址栏输入“http://master:60010”,会看到的界面,该界面就是HBase的管理界面。
5 HBase的基本应用
这里先介绍几个常见的HBase Shell命令。利用HBase Shell命令操作HBase是一种基本方法,也可以通过程序进行操作。
执行“bin/hbase shell”命令进入HBase Shell。
创建表
create "test1",'f1'
其中f1是列簇名,由用户自己定义。上述命令是旧版本形式,目前可以简化成如图6-53所示的形式。
查看列表
list
插入数据
put 'test1','id001','f1:uid','001'
扫描查询数据
scan 'test1'
在上面的命令中,id001是行键(即Row Key);f1是列簇名;uid是属性名,表示用户ID; 001就是属性的值。在查询结果中,我们看到了行键、列簇、属性名、时间戳和属性值。大家不妨对照HBase存储模型研究一下,可以看到这里显示的信息与模型是一致的。我们看到,HBase与传统数据库有了很大的区别。
查看表结构
describe ‘test’
删除表
删除一个表需要执行如下两条命令:
禁用后删除
disable 'test2'
drop 'test2'
退出
exit