1.导入数据集
先上传文件到指定目录,后执行下面的语句hbase shell /export/software/ORDER_INFO.txt
2.查看表中有多少条数据(计数器)
语法:count ‘表名’
缺点:比较慢,当数据量更大的时候可以使用HBase中提供的MapReduce程序来进行计数统计。
要启动好,需要注意,以下三步不是在hbase shell中输入的,是直接在node1上输入
①yarn,start-yarn.sh;
②启动historyserver,mr-jobhistory-daemon.sh start historyserver或者mapred --daemon start historyserver
语法如下:
③ $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter '表名'
3.扫描操作(查询大量数据)
在HBase,我们可以使用scan命令来扫描HBase中的表。
语法:scan '表名'
# 查询所有数据,但是避免查询大表(大量数据) scan 'ORDER_INFO',{FORMATTER => 'toString'} # 只查询三条数据,中文显示 scan 'ORDER_INFO', {LIMIT => 3, FORMATTER => 'toString'} # 查询指定列 scan 'ORDER_INFO', {LIMIT => 3, COLUMNS => ['C1:STATUS', 'C1:PAYWAY'], FORMATTER => 'toString'}
4.根据rowkey来查询(添加过滤器)
要查询指定ROWKEY的数据,需要添加过滤器,使用ROWPREFIXFILTER。
语法为:scan '表名', {ROWPREFIXFILTER => 'rowkey'}
scan 'ORDER_INFO', {ROWPREFIXFILTER => '02602f66-adc7-40d4-8485-76b5632b5b53', COLUMNS => ['C1:STATUS', 'C1:PAYWAY'], FORMATTER => 'toString'}
5.过滤器Filter
文档:http://hbase.apache.org/2.2/devapidocs/index.html
在HBase的shell中,通过show_filters指令,可以查看到HBase中内置的一些过滤器。
例 rowkey 过滤器:查询订单的ID为:02602f66-adc7-40d4-8485-76b5632b5b53
scan 'ORDER_INFO', {FILTER => "RowFilter(=,'binary:02602f66-adc7-40d4-8485-76b5632b5b53')"}
例列过滤器SingleColumnValueFilter:查询状态为「已付款」的订单
scan 'ORDER_INFO', {FILTER => "SingleColumnValueFilter('C1', 'STATUS', =, 'binary:已付款')", FORMATTER => 'toString'}
例:多个过滤器
scan 'ORDER_INFO', {FILTER => "SingleColumnValueFilter('C1', 'PAYWAY', = , 'binary:1') AND SingleColumnValueFilter('C1', 'PAY_MONEY', > , 'binary:3000')", FORMATTER => 'toString'}
6.HBase计数器INCR
incr可以实现对某个单元格的值进行原子性计数。
语法如下:incr '表名','rowkey','列蔟:列名',累加值(默认累加1)
注意:使用put创建的列是不能实现累加的,如果某一列要实现计数功能,必须要使用incr来创建对应的列
7.shell管理操作
标签:INFO,scan,ORDER,过滤器,HBase,C1 From: https://www.cnblogs.com/hmy22466/p/17696196.html