我用的版本是hbase-0.94.9.tar.gz hadoop-1.0.1,将hbase-0.94.9.tar.gz解压到系统主目录下,伪分布式的配置如下:

(1)编辑{HBASE_HOME}/conf/hbase-env.sh 文件,设置JAVA_HOME和HBASE_CLASSPATH变量

export JAVA_HOME=/usr/java/jdk1.6.0_33 (自己的JAVA_HOME主目录,即在/下的目录)
  export HBASE_CLASSPATH=/hadoop-1.0.1/conf (自己的HADOOP_HOME主目录,即在/下的目录)
(2)编辑{HBASE_HOME}/conf/hbase-site.xml 文件,增加以下内容
<property>

   <value> hdfs://localhost:9000/hbase</value>  
</property>
<property>



</property>

注:以上表格中标红色的路径一定要跟hadoop中core-site.xml中fs.default.name中的路径相同,否则会出错。

(3)替换Hbase中的jar包

用{HADOOP_HOME}下的hadoop-0.20.2-core.jar 替换掉{HBASE_HOME}/lib目录下的hadoop-core-0.20.2-core.jar。如果不替换jar文件Hbase启动时会因为hadoop和Hbase的客户端协议不一致而导致HMaster启动异常。报错如下:

localhost: Exception in thread "main" org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41)


./start-hbase.sh   
     ./hbase shell       
     ./stop-all.sh


注意:

  export HBASE_MANAGES_ZK=true 启动Hadoop—>启动ZooKeeper集群—>启动HBase—>停止HBase—>停止ZooKeeper集群—>停止Hadoop。

localhost: Exception in thread "main" org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41)  ,原因就是上面hbase安装第三步中提到的没有替换jar包的原因。

下面是一些常用的shell 命令。

名称

命令表达式

创建表

create '表名称', '列名称1','列名称2','列名称N'

添加记录

put '表名称', '行名称', '列名称:', '值'

查看记录

get '表名称', '行名称'

查看表中的记录总数

count 

删除记录

delete 

删除一张表

先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 

查看所有记录

scan "表名称"

查看某个表某个列中所有数据

scan "表名称" , ['列名称:']

$ ./stop-all.sh         

注意:在安装HBase时,请尽量与Hadoop 的版本保持一致,否则会影响HBase的稳定性。

默认情况下,HBase的lib文件夹下对应的Hadoop版本相对稳定。如果用户想用其他版本的Hadoop,则需要将Hadoop 安装目录下的had00p-xxx.-core.jar拷贝到HBase的lib文件夹下以替换其他版本的Hadoop 文件。

另外,如果HBase成功安装并启动,会在Hadoop 进程中看到HRegionServer之类的进程。