Hbase 王者荣耀数据表 HBase常用Shell命令

 大数据课本:

 

 HBase常用Shell命令

在使用具体的Shell命令操作HBase数据之前,需要首先启动Hadoop,然后再启动HBase,并且启动HBase Shell,进入Shell命令提示符状态,具体命令如下:

$ cd /usr/local/hadoop
$ ./sbin/start-dfs.sh
$ cd /usr/local/hbase
$ ./bin/start-hbase.sh
$ ./bin/hbase shell
1 在HBase中创建表

假设这里要创建一个表student,该表包含SnameSsexSageSdeptcourse等字段。需要注意的是,在关系型数据库(比如MySQL)中,需要首先创建数据库,然后再创建表,但是,在HBase数据库中,不需要创建数据库,只要直接创建表就可以。在HBase中创建student表的Shell命令如下:

hbase> create 'student','Sname','Ssex','Sage','Sdept','course'

对于HBase而言,在创建HBasae表时,不需要自行创建行健,系统会默认一个属性作为行键,通常是把put命令操作中跟在表名后的第一个数据作为行健。

创建完student表后,可通过describe命令查看student表的基本信息,命令如下:

hbase>describe 'student'

可以使用list命令查看当前HBase数据库中已经创建了哪些表,命令如下:

hbase> list
2 添加数据

HBase使用put命令添加数据,一次只能为一个表的一行数据的一个列(也就是一个单元格,单元格是HBase中的概念)添加一个数据,所以,直接用Shell命令插入数据效率很低,在实际应用中,一般都是利用编程操作数据。因为这里只要插入1条学生记录,所以,我们可以用Shell命令手工插入数据,命令如下:

hbase> put 'student','95001','Sname','LiYing'

上面的put命令会为student表添加学号为95001、名字为LiYing的一个单元格数据,其行键为95001,也就是说,系统默认把跟在表名student后面的第一个数据作为行健。

下面继续添加4个单元格的数据,用来记录LiYing同学的相关信息,命令如下:

hbase> put 'student','95001','Ssex','male'
hbase> put 'student','95001','Sage','22'
hbase> put 'student','95001','Sdept','CS'
hbase> put 'student','95001','course:math','80'
3 查看数据

HBase中有两个用于查看数据的命令:

  • get命令:用于查看表的某一个单元格数据;

  • scan命令:用于查看某个表的全部数据。

比如,可以使用如下命令返回student表中95001行的数据:

hbase> get 'student','95001'

下面使用scan命令查询student表的全部数据:

hbase> scan 'student'
4 删除数据

在HBase中用delete以及deleteall命令进行删除数据操作,二者的区别是:delete命令用于删除一个单元格数据,是put的反向操作,而 deleteall命令用于删除一行数据。

首先,使用delete命令删除student表中95001这行中的Ssex列的所有数据,命令如下:

hbase > delete 'student','95001','Ssex'

然后,使用deleteall命令删除student表中的95001行的全部数据,命令如下:

hbase> deleteall 'student','95001'
5 删除表

删除表需要分两步操作,第一步先让该表不可用,第二步删除表。比如,要删除student表,可以使用如下命令:

hbase> disable 'student'  
hbase> drop 'student'
6 查询历史数据

在添加数据时,HBase会自动为添加的数据添加一个时间戳。在修改数据时,HBase会为修改后的数据生成一个新的版本(时间戳),从而完成“改”操作,旧的版本依旧保留,系统会定时回收垃圾数据,只留下最新的几个版本,保存的版本数可以在创建表的时候指定。

为了查询历史数据,这里创建一个teacher表,首先,在创建表的时候,需要指定保存的版本数(假设指定为5),命令如下:

hbase> create 'teacher',{NAME=>'username',VERSIONS=>5}

然后,插入数据,并更新数据,使其产生历史版本数据,需要注意的是,这里插入数据和更新数据都是使用put命令,具体如下:

hbase> put 'teacher','91001','username','Mary'
hbase> put 'teacher','91001','username','Mary1'
hbase> put 'teacher','91001','username','Mary2'
hbase> put 'teacher','91001','username','Mary3'
hbase> put 'teacher','91001','username','Mary4'  
hbase> put 'teacher','91001','username','Mary5'

查询时,默认情况下回显示当前最新版本的数据,如果要查询历史数据,需要指定查询的历史版本数,由于上面设置了保存版本数为5,所以,在查询时制定的历史版本数的有效取值为1到5,具体命令如下:

hbase> get 'teacher','91001',{COLUMN=>'username',VERSIONS=>5}
hbase> get 'teacher','91001',{COLUMN=>'username',VERSIONS=>3}
7 退出HBase数据库

