天天看点

Hbase的安装及配置、eclipse 操作示例1.3 测试,hbase shell

下面说明Hbase ubuntu12.04上的安装,假设在安装Hbase前你已经正确安装了Hadoop(可以参见以前的博文).

1.1下载解压最新版本

选择一个 Apache 下载镜像:http://www.apache.org/dyn/closer.cgi/hbase/,下载 HBase Releases. 点击 stable目录,然后下载后缀为 .tar.gz 的文件; 例如 hbase-0.94.8.tar.gz.

tar -zxvf  hbase-0.94.8.tar.gz
  cd  hbase-0.94.8
           

现在你已经可以启动Hbase了。但是你可能需要先编辑 conf/hbase-site.xml 去配置hbase.rootdir,来选择Hbase将数据写到哪个目录 .

<?xml version="1.0"?>  
    <?xml-stylesheet type="text/xsl" href="configuration.xsl" target="_blank" rel="external nofollow" ?>  
    <configuration>  
      <property>  
        <name>hbase.rootdir</name>  
        <value>file:///DIRECTORY/hbase</value>  
      </property>  
    </configuration>  
           

将 DIRECTORY 替换成你期望写文件的目录. 默认 hbase.rootdir 是指向 /tmp/hbase-${user.name} ,也就说你会在重启后丢失数据(重启的时

候操作系统会清理/tmp目录)

1.2. 启动 HBase

现在启动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,如果是的话,把他改过来就可以了。

1.3 测试,hbase shell

 用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

           

以上我们分别插入了3行。第一个行key为

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上的编程。

继续阅读