HBase

来自刘东华的维基
跳转至: 导航搜索

概述

官网:https://hbase.apache.org/,文档:https://hbase.apache.org/book.html

安装配置

  1. 安装jdk
  2. 下载hbase,解压即用
  3. 运行hbase: sh bin/start-hbase.sh
  4. thrift2接口: sh ./bin/hbase-daemon.sh [start|stop] thrift2

集群配置

  • 运行:bin/start-hbase.sh,执行master的就行了

参考: https://hbase.apache.org/book.html#quickstart_fully_distributed

用法

命令行

# 进入hbase shell
./bin/hbase shell
./bin/hbase shell -n  # 非交互模式
./hbase shell ./sample_commands.txt # 从文件中读取并执行命令
 
# 列出hbase所有的表
hbase> list
hbase> list 'abc.*'
 
# 创建hbase表、列族等
hbase> create 'table', {NAME => 'column family', VERSIONS => 5}
hbase> create 't1', {NAME => 'f1', VERSIONS => 5}
hbase> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
 
# 扫描所有记录,扫描指定前缀或后缀的row的记录
hbase> scan 'table'
hbase> scan 'table', {COLUMNS => ['c1', 'c2'], STARTROW => 'start row', ENDROW => 'end row', REVERSED => TRUE}
 
# 删除hbase表
hbase> drop 'table'
 
# 写入hbase
hbase> put 'table', 'row value', 'column', 'column value'[,timestamp]
hbase> put 't1', 'r1', 'c1', 'value', ts1
 
# 通过shell写入二进制例子,value必须用双引号
hbase> put 't1','max','info:id',"\x00\x00\x00\x00\x00\x00\x00\x01"
 
# 删除hbase记录
hbase> delete 'table', 'row value', 'column'[,timestamp] # 删除单条记录
hbase> delete 't1', 'r1', 'c1', ts1
hbase> deleteall 'table', 'row value'[, 'column'[,timestamp]] # 删除多条记录
 
#

参考:https://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/

thrift2

  • lua
 
  • python
  1. 安装thrifth:easy_install thrift
  2. 参考官方实例,如hbase-1.1.4/hbase-examples/src/main/python/thrift2,直接运行目录下的demo

常见错误

  • Could not start ZK with 3 ZK servers in local mode deployment.

不能使用本地模式,必须使用集群模式,在conf/hbase-site.xml加入如下:

  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  • Could not find my address: localhost in list of ZooKeeper quorum servers

每台机器的hostname和访问域名必须一致,直接修改/etc/hostname

参考

  1. HBase性能优化:http://www.open-open.com/lib/view/open1454427099839.html
  2. Hadoop