Hbase常用操作记录

创建表

语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
  • 例如:创建表t1,有两个family name:f1,f2,且版本数均为2
create 'table',{NAME => 'family1', VERSIONS => 2,TTL=>'100000'},{NAME => 'family2', VERSIONS => 2,TTL=>'100000'}

查看表结构

describe <table>

修改表结构

disable 'table'
alter 'table',{NAME=>'info',TTL=>'100000'}
enable 'table'

删除表

disable 'table'
drop 'table'
统计行数 hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'tablename'
添加数据 put 'table','rowkey','family:column','value'
查询表中的数据行数 count 'table', {INTERVAL => 100, CACHE => 500}
删除数据
删除行中的某个列值 delete 'table','rowkey','family:column'
删除行 deleteall 'table','rowkey'
删除表中的所有数据 truncate 'table'
rowkey中包含某关键字
  • BinaryComparator-使用Bytes.compareTo()比较
  • BinaryPrefixComparator-和BinaryComparator差不多,从前面开始比较
  • NullComparator-Does not compare against an actual value but whether a given one is null, or not null.
  • BitComparator-Performs a bitwise comparison, providing a BitwiseOp class with AND, OR, and XOR operators.
  • RegexStringComparator-正则表达式
  • SubstringComparator-把数据当成字符串,用contains()来判断
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.需要使用的过滤器
提取rowkey以01结尾数据
Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new RegexStringComparator(".*01$"));
提取rowkey以包含201407的数据
Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("201407"));
提取rowkey以123开头的数据
Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new BinaryPrefixComparator("123".getBytes())))
import org.apache.hadoop.hbase.filter.RowFilter
scan 'table',FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),SubstringComparator.new('KEY'))
以某关键字开头
scan 'table', FILTER => "PrefixFilter ('关键字')"
根据column family value查询 包含某一关键字的数据
scan 'table', FILTER=>"ColumnPrefixFilter('family:column') AND ( ValueFilter(=,'substring:关键字1') OR ValueFilter(=,'substring:关键字2') )"
查询值等于某一关键字的数据
scan 'table', FILTER=>"ValueFilter(=,'binary:关键字')"
 

Hbase常用操作记录的更多相关文章

  1. Hbase常用操作(增删改查)

    Hbase常用操作(增删改查) [日期:2014-01-03] 来源:Linux社区  作者:net19880504 [字体:大 中 小]     运行Eclipse,创建一个新的Java工程“HBa ...

  2. HBase常用操作之namespace

    1.介绍 在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分.Apache HBase从0.98.0, 0.95.2两个版本开始支 ...

  3. Hbase常用操作

    下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如 名称 命令表达式 创建表 create '表名称', '列名称1','列名称2','列名称N' ...

  4. Mysql常用操作记录

    在linux平台中相关的MySql操作 打开Mysql mysql -uroot -p  //-u后边为用户名,-p后边为密码    1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql& ...

  5. 【Json】fastjson与jackson常用操作记录

    本文只是记录fastjson.jackson一些常用的操作方法,没作比较,网上写比较的文章很多啦. 1.对象转Json串 // fastjson String objStr = JSON.toJSON ...

  6. 关于mac的一些常用操作记录

    之前记录过一个关于mac远程连接window机,实现共享文件的记录,今天记录一些常用的操作,会持续更新. 1.谷歌浏览器 f12的操作 command+option+i 打开调试面板 2.打开指定位置 ...

  7. git常用操作记录

    之前的多人项目大多使用了SVN作为版本控制,自己只会用eclipse连接GitHub的操作.这次项目采用了git作为版本控制系统,所以学会了很多新操作,这里权当记录,以备后用. git的一些基本操作可 ...

  8. 第二篇 Mysql常用操作记录(转载)

    我们在创建网站的时候,一般需要用到数据库.考虑到安全性,建议使用非root用户.常用命令如下: 1.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户my ...

  9. HBase常用操作-HBaseUtil

    package com.zhen.hbase; import java.io.IOException; import java.util.ArrayList; import java.util.Col ...

随机推荐

  1. Dynamic learning rate in training - 培训中的动态学习率

    I'm using keras 2.1.* and want to change the learning rate during training. I know about the schedul ...

  2. Django REST framework--序列化

    Django REST framework--序列化 基础准备工作 创建项目添加应用 (venv) lee@lee:~/PycharmProjects/Djdemo/djdemo$ python ma ...

  3. 给django视图类添加装饰器

    要将login_required装饰到view class的dispatch方法上, 因为dispatch方法为类方法,不是单个的函数,所以需要将装饰函数的装饰器 login_required转化为装 ...

  4. jq后加标签的事件(live事件)

    在使用中  live可以对未来元素起作用(比如:js后加的div等)   live在jq1.9以上版本已经废除 原:$('#del').live('click',function(){}) 改:$(' ...

  5. c#@三种作用

    以前只知道@在C#中为了写文件路径的\不要加转义符而在前面加上@标识符,没想到@还有其他的作用 1.忽略转义字符例如string fileName = "D:\\文本文件\\text.txt ...

  6. tcp的粘包现象与解决方案

    粘包现象: 粘包1:连续的小包,会被优化机制给合并 粘包2:服务端一次性无法完全就收完客户端发送的数据,第二再次接收的时候,会接收到第一次遗留的内容 模拟一个粘包现象 服务端 import socke ...

  7. Linux:Linux Mint系统的安装

    今天就更新一篇了,其实Linux系统大部分都是用虚拟机来安装的,毕竟Windows系统才是我们常用的系统,而Linux系统只是我们工作时才用的,而且使用虚拟机是非常方便的,不用重启电脑就可以使用另一种 ...

  8. 开始 第一个自己的python爬虫程序 爬磁力链

    不能一事无成,这么久了学python还是吊着,要落地,落在博客园好了,好像公司也只能上博客园了 昨天看了一篇用正则爬电影天堂的视频,直接拿来用,爬磁力吧,爬好玩的 #导入模块 import reque ...

  9. 2017年5月11日17:43:06 rabbitmq 消费者队列

    从昨天开始发现个问题,一个接口在本地调用时大部分正常,一旦在生成者打一个断点调试,并且在promotion也打断点的时候会出现没有返回channel的异常,然后消费者就再也消费不了了 16:57:45 ...

  10. for循环:用turtle画一颗五角星2

    import turtle turtle.setup(600,400,0,0) turtle.bgcolor('red') turtle.pencolor('yellow') turtle.fillc ...