下面说明Hbase ubuntu12.04上的安装,假设在安装Hbase前你已经正确安装了Hadoop(可以参见以前的博文).
tar -zxvf hbase-0.94.8.tar.gz cd hbase-0.94.8
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hbase.rootdir</name> <value>file:///DIRECTORY/hbase</value> </property> </configuration>
候操作系统会清理/tmp目录)
现在启动Hbase:
$ ./bin/start-hbase.sh
starting Master, logging to logs/hbase-user-master-example.org.out
现在你运行的是单机模式的Hbaes。所以的服务都运行在一个JVM上,包括Hbase和Zookeeper。Hbase的日志放在logs
目录,当你启动出问题的时候,
可以检查这个日志。
安装过程出现的错误:
1,ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times
很明显,日志中说RPC协议不一致所造成的,恍然见明白因为我在hbase的配置文件中将rootdir设置为hdfs,如果这两者的RPC协议不一致就会导致这个问题。
解决方法:
将hbase/lib目录下的hadoop-core的jar文件删除,将hadoop目录下的hadoop-****-core.jar拷贝到hbase/lib下面,然后重新启动hbase即可。
2,ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.
解决方法:
如果系统是Ubuntu的话,要注意
/etc/hosts里面的127.0.0.1是否是127.0.1.1,如果是的话,把他改过来就可以了。
用shell 连接Hbase
hbase(main):003:0> create 'test', 'c1' 0 row(s) in 1.2200 seconds hbase(main):003:0> list 'table' test 1 row(s) in 0.0550 seconds hbase(main):004:0> put 'test', 'row1', 'c1:a', 'value1' 0 row(s) in 0.0560 seconds hbase(main):005:0> put 'test', 'row2', 'c1:b', 'value2' 0 row(s) in 0.0370 seconds hbase(main):006:0> put 'test', 'row3', 'c1:c', 'value3' 0 row(s) in 0.0450 seconds
row1
, 列为
c1:a
, 值是
value1
。Hbase中的列是由 column family前缀和列的名字组成的,以冒号间隔。
例如这一行的列名就是a
.
检查插入情况:Scan这个表,操作如下:
hbase(main):007:0> scan 'test'
zookeeper安装
(1): 从http://mirror.bjtu.edu.cn/apache/zookeeper/stable/下载。
我下载的是zookeeper-3.4.4
(2):解压到: /home/zack/hadoop/zookeeper-3.4.4
(3):把conf下的zoo_sample.cfg copy一份后重命名为: zoo.cfg.
文件中内容如下:
syncLimit=5
initLimit=10
tickTime=2000
clientPort=2181
dataDir=/home/zack/hadoop/zookeeper/data
dataLogDir=/home/zack/hadoop/zookeeper/log
(4): 新建zookeeper下的data,log目录,将chmod 777 -R zookeeper一把
(5): 增加环境变量:
vim ~/.bashrc
export ZOOKEEPER_INSTALL=/home/zack/hadoop/zookeeper-3.4.4
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
source ~/.bashrc 使之生效.
(6): zkServer.sh start 启动
eclipse 示例见:
http://blog.csdn.net/challenchenzhipeng/article/details/7887109
注意: 要是以前用过eclipse 配置过操作Hadoop,那么你需要重新找个没有配置过的eclipse来进行Hbase上的编程。