HBaseShell操作

HBaseShell

https://cloud.tencent.com/developer/article/1336648

1.进入Hbase shell命令
	$>hbase shell
#命名空间级别:
    #列出所有命名空间
    hbase> list_namespace    
    #新建命名空间
    hbase> create_namespace 'ns1' 
    #删除命名空间
    hbase> drop_namespace 'ns1'    
    #修改命名空间
#表级别:
    #列出所有表
    hbase> list    
    #列出指定命名空间下的所有表
    hbase> list_namespace_tables 'ns1'    
    #新建一个以命名空间ns1的表t1,列族为cf1。
    hbase> create 'ns1:t1', 'cf1'        
    #删除表
    hbase> disable 'ns1:t1'
    hbase> drop 'ns1:t1'
    #修改表名
    HBase没有rename命令,可以通过快照功能修改表名,详见下述。
    #查看表内容
    hbase> scan 'ns1:t1', {LIMIT=>5} # 查看前5行数据
    #插入    
    hbase> put 'ns1:t1', 'r1', 'cf1:c1', 'value'
    #查看
    hbase> get 'ns1:t1', 'r1'

#表分区(region分裂多个region以及region合并)
    #建表预分区
    create 'gld:student', 'cf1', {SPLITS => ['1', '2', '3', '4', '5', '6', '7', '8', '9']}
    每个分区的Start Key和End Key分别为:(~, 1)[1, 2)[2, 3)[3, 4)[4, 5)[5, 6)[6, 7)[7, 8)[8, 9)[9, ~) 


1.1 获取帮助

# 获取帮助

help

# 获取命令的详细信息

help 'status'
1.2 查看服务器状态
status
1.3 查看版本信息
version

2.1 查看所有表
list
2.2 创建表
命令格式: create ‘表名称’, ‘列族名称1’,‘列族名称2’,‘列名称N’

# 创建一张名为Student的表,包含基本信息(baseInfo)、学校信息(schoolInfo)两个列族

create 'Student','baseInfo','schoolInfo'
2.3 查看表的基本信息
命令格式:desc ‘表名’
describe 'Student'
2.4 表的启用/禁用
enable和disable可以启用/禁用这个表,is_enabled和is_disabled来检查表是否被禁用

# 禁用表

disable 'Student'

# 检查表是否被禁用

is_disabled 'Student'

# 启用表

enable 'Student'

# 检查表是否被启用

is_enabled 'Student'
2.5 检查表是否存在
exists 'Student'
2.6 删除表

# 删除表前需要先禁用表

disable 'Student'

# 删除表

drop 'Student'



三、增删改
3.1 添加列族
命令格式: alter ‘表名’, ‘列族名’

alter 'Student', 'teacherInfo'
3.2 删除列族
命令格式:alter ‘表名’, {NAME => ‘列族名’, METHOD => ‘delete’}

alter 'Student', {NAME => 'teacherInfo', METHOD => 'delete'}
3.3 更改列族存储版本的限制
默认情况下,列族只存储一个版本的数据,如果需要存储多个版本的数据,则需要修改列族的属性。修改后可通过desc命令查看。

alter 'Student',{NAME=>'baseInfo',VERSIONS=>3}
3.4 插入数据
命令格式:put ‘表名’, ‘行键’,‘列族:列’,‘值’

注意:如果新增数据的行键值、列族名、列名与原有数据完全相同,则相当于更新操作

put 'Student', 'rowkey1','baseInfo:name','tom'
put 'Student', 'rowkey1','baseInfo:birthday','1990-01-09'
put 'Student', 'rowkey1','baseInfo:age','29'
put 'Student', 'rowkey1','schoolInfo:name','Havard'
put 'Student', 'rowkey1','schoolInfo:localtion','Boston'

put 'Student', 'rowkey2','baseInfo:name','jack'
put 'Student', 'rowkey2','baseInfo:birthday','1998-08-22'
put 'Student', 'rowkey2','baseInfo:age','21'
put 'Student', 'rowkey2','schoolInfo:name','yale'
put 'Student', 'rowkey2','schoolInfo:localtion','New Haven'

put 'Student', 'rowkey3','baseInfo:name','maike'
put 'Student', 'rowkey3','baseInfo:birthday','1995-01-22'
put 'Student', 'rowkey3','baseInfo:age','24'
put 'Student', 'rowkey3','schoolInfo:name','yale'
put 'Student', 'rowkey3','schoolInfo:localtion','New Haven'

