windows下hbase部署和使用

这里假定hadoop已经部署完成(详细步骤可参考上一篇文章),继续进行hbase的安装,过程如下:

1、下载Hbase2.0.5,下载地址:http://archive.apache.org/dist/hbase/,这里注意hbase和hadoop的版本,hadoop2.7.x以上,hbase2.0以上。

2、解压并添加环境变量,如下:

windows下hbase部署和使用

增加系统变量:HBASE_HOME=E:\geotrellis\hbase-2.0.5

PATH增加%HBASE_HOME%\bin

3、配置hbase-env.sh,配置文件位于hbase_home/conf下

windows下hbase部署和使用

4、配置hbase-site,位置同上。

<configuration>

    <property>

        <name>hbase.rootdir</name>

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

    </property>

    <property>

        <name>hbase.zookeeper.property.dataDir</name>

        <value>/home/hadoop/zookeeper</value>

    </property>

    <property>

        <name>hbase.cluster.distributed</name>

        <value>false</value>

    </property>

</configuration>

这里设置不使用集群,hbase.cluster.distributed=false

5、启动hbase,cd到hbase的bin目录,输入:start-hbase.cmd

windows下hbase部署和使用

6、进入hbase的bin目录,输入.\hbase shell

1)、HBase shell中的帮助命令非常强大,使用help获得全部命令的列表,使用help ‘command_name’获得某一个命令的详细信息。 例如:

help ‘list'

2)、查询服务器状态

status

3)、查询Hbase版本:

version

4)、查看所有表

list

增删改

1)、创建一个表

create 'member','member_id','address','info’

2)、获得表的描述

describe 'member'

3)、添加一个列族

alter 'member', 'id'

4)、删除一个列族

alter 'member', {NAME => 'member_id', METHOD => 'delete’}

5)、删除列

1)通过delete命令,我们可以删除id为某个值的‘info:age’字段,接下来的get就无视了

delete 'member','debugo','info:age'get 'member','debugo','info:age'

2)删除整行的值:deleteall

deleteall 'member','debugo'get 'member',’debugo'

6、通过enable和disable来启用/禁用这个表,相应的可以通过is_enabled和is_disabled

来检查表是否被禁用。

is_enabled 'member'is_disabled 'member'

7、使用exists来检查表是否存在

exists 'member'

8、删除表需要先将表disable。

disable 'member'drop 'member'

9、put

在HBase shell中,我们可以通过put命令来插入数据。例如我们新创建一个表,它拥有id、address和info三个列簇,并插入一些数据。列簇下的列不需要提前创建,在需要时通过:来指定即可。

create 'member','id','address','info'

# 数据

put 'member', 'debugo','id','11'

put 'member', 'debugo','info:age','27'

put 'member', 'debugo','info:birthday','1987-04-04'

查询

1、查询表中有多少行:count

count 'member'

2、get

1)获取一个id的所有数据

get 'member', ‘Sariel'

2)获得一个id,一个列簇(一个列)中的所有数据:

get 'member', 'Sariel', 'info'

3、查询整表数据

scan 'member'

4、扫描整个列簇

scan 'member', {COLUMN=>'info'}

5、指定扫描其中的某个列:

scan 'member', {COLUMNS=> 'info:birthday'}