最后退出数据库操作,输入exit命令即可退出,命令如下:

hbase> exit

注意,这里退出HBase数据库是退出HBase Shell,而不是停止HBase数据库后台运行,执行exit后,HBase仍然在后台运行,如果要停止HBase运行,需要使用如下命令:

$ bin/stop-hbase.sh

 

作业:使用Shell命令完成以下内容。(每道题目不仅要给出命令还要有运行结果截图)

  1. 创建《王者荣耀》游戏玩家信息表gamer,包含列族personalInfo(个人信息)、recordInfo(战绩信息)、assetsInfo(资产信息)。

create 'gamer', 'personalInfo', 'recordInfo', 'assetsInfo'

  1. 查看表的详细信息

describe 'gamer'

  1. 修改gamer表中recordInfo列族的TTL信息设置为180天。

alter 'gamer',{NAME=>'recordInfo',TTL=>'15552000'}

  1. 向gamer表添加数据

personalInfo

recordInfo

assetInfo

nickname

gameID

ranking

integral

row-001

QGhappy.Snow

000000

One

10000

row-002

XQMaster

111111

Two

20000

put 'gamer','row-001','personalInfo:nickname','QGhappy.Snow'

put 'gamer','row-001','recordInfo:ranking','one'

put'gamer','row-001','assetsInfo:integral','10000'

put 'gamer','row-001','personalInfo:gameId','000000'

put 'gamer','row-002','personalInfo:nickname','XQMaster'

put 'gamer','row-002','recordInfo:ranking','two'

put 'gamer','row-002','assetsInfo:integral','20000'

put 'gamer','row-002','personalInfo:gameId','111111'

  1. 查询gamer表中所有数据

scan 'gamer'

  1. 查找gamer表中行键为row-001的所有单元

get 'gamer', 'row-001'

  1. 查找gamer表中行键为row-001,列键为personalInfo:nickname的单元

get 'gamer', 'row-001', {COLUMN => 'personalInfo:nickname'}

  1. 查找gamer表中行键为row-001,列族为personalInfo的单元

get 'gamer', 'row-001', {COLUMN => 'personalInfo'}

  1. 删除gamer表中行键为row-001,列键为personalInfo:nickname的单元数据

delete 'gamer', 'row-001', 'personalInfo:nickname'

  1. 删除gamer表中行键为row-001的一行数据

deleteall 'gamer', 'row-001'

  1. 删除gamer表中所有数据。

truncate 'gamer'

  1. 删除gamer表

disable 'gamer'

drop 'gamer'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/285800.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--进程(1)

目录 前言 1.冯诺依曼体系结构 2. 操作系统(Operator System)--第一个被加载的软件 3.进程 3.1基本概念 3.2Linux中的PCB 3.3通过系统调用创建子进程-fork初识 fork:创建一个子进程 为什么要创建子进程? fork的原理: 进一步了解fo…

关于OceanBase中旁路导入的应用分享

背景 前段时间,在用户现场协助进行OceanBase的性能测试时,我注意到用户常常需要运用 insert into select 将上亿行的数据插入到一张大宽表里,这样的批量数据插入操作每次都需要耗时半个小时左右。对这一情况,我提议用户尝试采用旁…

【UE5】动画蒙太奇简述

