HBase常用shell操作
行(row),列(Column),列蔟(Column Family),列标识符(Column Qualifier)和单元格(Cell)
行:由一个个行键(rowkey)和一个多个列组成。其中rowkey是按照字典顺序排序
列:列由列蔟(Column Family)和列限定符(Column Qualifier)组成 例如:C1:ID
列蔟:创建表时就已经创建,是固定的,所有表中的每一行都有相同的列蔟,列蔟和列标识符通过绑定在一起用:连接
列标识符(列名):为存储的values数据提供索引,不同的行可能存在不同的列标识符
单元格:是行、列蔟和列标识符的组合,包含一个值和一个时间戳,以十六进制进制进行显示存储
创建表
首先先启动hbase shell
create '表名','列蔟名'... (一个表可以包含若干个列蔟)
create 'ORDER_INFO','001'
查看表
list '表名'
删除表(先禁用表才能删除)
disable '表名 '
drop '表名'
添加数据
put '表名','ROWKEY','列蔟名(Column Family):列限定符(Column Qualifier)','值'
put 'ORDER_INFO','000001','C1:ID','000001'
put 'ORDER_INFO','000001','C1:STATUS','已提交'
put 'ORDER_INFO','000001','C1:PAY_MONEY',4070
put 'ORDER_INFO','000001','C1:PAYWAY',1
put 'ORDER_INFO','000001','C1:USER_ID',4944191
put 'ORDER_INFO','000001','C1:OPERATION_DATE','2020-04-25 12:09:16'
put 'ORDER_INFO','000001','C1:CATEGORY','手机'
查看添加的数据
get '表名','rowkey'
get 'ORDER_INFO','000001'
get 'ORDER_INFO','000001','C1:ID'
显示中文:get命令最后添加 {FORMATTER => 'toString'} FORMATTER要大写
查看表结构
describe 'ORDER_INFO'
更新操作
更新指定的列(每执行一次put,时间戳都会发生改变)
put 'ORDER_INFO', '000001', 'C1:STATUS', '已付款'
删除操作
删除指定的列
delete '表名', 'rowkey', '列蔟:列'
delete 'ORDER_INFO','000001','C1:STATUS'
注意:此处HBase默认会保存多个时间戳的版本数据,所以这里的delete删除的是最新版本的列数据。
删除前
删除后
删除整行数据
deleteall '表名','rowkey'
deleteall 'ORDER_INFO','000001'
清空表
truncate "表名"
truncate 'ORDER_INFO'
扫描操作
scan '表名' (注意避免扫描大表)
scan 'ORDER_INFO'
扫描前两条
scan 'ORDER_INFO',{LIMIT=>2}
按固定rowkey扫描
hbase(main):079:0> scan 'ORDER_INFO',{ROWPREFIXFILTER=>'000001'}
范围查询 STARTROW(开始rowkey) ENDROW(结束rowkey)
scan 'ORDER_INFO', {STARTROW => 'row2'}
scan 'ORDER_INFO', {STARTROW => 'row2',ENDROW => 'row2'}
scan 'ORDER_INFO', {STARTROW => 'row2',ENDROW => 'row3'}
加载表,统计表记录数,禁用启用表
加载表
在linux中直接执行hbase shell 文件路径 (不要在shell中执行)
统计表记录数
count ‘表名’, {INTERVAL => intervalNum, CACHE => cacheNum} (每intervalNum告诉一次,每次刷cacheNum条)
INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
当有大量数据时可以进行MapReduce程序统计
启动yarn集群
start-yarn.sh
启动history server
mr-jobhistory-daemon.sh start historyserver
执行命令:$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'ORDER_INFO'
禁用启用表
禁用表:disable ‘表名’
启动表:enable ‘表名’
测试表是否存在:exists ‘表名’
Hbase计数器
要使用incr来初始化一个列,不能用put操作
可以使用get_counter的指令来获取计数器的操作,使用get是获取不到的
get_counter 'NEWS_VISIT_CNT','0000000020_01:00-02:00','C1:CNT'
incr '表名','rowkey','列蔟:列名',xxx(xxx是增加的值,不写就是默认加1)
incr 'NEWS_VISIT_CNT','0000000020_01:00-02:00','C1:CNT',2
shell管理命令
status:显示服务器状态
whoaim:显示HBase当前用户
describe:展示表结构信息
exists:检查表是否存在,适用于表量特别多的情况
Hive整合HBase
create external table students_hbase
(
id string,
name string,
age string,
gender string,
clazz string
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ("hbase.columns.mapping" = "
:key,
info:name,
info:age,
info:gender,
info:clazz
")
tblproperties("hbase.table.name" = "default:students");
HBase常用shell操作的更多相关文章
- HBASE与hive对比使用以及HBASE常用shell操作。与sqoop的集成
2.6.与 Hive 的集成2.6.1.HBase 与 Hive 的对比1) Hive(1) 数据仓库Hive 的本质其实就相当于将 HDFS 中已经存储的文件在 Mysql 中做了一个双射关系,以方 ...
- 原 HBase 常用Shell命令
HBase 常用Shell命令 1.进入hbase shell console $HBASE_HOME/bin/hbase shell 如果有kerberos认证,需要事先使用相应的keytab进行一 ...
- (转)HBase 常用Shell命令
转自:http://my.oschina.net/u/189445/blog/595232 hbase shell命令 描述 alter 修改 ...
- Hbase之shell操作
一. 介绍 HBase是一个分布式的.面向列的 开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源 ...
- HBase的Shell操作
1.进入命令行 bin/hbase shell 2.输入help 查看各种命令组. 命令是分组的,可以执行help 'general'查看general组的命令. 3.常用命令 --显示有哪些表 li ...
- HBase 学习之路(五)——HBase常用 Shell 命令
一.基本命令 打开Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 help # 获取命令的详细信息 help 'status' 1.2 查看服务器状态 statu ...
- HBase 系列(五)——HBase 常用 Shell 命令
一.基本命令 打开 Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 help # 获取命令的详细信息 help 'status' 1.2 查看服务器状态 stat ...
- 【hbase】hbase的shell操作笔记
HBase Shell $ ./bin/hbase shell # 进入交互界面 DDL操作: create:创建表(默认命名空间为default) # create '表名','列族1','列族2' ...
- HBase 常用Shell命令
两个月前使用过hbase,现在最基本的命令都淡忘了,留一个备查~ 进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使 ...
随机推荐
- 如何在pyqt中实现窗口磨砂效果
磨砂效果的实现思路 这两周一直在思考怎么在pyqt上实现窗口磨砂效果,网上搜了一圈,全都是 C++ 的实现方法.正好今天查python的官方文档的时候看到了 ctypes 里面的 HWND,想想倒不如 ...
- MybatisPlus多表连接查询
一.序言 (一)背景内容 软件应用技术架构中DAO层最常见的选型组件为MyBatis,熟悉MyBatis的朋友都清楚,曾几何时MyBatis是多么的风光,使用XML文件解决了复杂的数据库访问的难题.时 ...
- 解决github.com无法访问
解决 绕过DNS解析,直接使用本地DNS记录进行直接跳转. DNS查询 在浏览器中打开DNS查询网站:http://tool.chinaz.com/dns?type=1&host=github ...
- synchronize类锁用父类作为锁能否锁住代码块
如果有一个父类,Demo如下 public class Demo { public void demo1(){ synchronized (Demo.class){ while (true){ Sys ...
- Docker 与 K8S学习笔记(二十二)—— 高效使用kubectl的小技巧
kubectl作为我们主要的操作K8S的工具,其具备非常丰富的功能,但是如果不经过打磨,使用起来还是存在诸多不便,今天我们来看看如何将我们的kubectl打磨的更加易用. 一.命令自动补全 kubec ...
- Maven获取resources的文件路径、读取resources的文件
路径问题一切要看编译后的文件路径 比如,源文件路径是: 而编译后的文件路径为: 也就是说,resources文件夹下的文件在编译后,都是为根目录,这种情况下,比如我要读取resources 文件夹下的 ...
- Solution -「LOJ #150」挑战多项式 ||「模板」多项式全家桶
\(\mathcal{Description}\) Link. 给定 \(n\) 次多项式 \(F(x)\),在模 \(998244353\) 意义下求 \[G(x)\equiv\left\{ ...
- Solution -「HNOI 2019」「洛谷 P5293」白兔之舞
\(\mathcal{Description}\) Link. 不想概括题意.jpg \(\mathcal{Solution}\) 定义点集 \(S_c=\{(u,v)|v=c\}\):第 ...
- 初识面向对象(Day17-Day18)
人狗大战的游戏 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍 ...
- Thread.currentThread().getName() 和 this.getName()区别详解
currentThread的详解 currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用.我们先来看一眼源码. 是一个native方法.直接与系统层 ...