版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HBase数据库应用案例教程2HBaseShell项目项目导读HBaseShell是HBase数据库自带的命令行工具。通过HBaseShell,用户可以直接使用命令来完成数据库的常见操作,无须编写额外的代码或使用其他工具。这种交互方式简单直观,使得用户能够更加轻松地使用HBase,同时也为用户提供了最基本的学习和探索HBase功能的途径。知识目标掌握常规操作命令的格式,如help、status、version命令等。掌握数据定义命令的格式,如create、list、describe命令等。掌握数据操作命令的格式,如put、get、scan、delete命令等。能力目标能够使用HBaseShell与HBase进行交互。素质目标增强主动思考、积极寻求问题解决方法的意识。提高隐私保护意识,树立正确的价值观。项目分析使用HBaseShell提供的各种命令,用户可以轻松地与HBase进行交互,如创建、删除和修改表,插入、更新和查询数据等。本项目就以学生信息表为例,介绍常用HBaseShell命令的格式,然后通过创建并操作用户行为数据表,练习HBaseShell的综合应用。项目导航常规操作命令1数据定义命令2数据操作命令301常规操作命令问题导入全班学生以3~5人为一组,各组选出组长。组长组织组员扫码观看“什么是Shell”和“使用HBaseShell操作HBase的好处”视频,讨论并回答下列问题。问题1:说一说你对Shell的理解。问题2:简述使用HBaseShell操作HBase的好处。什么是Shell使用HBaseShell
操作HBase的好处常规操作命令HBase启动成功后,输入以下命令可进入Shell环境,如下图所示。Shell环境[root@localhost~]#hbaseshell常规操作命令HBase的单机模式、伪分布式模式和完全分布式模式有什么区别?课堂讨论2.1.1查看帮助熟练使用
help
命令,可在不借助网络或其他参考资料的情况下快速获取命令的帮助信息。help命令格式如下。help['命令名']2.1.1查看帮助【实例2-1】
查看HBaseShell中的所有命令。help语句执行结果如图所示。实例2-1语句执行结果(部分)2.1.1查看帮助【实例2-2】
查看create命令的帮助信息。help'create'语句执行结果如图所示。实例2-2语句执行结果(部分)2.1.1查看帮助在HBaseShell中,命令名称以及命令格式中的参数在使用时需要区分大小写吗?课堂讨论2.1.2查看状态使用status命令可查看HBase集群的状态信息,其命令格式如下。//查看集群的状态信息statusstatus'summary'//查看集群最简洁的状态信息status'simple'//查看集群详细的状态信息status'detailed'2.1.2查看状态status命令不加参数时,status语句表示什么?课堂讨论2.1.2查看状态【实例2-3】
查看HBase集群的状态信息。status语句执行结果如图所示。实例2-3语句执行结果2.1.2查看状态【实例2-4】
查看HBase集群详细的状态信息。status'detailed'语句执行结果如图所示。实例2-4语句执行结果(部分)2.1.3查看版本【实例2-5】
查看当前环境中HBase的版本信息。version语句执行结果如图所示。使用version命令可查看HBase的版本信息,其命令格式如下。version实例2-5语句执行结果2.1.4查看当前用户【实例2-6】
查看当前用户的详细信息。whoami语句执行结果如图所示。使用whoami命令可查看当前用户的详细信息,其命令格式如下。whoami实例2-6语句执行结果课堂检测查看帮助、查看状态、查看版本和查看当前用户的命令分别是什么?课堂小结常规操作命令查看帮助查看状态查看版本查看当前用户02数据定义命令问题导入提问回顾上节课知识点:(1)查看帮助的命令是什么?(2)查看状态的命令是什么?(3)查看版本的命令是什么?(4)查看当前用户的命令是什么?2.2.1创建表create
命令:可创建一个新表,须指明表名和列族名。create'表名','列族名1'[,'列族名2']…create'表名',{NAME=>'列族名1'[,VERSIONS=>版本号]}[,{NAME=>'列族名2'[,VERSIONS=>版本号]}]…方括号表示内容为可选项;符号“=>”表示将后面的值赋给指定的参数;版本号表示列族版本数,是指单元格内的数据可以保留的版本个数。2.2.1创建表【实例2-7】创建名为test的表,要求表中包含一个列族info,且使用默认参数。create'test','info'也可以使用以下语句。create'test',{NAME=>'info'}语句执行结果如下图所示。实例2-7程序运行结果2.2.1创建表【实例2-8】创建名为student的表,要求表中包含两个列族stu_info和stu_grade,且列族版本数分别为2和5。create'student',{NAME=>'stu_info',VERSIONS=>2},{NAME=>'stu_grade',VERSIONS=>5}2.2.1创建表在创建表时,如果不指定列族版本数,查询结果是什么?课堂讨论2.2.2查看所有表使用list命令可查看HBase中的所有表,其命令格式如下。list【实例2-9】查看HBase中的所有表。list语句执行结果如下图所示。实例2-9程序运行结果2.2.3查看表结构使用describe命令可查看表的结构信息,其命令格式如下。describe'表名'【实例2-10】查看student表的结构信息。describe'student'语句执行结果如右图所示。实例2-9程序运行结果2.2.3查看表结构一般情况下,describe命令可以简写为“desc”。在使用desc简写命令时,下列那种情况会出错?(a)desc‘my_table’(b)desc‘desc_table’课堂讨论2.2.4修改表结构使用
alter
命令可修改表结构,如修改列族版本数,添加或删除列族等。alter
命令格式如下。//修改列族版本数alter'表名',{NAME=>'列族名1',VERSIONS=>版本号}[,{NAME=>'列族名2',VERSIONS=>版本号}]…//添加列族alter'表名','列族名1'[,'列族名2']…//删除列族alter'表名',{NAME=>'列族名1',METHOD=>'delete'}[,{NAME=>'列族名2',METHOD=>'delete'}]…2.2.4修改表结构【实例2-11】添加列族。在student表中添加列族test。alter'student','test'语句执行结果如下图所示。实例2-11程序运行结果2.2.4修改表结构【实例2-12】修改列族版本数。将student表中列族stu_info的版本数修改为4。alter'student',{NAME=>'stu_info',VERSIONS=>4}使用describe命令查看student表当前的结构信息,如下图所示。实例2-12程序运行结果2.2.4修改表结构【实例2-13】删除列族。将student表中的列族test删除。alter'student',{NAME=>'test',METHOD=>'delete'}也可以使用以下语句。alter'student','delete'=>'test'2.2.4修改表结构当HBase表中只有一个列族时,能否将其删除?课堂讨论2.2.5判断表是否存在使用exists命令可判断指定表是否存在,其命令格式如下。exists'表名'【实例2-14】判断student表是否存在。exists'student'语句执行结果如下图所示。实例2-14程序运行结果student表存在2.2.5判断表是否存在【实例2-15】判断teacher表是否存在。exists'teacher'语句执行结果如下图所示。实例2-15程序运行结果teacher表存在2.2.6禁用/启用表1.禁用表01disable命令:禁用指定表。disable'表名'02disable_all命令:禁用所有满足正则表达式的表。disable_all'正则表达式'03is_disabled命令:判断指定表是否被禁用。is_disabled'表名'2.2.6禁用/启用表1.禁用表【实例2-16】禁用表student。disable'student'【实例2-17】禁用所有以“t”开头的表。disable_all't.*'语句执行结果如下图所示。实例2-17程序运行结果2.2.6禁用/启用表1.禁用表【实例2-18】判断student表是否被禁用。is_disabled'student'语句执行结果如下图所示。实例2-18程序运行结果student表已经被禁用2.2.6禁用/启用表2.启用表01enable命令:启用指定表。enable'表名'02enable_all命令:启用所有满足正则表达式的表。enable_all'正则表达式'03is_enabled命令:判断指定表是否被启用。is_enabled'表名'2.2.6禁用/启用表2.启用表【实例2-19】启用student表。enable'student'【实例2-20】判断student表是否被启用。is_enabled'student'语句执行结果如下图所示。实例2-20程序运行结果2.2.7删除表删除表分两步进行,首先禁用表,然后删除表。(1)drop命令:删除指定表。disable'表名'drop'表名'(2)drop_all命令:删除所有满足正则表达式的表。disable'正则表达式'drop_all'正则表达式'2.2.7删除表【实例2-21】删除test表。//禁用test表,若test表已禁用,可不执行该操作disable'test'//删除test表drop'test'使用list命令查看test表是否删除成功,如下图所示。实例2-20程序运行结果test表删除成功课堂检测如何创建一个新表?如何查看HBase中的所有表?如何查看表的结构信息?如何修改列族版本数,添加或删除列族?如何判断表是否存在?如何禁用/启用表?如何删除表?课堂小结数据定义命令创建表查看所有表查看表结构修改表结构判断表是否存在禁用/启用表禁用表启用表删除表03数据操作命令问题导入提问回顾上节课知识点:创建表、查看所有表、查看表结构、修改表结构、判断表是否存在、禁用/启用表、删除表的命令分别是什么?2.3.1插入/更新数据使用put命令可向表中插入数据,或更新指定行的数据。在使用put命令时,必须指明表名和行键,其命令格式如下。put'表名','行键','列族名[:列限定符名]','列值'【实例2-22】向student表中插入数据。put'student','20231001','stu_info:name','Lisi'上述语句中,student是表名;20231001是行键;“stu_info:name”中的stu_info是列族名,必须是已经定义的;“stu_info:name”中的name是列限定符名,是临时定义的;Lisi
是单元格的值。2.3.1插入/更新数据put'student','20231001','stu_info:sex','female'put'student','20231001','stu_info:class','1'put'student','20231001','stu_grade:Chinese','95'put'student','20231001','stu_grade:English','99'继续向student表中插入数据,完善Lisi的信息。以上语句的作用是插入一条学号为
20231001,姓名为
Lisi,性别为
female,班级为
1班,语文、英语科目成绩分别为95分和99分的数据。2.3.1插入/更新数据//插入第二行数据put'student','20231002','stu_info:name','zhangxin'put'student','20231002','stu_info:sex','male'put'student','20231002','stu_info:class','2'put'student','20231002','stu_grade:Chinese','90'put'student','20231002','stu_grade:English','95'//插入第三行数据put'student','20231003','stu_info:name','wangwei'put'student','20231003','stu_info:sex','male'put'student','20231003','stu_info:class','3'put'student','20231003','stu_grade:Chinese','92'put'student','20231003','stu_grade:English','93'继续向student表中插入两行数据。2.3.1插入/更新数据插入数据后的student表如下图所示。插入数据后的student表2.3.1插入/更新数据此时,student表的逻辑模型如下表所示。行键stu_infostu_gradenamesexclassChineseEnglish20231001Lisifemale1959920231002zhangxinmale2909520231003wangweimale39293student表的逻辑模型如果使用put语句操作的单元格中已有数据,则在不考虑时间戳的情况下,执行put语句将更新单元格中已有的数据。2.3.1插入/更新数据【实例2-23】将student表中行键为20231001的学生姓名由Lisi更新为Lisa。put'student','20231001','stu_info:name','Lisa'更新数据后的student表如下图所示。更新数据后的student表2.3.1插入/更新数据执行put命令时,插入和更新有什么不同?课堂讨论拓展阅读HBase提供了append命令用于给某个单元格的值拼接新的值,其命令格式如下。append'表名','行键','列族名:列限定符名','值'假设test表中行键为101、列名为“info:name”的单元格数据为“wang”,则执行语句“append'test','101','info:name','dong'”后,列名为“info:name”的单元格数据变为“wangdong”。2.3.2查询数据1.get命令使用get命令可查询表中的一行数据或一个单元格的数据,其命令格式如下。//查询一行数据或一行中指定列族名或列名的数据get'表名','行键'[,'列族名1[:列限定符名1]'][,'列族名2[:列限定符名2]']…//查询一个指定列族名或列名的数据get'表名','行键',{COLUMN=>'列族名[:列限定符名]'}//查询多个指定列族名或列名的数据,此处列族名外的方括号不能省略get'表名','行键',{COLUMN=>['列族名1[:列限定符名1]','列族名2[:列限定符名2]']…}//查询单元格中多个版本数据get'表名','行键',{COLUMN=>'列族名[:列限定符名]',VERSIONS=>版本号}2.3.2查询数据1.get命令【实例2-24】使用get命令查询student表中的数据。get'student','20231001'(1)查询student表中行键为20231001的数据。语句执行结果如下图所示。使用get命令查询一行数据2.3.2查询数据1.get命令get'student','20231002','stu_grade'(2)查询student表中行键为20231002、列族名为stu_grade的数据。语句执行结果如下图所示。get'student','20231002',{COLUMN=>'stu_grade'}也可以使用以下语句。使用get命令查询一行中指定列族名数据2.3.2查询数据1.get命令get'student','20231003',{COLUMN=>['stu_info:name','stu_info:sex']}(3)查询student表中行键为20231003、列族名为stu_info、列限定符名为name和sex的数据。语句执行结果如下图所示。get'student','20231003','stu_info:name','stu_info:sex'也可以使用以下语句。使用get命令查询一行中指定列名数据2.3.2查询数据1.get命令(4)查询student表中行键为20231001、列族名为stu_info、列限定符名为name的两个版本数据。语句执行结果如下图所示。get'student','20231001',{COLUMN=>'stu_info:name',VERSIONS=>2}使用get命令查询单元格中多个版本数据2.3.2查询数据2.scan命令使用scan命令既可查询表中的一行数据,又可查询表中的全部数据,其命令格式如下。//查询全部数据或指定列族名或列名的数据scan'表名'[,{COLUMN=>'列族名[:列限定符名]'}]//查询多个指定列族名或列名的数据,此处列族名外的方括号不能省略scan'表名',{COLUMNS=>['列族名1[:列限定符名1]','列族名2[:列限定符名2]']…}//查询指定列族名或列名的数据,并指定返回最大行数scan'表名',{COLUMNS=>'列族名[:列限定符名]',LIMIT=>行数}//查询指定行键范围的数据,起始行键和结束行键可同时存在,也可任选其一scan'表名',{COLUMNS=>'列族名[:列限定符名]',STARTROW=>'起始行键',ENDROW=>'结束行键'}2.3.2查询数据2.scan命令使用STARTROW和ENDROW限制查询范围时,查询出来的行数是否包括STARTROW和ENDROW?课堂讨论2.3.2查询数据2.scan命令【实例2-25】使用scan命令查询student表中的数据。scan'student'(1)查询student表中的全部数据。语句执行结果如下图所示。使用scan命令查询全部数据2.3.2查询数据2.scan命令scan'student',{COLUMN=>'stu_grade'}(2)查询student表中列族名为stu_grade的数据。语句执行结果如下图所示。使用scan命令查询指定列族名数据2.3.2查询数据2.scan命令scan'student',{COLUMNS=>['stu_info:name','stu_info:class'],LIMIT=>2}(3)查询student表中列族名为stu_info、列限定符名为name和class的前2行数据。语句执行结果如下图所示。使用scan命令查询指定列名数据2.3.2查询数据2.scan命令scan'student',{COLUMNS=>['stu_info:name','stu_info:class'],STARTROW=>'20231002',LIMIT=>1}(4)查询
student
表中行键大于或等于
20231002、列族名为
stu_info、列限定符名为name和class的数据,并只返回满足条件的1行数据。语句执行结果如下图所示。使用scan命令查询指定数据2.3.3删除数据1.delete命令使用delete命令可删除表中某个列的数据,其命令格式如下。delete'表名','行键','列族名:列限定符名'[,时间戳]【实例2-26】删除student表中行键为20231001、列族名为stu_grade、列限定符名为English的数据。delete'student','20231001','stu_grade:English'使用scan命令查看数据是否删除成功,如右图所示。使用delete命令删除数据后的student表2.3.3删除数据1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中共南充市委统战部下属事业单位公开选调工作人员的备考题库及答案详解参考
- 2026年云南云铝海鑫铝业有限公司招聘备考题库带答案详解
- 2026年剑川县人民医院关于公开招聘编外医疗卫生专业技术人员16人的备考题库及1套完整答案详解
- 2026年承德医学院招聘备考题库及一套参考答案详解
- 2026年上海外国语大学中阿改革发展研究中心行政管理人员招聘备考题库及一套完整答案详解
- 2025年杞县事业单位公开引进高层次人才备考题库及一套参考答案详解
- 2026年嵩明县嵩阳一中公开招聘化学临聘教师备考题库及答案详解一套
- 2026年兰州备考题库科技学院招募外籍教师附答案详解
- 2026年内蒙古交通集团有限公司社会化公开招聘备考题库及完整答案详解1套
- 2025-2026学年译林版(三起)英语三年级上册期末综合能力检测卷【含答案详解】
- DB11T 381-2023 既有居住建筑节能改造技术规程
- 计算机应用数学基础 教学 作者 王学军 计算机应用数学课件 第10章 图论
- DF6205电能量采集装置用户手册-2
- 缺血性脑卒中静脉溶栓护理
- 电子电路基础-电子科技大学中国大学mooc课后章节答案期末考试题库2023年
- 四年级科学上册期末试卷及答案-苏教版
- 怀仁县肉牛养殖产业化项目可行性研究报告
- DB51T 2875-2022彩灯(自贡)工艺灯规范
- 主要负责人重大危险源安全检查表
- 《工程经济学》模拟试题答案 东北财经大学2023年春
- 2023-2024学年广西壮族自治区来宾市小学数学五年级下册期末自测试卷
评论
0/150
提交评论