首页 > 系统相关 >Hbase_Shell

Hbase_Shell

时间:2022-12-02 14:35:22浏览次数:48  
标签:Shell rowkey3 列族 指定 baseInfo Student put Hbase

Hbase 常用 Shell 命令

一、基本命令

打开 Hbase Shell:

# hbase shell

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 删除指定行、指定行中的列

# 删除指定行
deleteall '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(限制查询结果行数),STARTROWROWKEY 起始行,会先根据这个 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')"

标签:Shell,rowkey3,列族,指定,baseInfo,Student,put,Hbase
From: https://www.cnblogs.com/cw2blog/p/16944374.html

相关文章

  • hbaseSide
    1.格式CREATETABLEtableName(columnFamily:columnNametypeasalias,...PRIMARYKEY(keyInfo),PERIODFORSYSTEM_TIME)WITH(type......
  • MYSQL BACKUP的SHELL相关语句
    #!/bin/bash###############Basicparameters##########################DAY=`date+%Y%m%d`Environment=$(/sbin/ifconfig|grep"inetaddr"|head-1|grep-v"127.0.......
  • 笔记: MYSQL BACKUP的SHELL相关语句
    #!/bin/bash ###############Basicparameters########################## DAY=`date+%Y%m%d` Environment=$(/sbin/ifconfig|grep"inetaddr"|head-1|grep-......
  • 16Linux大数据定制篇Shell
    ShellShell快速入门实例sh./myShell.sh可在无执行权限下强制执行(了解)变量Shell变量介绍输出系统变量自定义变量静态变量(readonly)不能unset基础规则......
  • Linux将shell脚本设置为自动启动项
    Linux系统下如何设置开机启动项1.修改/etc/rc.d/rc.local文件,在rc.local后面加上你的shell脚本命令赋值权限chmodu+xapp.sh修改后的rc.local如下#!/bin/bash#THISFILE......
  • SHELL脚本
    完成一个shell脚本,脚本的作用。1.运行脚本可以显示出本机的ip地址2.如果ip地址中有3这个数字,那么就打印出当前的系统时间3.如果ip地址中不含3这个数字,就批量建立用户mag......
  • 简单的一键部署LNMP架构shell脚本
    两种部署方式:一、手工搭建分析:最终效果,通过Nginx搭建两个网站blog和zh,通过域名访问。在lnmp的基础上,域名访问,要么搭建DNS服务器,要么修改主机hosts文件。1、安装Nginx:进入y......
  • (转)shell 大型脚本工具开发实战
    原文:https://www.cnblogs.com/crazymagic/p/11173162.html拆分脚本功能,抽象函数1、functionget_all_group返回进程组列表字符串2、functionget_all_process返回进......
  • (转)第六课 Shell脚本编程-Shell脚本操作数据库实战
    原文:https://blog.csdn.net/aa18855953229/article/details/127380172第一节数据导入和授权测试数据school.sql--建表--学生表CREATETABLE`student`(`s_id`VARCH......
  • (转)第七课 Shell脚本编程-大型脚本工具开发实战
    原文:https://blog.csdn.net/aa18855953229/article/details/127380188第一节需求描述Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后......