put 'Student', 'wrowkey4','baseInfo:name','maike-jack'

3.5 获取指定行、指定行中的列族、列的信息

# 获取指定行中所有列的数据信息

get 'Student','rowkey3'

# 获取指定行中指定列族下所有列的数据信息

get 'Student','rowkey3','baseInfo'

# 获取指定行中指定列的数据信息

get 'Student','rowkey3','baseInfo:name'
3.6 删除指定行、指定行中的列

# 删除指定行

delete 'Student','rowkey3'

# 删除指定行中指定列的数据

delete 'Student','rowkey3','baseInfo:name'


四、查询
hbase中访问数据有两种基本的方式:

按指定rowkey获取数据:get方法;
按指定条件获取数据:scan方法。
scan可以设置begin和end参数来访问一个范围内所有的数据。get本质上就是begin和end相等的一种特殊的scan。

4.1Get查询

# 获取指定行中所有列的数据信息

get 'Student','rowkey3'

# 获取指定行中指定列族下所有列的数据信息

get 'Student','rowkey3','baseInfo'

# 获取指定行中指定列的数据信息

get 'Student','rowkey3','baseInfo:name'

4.2 查询整表数据
scan 'Student'

4.3 查询指定列簇的数据
scan 'Student', {COLUMN=>'baseInfo'}

4.4 条件查询

# 查询指定列的数据

scan 'Student', {COLUMNS=> 'baseInfo:birthday'}

除了列(COLUMNS)修饰词外,HBase还支持Limit(限制查询结果行数),STARTROW(ROWKEY起始行,会先根据这个key定位到region,再向后扫描)、STOPROW(结束行)、TIMERANGE(限定时间戳范围)、VERSIONS(版本数)、和FILTER(按条件过滤行)等。

如下代表从rowkey2这个rowkey开始,查找下两个行的最新3个版本的name列的数据:

scan 'Student', {COLUMNS=> 'baseInfo:name',STARTROW => 'rowkey2',STOPROW => 'wrowkey4',LIMIT=>2, VERSIONS=>3}

4.5 条件过滤
Filter可以设定一系列条件来进行过滤。如我们要查询值等于24的所有数据:

scan 'Student', FILTER=>"ValueFilter(=,'binary:24')"

值包含yale的所有数据:

scan 'Student', FILTER=>"ValueFilter(=,'substring:yale')"

列名中的前缀为birth的:

scan 'Student', FILTER=>"ColumnPrefixFilter('birth')"
FILTER中支持多个过滤条件通过括号、AND和OR进行组合:

# 列名中的前缀为birth且列值中包含1998的数据

scan 'Student', FILTER=>"ColumnPrefixFilter('birth') AND ValueFilter ValueFilter(=,'substring:1998')"
PrefixFilter用于对Rowkey的前缀进行判断:

scan 'Student', FILTER=>"PrefixFilter('wr')"

热门文章

暂无图片
编程学习 ·

毛毛爸爸手记-2

http://blog.sina.com.cn/s/blog_4bf99d0601000825.html今天,毛爸从天鹅和鸭子的故事说起。从前......一只美丽的天鹅有一天落在地上时,看见了一只健壮的鸭子,她立刻被这只帅气的鸭子所打动,她惊诧于鸭子不同于她同类的模样,不同于她同类气质,是那么的有型,那么的另类。…
暂无图片
编程学习 ·

