不要以为山寨的就是低端货,君不见BigTable的山寨版HBase就发展的如火如荼;山寨也是有技术含量的,从HADOOP下面的一个子项目发展为APACHE基金会的项目,如今在开源业内的影响力更是与日俱增。
HBase应该可以算是NoSQL产品线中的一员,起码不属于关系型数据库。在设计上属于结构化与非结构化的集合,其大优势在于能够弹性伸缩,使其可以通过简单的增加节点的方式,来扩展支撑能力。今天我们先快速接触一下安装和使用,以加深对其的理解。
1、安装HBase
HBase的安装很像HADOOP,也分为单机模式,伪分布模式以及分布式模式,难易度也是依次排列。单机模式咱们就不讲了,忒没技术含量,一步到位,试一试分布式模式的安装和使用呗。
HBase的发展非常快,目前新稳定版已经到了0.96.4。不过据说每种hadoop版本都对应有适合的HBase版本,若版本选择不匹配,则运行过程中可能出现各种异常。三思手头上的hadoop环境版本号为0.20.2,这里选择HBase-0.90.5版本,因为这是号称一个能够良好支持0.2x版本的HBase。
下载/解压/修改用户属主,一条龙操作如下:
# wget http://mirror.bit.edu.cn/apache/hbase/hbase-0.90.5/hbase-0.90.5.tar.gz
# tar xvfz hbase-0.90.5.tar.gz -C /usr/local/
# mv /usr/local/hbase-0.90.5/lib/hadoop-core-0.20-append-r1056497.jar /usr/local/hbase-0.90.5/lib/hadoop-core-0.20-append-r1056497.bak
# cp /usr/local/hadoop-0.20.2/hadoop-0.20.2-core.jar /usr/local/hbase-0.90.5/lib/
# chown grid:grid /usr/local/hbase-0.90.5 -R
注意前面那个cp操作,从hadoop目录中复制hadoop-0.20.2-core.jar文件到hbase目录下,替换hbase下自带的core.jar文件,据说如不进行这个替换,那么HBase在启动过程中就会报错(有可能,hbase自带的核心版本号与本地hadoop版本号不同,为避免麻烦,替换好),我没有做测试,反正参考网上文档时,别人说让替换,我就信了。
接下来的操作都是在grid用户(即运行hadoop的操作系统帐户)下进行,切换至grid用户下,并将HBase目录导入到PATH环境变量,方便我们调用命令:
# su - grid
$ echo "export HBASE_HOME=/usr/local/hbase-0.90.5" >> .bash_profile
$ echo "export PATH=\${HBASE_HOME}/bin:\$PATH" >> .bash_profile
修改hbase的环境变量文件,配置JAVA_HOME的值到正确的路径下。
- $ vi /usr/local/hbase-0.90.5/conf/hbase-env.sh
增加两行内容(或者说设定两个环境变量):
export JAVA_HOME=/usr/local/jdk1.7.0_09
export HBASE_CLASSPATH=/usr/local/hadoop-0.20.2/conf
修改hbase站点配置文件,配置hbase在hdfs中的存储路径。
- $ vi /usr/local/hbase-0.90.5/conf/hbase-site.xml
增加下列配置:
The directory where the snapshot is stored.
编辑regionservers文件,类似hadoop中的conf/slaves文件,这里是用来指定HReginServers的服务器列表:
- $ vi /usr/local/hbase-0.90.5/conf/regionservers
我们把5个节点都加进去:
hdnode1
hdnode2
hdnode3
hdnode4
hdnode5
将hbase-0.90.5文件夹打包并复制到其它四个节点,操作步骤如下:
$ tar cvfz hbase-0.95.tar.gz /usr/local/hbase-0.90.5
$ scp hbase-0.95.tar.gz hdnode2:~/
$ scp hbase-0.95.tar.gz hdnode3:~/
$ scp hbase-0.95.tar.gz hdnode4:~/
$ scp hbase-0.95.tar.gz hdnode5:~/
各个节点分别解压这个文件到/usr/local目录。
启动hbase服务(若要停止则用stop-hbase.sh脚本):
- $ /usr/local/hbase-0.90.5/bin/start-hbase.sh
hdnode1节点被配置为hmaster,则该节点查询当前的进程,将能够看到:
[grid@hdnode1 ~]$ jps
13695 HMaster
13933 Jps
664 NameNode
818 SecondaryNameNode
13637 HQuorumPeer
13807 HRegionServer
895 JobTracker
而在其它结点上,应该能够看到HReginServer和HQuorumPeer进程:
[grid@hdnode3 ~]$ jps
2974 HQuorumPeer
3048 HRegionServer
16471 DataNode
16529 TaskTracker
3138 Jps
通过URL方式访问:http://192.168.30.203:60010/master.jsp,可以查看HBase的一些基础信息,日志等等。这样,如果过程中都没有报错,HBase就算安装好了。
HBase提供的接口方式非常多
下面我们就来逐个介绍一下。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-758458/,如需转载,请注明出处,否则将追究法律责任。