每日总结11
HBase学习4(导入数据、计数器、scan扫描、过滤器)
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'}
1
|
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来创建对应的列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署