Unity学习(C#)——正则表达式

正则表达式:专门用于字符串处理的语言。 可以 解决: 1.检索:获取我们想要的部分 2.匹配:判断给定字符串是否符合正则表达式的过滤逻辑。即表述了字符串书写的规则。 定位元字符 $、^ (要用using System.Text.RegularExpressions;) $在结尾处插入 ^在开头处插入string s =…
暂无图片
编程学习 ·

ITEST考试助手 --- 记一次我与ITEST的拉锯战

文章目录0x0 前言0x1 1.0版本 -- 解除限制我方进攻0x2 2.0版本 - 自动翻译与解析听力我方进攻ITEST方防御0x3 3.0版本 -- 解除切屏限制与添加翻译助手反制防御我方进攻ITEST防御0x4 4.0版本 - 全随机与ajax拦截反制防御我方进攻ITEST防御0x5 5.0版本 - 只读属性的胜利反制防御我…
暂无图片
编程学习 ·

Java使用poi将office文件转为html

一、前言 功能需求:上传office文档,并提供文件在线预览。 解决方案:使用Aspose.cells.jar包,将文档转换为pdf格式; 使用libreOffice,将文档转换为pdf格式; 使用poi将文档转换为html格式。方案一:通过Aspose的方式,该功能是付费版,需要破解,所以是能抛弃。 方案二,使…
暂无图片
编程学习 ·

抖音上卖什么最热销?抖音上最热销的产品是什么?

抖音带货卖什么类型产品热门,抖音带货做哪个领域好自去年六月第一批100个内测账号入驻以来,抖音购物车至今已运营一年有余。随着这一年来功能打磨、生态打通等不断完善,抖音购物车已成为KOL带货变现的绝佳途径之一。第一种,在抖音里卖减肥产品。现在的人生活条件都比较好,…
暂无图片
编程学习 ·

MySQL基础(十二):锁机制

文章目录一、锁的概述1、什么是锁?2、锁的分类二、MySQL中的三种锁1、表锁(偏读)(1)表锁的特点(2)表加读锁、写锁的语法(3)读锁特性实验(4)写锁特性实验(3)结论2、行锁(偏写)(1) 由于行锁支持事务,复习老知识(2)建表sql(3)行锁加读锁、写锁语法(4)读锁…
暂无图片
编程学习 ·

面试必问之 == 与 equals

== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)。equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:情况1:类没有覆盖 equals() 方法。则通过 equals() 比…
暂无图片
编程学习 ·

火狐浏览器网页不显示文字内容

网页的内容是个表格。表头只显示了 一部分内容。问题页面如下:但是在谷歌浏览器里显示正常。然后发现火狐里面多个标签他只显示一行,后面的都消失了。改好后效果如下:
暂无图片
编程学习 ·

Python函数图像绘制(使用海龟库)

序言 如果我们想绘制函数图像,百度上的实现方法琳琅满目,而大多都是使用matlab或其他复杂的库。对于初学者十分头疼。今天我将带着大家一起使用海龟库绘制函数图像。程序十分简单,相对的也不是很美观,大家可以再完善。 准备工作 import turtle as t t.speed(0)#绘制速度达到…
暂无图片
编程学习 ·

硬核!想要了解MyBatis执行器的小伙伴必看!

深入理解MyBatis执行器的设计理念 文章目录深入理解MyBatis执行器的设计理念JDBC中的statement类型关于Statement简单执行器和PreparedStatement预处理执行器MyBatis的执行过程是怎样的?SqlSessionExecutorExecutor的种类 JDBC中的statement类型Statement(简单执行器) 作用:…
暂无图片
编程学习 ·

Linux 防火墙安装与配置

IPTABLES构建防火墙应用iptables 介绍iptables 常用规则命令常见参数说明 iptables 介绍iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的“安全框架“中,这个“安全框架”才是真正的防火墙,这个框…
暂无图片
编程学习 ·

vc++ GDI+实现以鼠标为中心缩放图片(并且可以拖动)

按以下步骤操作,即可实现。1. 首先创建一个基于对话框的MFC程序,然后把下面两个文件分别保存为.h文件和 .cpp文件//InitGdiplus.h #pragma once#include <GdiPlus.h> using namespace Gdiplus;class CInitGdiplus { public:CInitGdiplus(void);~CInitGdiplus(void);pri…
暂无图片
编程学习 ·

内网渗透 -- 获取内网浏览器历史记录等相关信息

“我喜欢你,做我女朋友可以吗?”电话的那头没有反应,男生沉不住气了,小心翼翼地问着,“你在干嘛呀?”“我在点头。”---- 网易云热评环境:小攻:Kali 2020,ip:192.168.1.133小受:win7 x86,ip:192.168.1.137一、生成木马及监听主机参考上篇文章:二、获取浏览器历史…
暂无图片
编程学习 ·

斐波那契(黄金分割法)查找算法(FibonacciSearch)

斐波那契(黄金分割法)查找算法(FibonacciSearch) 1.基本介绍1)黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神奇的数…
暂无图片
编程学习 ·

CentOS系统Docker搭建MySQL服务(解决Docker MySQL无法输入中文问题)

MySQLMySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。 MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。Docker 搭建MySQL服务…