HBase

HBase(Hadoop Database)是Google BigTable的开源实现,是高可靠性、高性能、可伸缩的分佈式数据库。

1. 安装

http://www.apache.org/dyn/closer.cgi/hbase/下载最新稳定版本,目前是hbase-0.94.5.tar.gz。下面的安装都是以hadoop用户身份进行。

1.1 单机模式

对于单机模式,不需要hadoop。首先将hbase解压到某个目录下,然后创建一个存放数据的目录:

tar zxvf hbase-0.94.5.tar.gz
su - root # 输入密码
mkdir /user/hbase -p
chown hadoop /user/hbase
chgrp hadoop /user/hbase

配置conf/hbase-env.sh,在最前面加上,必须使用sun/oracle jdk,注意不同的jdk版本号:

export JAVA_HOME=/usr/java/jdk1.6.0_43

配置conf/hbase-site.xml

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>/user/hbase</value>
  </property>
</configuration>

这是数据存放的位置,默认/tmp/hbase-{user.name}

1.2 分佈式模式

TODO

1.3 启动和停止hbase

bin/start-hbase.sh # 启动
bin/stop-hbase.sh # 停止

验证是否启动成功:使用jps命令查看是否有HMaster进程。通过页面http://192.168.56.102:60030查看hbase运行情况。查看表信息:http://192.168.56.102:60010/master-status。注意防火牆是否开启或开放这2个端口。

2. 操作hbase

2.1 命令行shell

进入shell:

bin/hbase shell

创建表 创建一张表test,只有一列cf:

# 只输入create显示create命令的帮助信息
create 'test','cf'

查看表和表结构:

list # 显示所有的表
list 'test*' # 显示test开头的所有表

插入或修改数据,命令put,参数(行ID,列名:子列名,值):

put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'

查看数据:

scan 'test' # 查看整个表数据
get 'test', 'row1' # 查看某一列的数据

删除表和数据

disable 'test'
drop 'test'

3. phoenix : hbase sql

Phoenix可以让hbase支持SQL操作。从这里下载到phoenix-1.*-install.tar,安装:

tar xvf phoenix-1.*-install.tar # 解压到某个目录
cp phoenix-1.*.jar hbase/lib # 解压到hbase目录的lib下
bin/stop-hbase.sh && bin/start-hbase.sh # 重启hbase

新建一个sql文件test.sql:

CREATE TABLE IF NOT EXISTS STOCK_SYMBOL (
  SYMBOL VARCHAR NOT NULL PRIMARY KEY,
  COMPANY VARCHAR
);
UPSERT INTO STOCK_SYMBOL VALUES ('CRM','SalesForce.com');
SELECT * FROM STOCK_SYMBOL;

然后执行:

java -jar phoenix-1.*-client.jar localhost test.sql
# 输出
# 1 row upserted
# SYMBOL     COMPANY    
# ---------- ---------- 
# CRM        SalesForce.com 
文档更新时间: 2018-11-10 19:10   作者:nick