HBase建立在Hadoop文件系统(HDFS)之上的分布式、面向列的数据库。
毕竟HBase是抄的Google的,因此,会有和Goolge的技术有一些对应关系:
- HBase作为Google Bigtable的开源实现
- Google Bigtable利用GFS作为其文件存储系统类似,则HBase利用Hadoop HDFS作为其文件存储系统
- Google通过运行MapReduce来处理Bigtable中的海量数据,同样,HBase利用Hadoop MapReduce来处理HBase中的海量数据
- Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。
安装
下载http://apache.claz.org/hbase/2.0.1/并解压:
tar xfz FILE
cd FILE
复制代码
设置配置
配置文件在conf/hbase-site.xml内,粘贴内容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///User/lcj/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/User/lcj/testuser/zookeeper</value>
</property>
</configuration>
复制代码
到其中即可。其中的最后一级别目录,无需自己创建,Hbase会自动创建的。
设置环境变量
在你启动HBase之前,需要先设置JAVA_HOME
环境变量。HBase提供了一个中心机制 conf/hbase-env.sh,编辑此文件,取消注释以下行JAVA_HOME
,并将其设置为您的操作系统的适当位置。如果是MAC的话,可以使用$(/usr/libexec/java_home)
来查找即可。
export JAVA_HOME=$(/usr/libexec/java_home)
复制代码
然后,启动HBase:
conf/hbase-env.sh
复制代码
应该可以看到如下输出:
running master, logging to /Users/lcj/Downloads/hbase-2.0.1/bin/../logs/hbase-lcj-master-july.local.out
复制代码
执行命令:
jps
复制代码
看到
37004 HMaster
复制代码
这说明HBase已经启动。要是看不到,请看troubleshooting一节。
##验证 使用HBase shell来验证(启动起来,还是有点慢,需要耐心):
./bin/hbase shell
复制代码
创建一个表。使用该“create”命令来创建一个新的表。您必须指定表名称和ColumnFamily名称:
create 'test', 'cf'
复制代码
列出关于您的表的信息,通过使用“list”命令来实现:
list 'test'
复制代码
把数据放到你的表中
put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'
复制代码
一次扫描表中的所有数据
scan 'test'
复制代码
获取一行的数据:
get 'test', 'row1'
复制代码
删除表: drop 'test'
停止服务:
./bin/stop-hbase.sh
复制代码
trouble shooting :
- 要是启动hbase失败,它并不会在命令行提示,而是在hbase-lcj-master-july.local.log内输出错误消息,因此需要留意此文件内的错误。比如我曾经把conf/hbase-site.xml内的目录配错,导致hbase启动不了。
查找ip addr本地的方法:
ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
复制代码
错误的处理:
zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL
复制代码
评价:这个安装的方法,真的是一堆问题,放弃。!