HBase-0.90.4集群安装配置

HBase是Hadoop数据库,能够实现随机、实时读写你的Big Data,它是Google的Bigtable的开源实现,可以参考Bigtable的论文Bigtable: A Distributed Storage System for Structured。HBase的存储模型可以如下三个词来概括:distributed, versioned, column-oriented。HBase并非只能在HDFS文件系统上使用, 你可以应用在你的本地文件系统上部署HBase实例来存储数据。


准备工作


下面介绍Standalone和Distributed安装过程。


Standalone模式


这种安装模式,是在你的本地文件系统上安装配置一个HBase实例,安装配置比较简单。

首先,要保证你的本地系统能够通过ssh无密码访问,配置如下:

  1. ssh-keygen -t dsa  
  2. cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  
检查一下权限:你的~/.ssh目录的权限是否为755,~/.ssh/authorized_keys的权限是否为644,如果不是,执行下面的命令行:
  1. chmod 755 ~/.ssh  
  2. chmod 644 ~/.ssh/authorized_keys  
然后,安装配置HBase,过程如下:
  1. cd /home/shirdrn/hadoop  
  2. tar -xvzf hbase-0.90.4.tar.gz  
  3. cd hbase-0.90.4  
修改conf/hbase-env.sh中JAVA_HOME配置,指定为你的JAVA_HOME目录:
  1. export JAVA_HOME=/usr/java/jdk1.6.0_16  
其他配置,如HBASE*指定配置项,如果需要可以进行配置。

修改hbase-site.xml中配置,示例如下:

  1. <?xml version="1.0"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3.   
  4. <configuration>  
  5.   <property>  
  6.     <name>hbase.rootdir</name>  
  7.     <value>file:///home/shirdrn/hadoop/hbase-0.90.4/data</value>  
  8.   </property>  
  9. </configuration>  
指定HBase的数据存储目录,使用的是本地文件系统的目录。

接着,就可以启动HBase实例,提供本地存储服务:

  1. bin/start-hbase.sh  
启动完成以后,你可以跟踪一下HBase日志,看看是否启动成功了:
  1. tail -500f logs/hbase-shirdrn-master-localhost.log  
或者查看一下HMaster进程是否存在:
  1. ps -ef | grep HMaster  

通过日志可以看出,HBase实例启动了所有的HBase和Zookeeper守护进程,并且这些进程都是在同一个JVM中。下面,可以启动HBase shell,来简单测试HBase的数据存储的基本命令:

  1. cd bin  
  2. hbase shell  
  3. hbase(main):001:0> help  
  4. hbase(main):002:0> status  
  5. hbase(main):003:0> version  
  6. // 创建表'pagedb',列簇(Column Family)为metadata、text、status  
  7. hbase(main):004:0> create 'pagedb', 'metadata', 'text', 'status'  
  8. // 插入数据  
  9. hbase(main):005:0> put 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'metadata:site', 'www.mafengwo.cn'  
  10. hbase(main):006:0> put 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'metadata:pubdate', '2011-12-20 22:09'  
  11. hbase(main):007:0> put 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'text:title', '南国之境'  
  12. hbase(main):008:0> put 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'text:content', '如果海會說话, 如果風愛上砂 我會聆聽浪花,...'  
  13. hbase(main):009:0> put 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'status:extracted', '0'  
  14. hbase(main):010:0> put 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'status:httpcode', '200'  
  15. hbase(main):011:0> put 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'status:indexed', '1'  
  16. // 扫描表'pagedb'  
  17. hbase(main):012:0> scan 'pagedb'  
  18. // 获取记录'http://www.mafengwo.cn/i/764197.html'的所有列的数据  
  19. hbase(main):013:0> get 'pagedb', 'http://www.mafengwo.cn/i/764197.html'  
  20. // 获取记录'http://www.mafengwo.cn/i/764197.html'的metadata列簇数据  
  21. hbase(main):014:0> get 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'metadata'  
  22. // 获取记录'http://www.mafengwo.cn/i/764197.html'的列metadata:site数据  
  23. hbase(main):015:0> get 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'metadata:site'  
  24. // 增加一个列status:state,并指定值为4  
  25. hbase(main):016:0> incr 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'status:state', 4  
  26. // 修改status:httpcode的值为500  
  27. hbase(main):017:0> put 'pagedb', 'http://www.mafengwo.cn/i/764197.html', 'status:httpcode', '500'  
  28. // 统计表'pagedb'中的记录行数  
  29. hbase(main):018:0> count 'pagedb'  
  30. // disable表'pagedb'  
  31. hbase(main):019:0> disable 'pagedb'  
  32. // enable表pagedb  
  33. hbase(main):020:0> enable 'pagedb'  
  34. // 清空表'pagedb'  
  35. hbase(main):021:0> truncate 'pagedb'  
  36. // 列出所有表  
  37. hbase(main):022:0> list  
  38. // 删除'http://www.mafengwo.cn/i/764197.html'数据行  
  39. hbase(main):023:0> deleteall 'pagedb','http://www.mafengwo.cn/i/764197.html'  
  40. // 删除表'pagedb',删除之前必须先disable表  
  41. hbase(main):024:0> drop 'pagedb'  

如果想练习使用其他更多命令,可以通过help查看其他命令。

相关推荐