项目资源文末百度网盘自取 动画蒙太奇基本功能 动画蒙太奇(Animation Montage) 可以将多个 动画序列(Animation Sequences) 合并为单个资产并通过蓝图播放,还可以将一个蒙太奇动画切分为多个 蒙太奇分段(M…

Prompt-RAG:在特定领域中应用的革新性无需向量嵌入的RAG技术

论文地址:https://arxiv.org/ftp/arxiv/papers/2401/2401.11246.pdf 原文地址:https://cobusgreyling.medium.com/prompt-rag-98288fb38190 2024 年 3 月 21 日 虽然 Prompt-RAG 确实有其局限性,但在特定情况下它可以有效地替代传统向量嵌入 …

外包干了5年,技术退步明显.......

先说一下自己的情况,大专生,18年通过校招进入杭州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

DC-5靶机

一.环境搭建 1.下载地址 靶机下载地址:https://download.vulnhub.com/dc/DC-5.zip 2.虚拟机配置 切换nat模式,有问题全选重试和是,打到这了,我感觉这个配置我都不用写了,启动靶机如下图所示即可 二.开始渗透 1.信…

红黑树进阶:正向与反向迭代器的实现及map、set的封装实践

文章目录 一、引言二、红黑树迭代器设计1、迭代器的基本概念和分类2、正向迭代器设计a.迭代器结构定义b.迭代器的 与 -- 3、反向迭代器设计a.反向迭代器的必要性b.反向迭代器的实现要点 4、红黑树封装迭代器 三、使用红黑树实现Map四、红黑树实现Set五、细节理解1、 typname的使…

Linux 在线yum安装: PostgreSQL 15.6数据库

Linux 在线yum安装: PostgreSQL 15.6数据库 1、PostgreSQL数据库简介2、在线安装PostgreSQL15.63、配置 PostgreSQL的环境变量4、使用默认用户登录PostgreSQL5、配置 PostgreSQL 允许远程登录6、修改 PostgreSQL 默认端口7、创建数据库和表、远程用户zyl8、pgAdmin远…

ChatGLM3 Linux 部署

1.首先需要下载本仓库: git clone https://github.com/THUDM/ChatGLM3 2.查看显卡对应的torch 版本 官方文档说明: Start Locally | PyTorch 例如: a. 先查看显卡的CUDA版本 nvcc --version 查看对应版本 Previous PyTorch Versions …

接口测试常用工具及测试方法(基础篇)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 接口一般来说有两种,一种是程序内部的接口&#xff…

家用智能洗地机哪个牌子好?4款型号让你解锁高效省力生活体验

在今天的社会中,随着生活节奏的加快,人们对于家庭清洁的需求不断增加。传统的清洁方法已经无法满足现代家庭的需求。因此,洗地机作为一种高效、方便的清洁工具,已经成为了许多家庭首选的清洁设备。然而,在市场上&#…

个人可以做知识付费网站吗

个人可以做知识付费网站吗 个人能够做学问付费网站吗?答案是肯定的!如今个人做学问付费网站并不需求太多的资金和技术支持,我们只需求购置一台效劳器或虚拟主机,然后在该主机空间上搭建一个WordPress网站,最后运用带有…

Unity-UGUI系统

UGUI是什么 UGUI是Unity引擎内自带的UI系统官方称之为:Unity Ul 是目前Unity商业游戏开发中使用最广泛的UI系统开发解决方案 它是基于Unity游戏对象的UI系统,只能用来做游戏UI功能 不能用于开发Unity编辑器中内置的用户界面 六大基础组件 概述 Canvas EventS…

光明源:农村智慧公厕主要包括哪些功能

随着乡村振兴战略的深入推进,农村面貌日新月异,生活品质也水涨船高。在这一崭新的农村画卷中,智慧公厕作为生活环境的一部分,正以其独特的魅力引领着人们对美好生活的向往。今日,让我们一同探寻农村智慧公厕的璀璨功能…

openssl 升级1.1.1.1k 到 3.0.13

下载 https://www.openssl.org/source/ tar -zxvf openssl-3.0.13.tar.gzcd openssl-3.0.13/./config enable-fips --prefix/usr/local --openssldir/usr/local/opensslmake && make install 将原有openssl备份 mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/i…

使用 STL 容器发生异常的常见原因分析与总结

目录 1、概述 2、使用STL列表中的元素越界 3、遍历STL列表删除元素时对迭代器自加处理有问题引发越界 4、更隐蔽的遍历STL列表删除元素时引发越界的场景 5、多线程同时操作STL列表时没有加锁导致冲突 6、对包含STL列表对象的结构体进行memset操作导致STL列表对象内存出异…

2024蓝桥杯每日一题(树状数组2)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一:数星星 试题二:小朋友排队 试题三:逆序对数量 试题四:火柴排队 试题一:数星星 【题目描述】 天空中有一些星星,这些星星都在…

3.18_C++_day6_作业

作业要求&#xff1a; 程序代码&#xff1a; #include <iostream>using namespace std;class Animal { private:string name;string color;int *age; public://无参构造函数Animal(){cout << "Animal::无参构造函数" << endl;}//有参构造函数Anim…

【计算机】——51单片机——持续更新

单片机是一种内部包含CPU、存储器和输入/输出接口等电路的集成电路&#xff08;IC芯片&#xff09; 单片机是单片微型计算机&#xff08;Single Chip Microcomputer&#xff09;的简称&#xff0c;用于控制领域&#xff0c;所以又称为微型控制器&#xff08;Microcontroller U…

Python零基础---爬虫技术相关

python 爬虫技术&#xff0c;关于数据相关的拆解&#xff1a; 1.对页面结构的拆解 2.数据包的分析&#xff08;是否加密了参数&#xff09;&#xff08;Md5 aes&#xff09;难易程度&#xff0c;价格 3.对接客户(433,334) # 数据库 CSV 4.结单&#xff08;发一部分数据&a…