版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《HBase数据库应用案例教程》课程标准【课程名称】HBase数据库应用案例教程【课程编码】【课程类别】专业基础课 【适用专业】计算机科学与技术、大数据技术、数据科学与大数据技术【授课单位】 【总学时】40【编写执笔人】 【编写日期】 一、课程定位和课程设计1.1课程性质与作用本课程是计算机科学与技术、大数据技术、数据科学与大数据技术等计算机相关专业的基础课程,系统讲授了HBase数据库基础、HBaseShell、HBase客户端API、HBase客户端API进阶、HBase原理实现、HBase性能优化、HBase与MapReduce的集成等知识,旨在帮助学生全面了解HBase的核心技术和应用场景,熟练掌握HBase的使用方法,以便更好地应对大数据时代的挑战。1.2课程设计思路本课程以“构建知识体系、阐明基本原理、引导初级实践、了解相关应用”为原则,为学生在大数据领域“深耕细作”奠定基础、指明方向。在教学中强调以学生发展为中心,帮助学生学会学习。在教学方法上,注重学生的发展水平和特点,以案例教学、任务驱动为主要方法,重视小组合作学习,强化课程实践训练,关注学生在理论指导下的实践,以及实践中的理论提升,使学生真正做到知行合一,学以致用。二、课程目标2.1知识目标了解HBase的特性及应用场景。了解HBase与Hadoop的关系。熟悉HBase数据模型的相关知识。熟悉HBase的架构组成部分及其功能。掌握常规操作命令的格式,如help、status、version命令等。掌握数据定义命令的格式,如create、list、describe命令等。掌握数据操作命令的格式,如put、get、scan、delete命令等。掌握使用HBaseJava客户端API操作表的方法。掌握使用HBaseJava客户端API操作数据的方法。掌握HBase中批量操作的方法。掌握HBase中过滤器的使用方法。了解Region的定义和定位方式。了解RegionServer的组成及数据的读写流程。理解WAL机制的核心思想。理解Region的拆分方式和负载均衡原理。理解StoreFile的合并方式。掌握HBase运维管理和数据管理的方法。熟悉HBase客户端优化方法。熟悉HBase服务器端优化方法。了解HBase和MapReduce的关系。理解MapReduce的核心思想。了解MapReduce的应用场景。熟悉HBaseMapReduce相关类。2.2技能目标能够安装HBase、Hadoop等。能够配置HBase的单机模式、伪分布式模式和完全分布式模式。能够使用HBaseShell与HBase进行交互。能够使用HBaseJava客户端API操作表。能够使用HBaseJava客户端API操作数据。能够使用HBaseJava客户端API实现批量操作。能够使用HBaseJava客户端API实现过滤操作。能够使用合适的拆分方式对Region进行拆分。能够根据实际情况添加或删除RegionServer节点。能够使用HBase的数据导出、数据导入、数据拷贝和快照恢复功能对数据进行管理。能够通过调整参数优化HBase性能。能够根据实际情况选择合适的方法优化HBase性能。能够根据实际需求编写map方法和reduce方法。能够使用MapReduce对HBase中的数据进行高效处理。2.3素质目标通过了解Hadoop生态系统的各个组件,增强团结协作意识。学会利用事物间的关联性解决问题,提高逻辑思维能力。增强主动思考、积极寻求问题解决方法的意识。提高隐私保护意识,树立正确的价值观。提高举一反三、从多个角度思考问题的能力。养成精益求精、严谨认真的工作态度。增强自主学习、探究学习的意识。加强实践练习,自觉提升专业技能和职业素养。提高灵活处理问题的能力,从而更好地适应不断变化的环境。养成未雨绸缪的习惯,增强忧患意识。在遇到问题时,能够积极寻找解决方案,并勇于实践新思路。具备强烈的责任感和使命感,树立担当意识,勇于承担责任。提高分析问题和解决问题的能力和自信心。增强积极思考、寻求解决方法的意识。三、课程内容与教学要求本课程包含HBase数据库基础、HBaseShell、HBase客户端API、HBase客户端API进阶、HBase原理实现、HBase性能优化、HBase与MapReduce的集成7个项目,其教学内容及课时分配如下表所示。《思想政治理论课实践实训教程》教学内容及课时分配表序号课程名称教学内容教学要求课时分配1HBase数据库基础(1)HBase简介(2)HBase与Hadoop的关系(3)HBase数据模型(4)HBase架构(1)了解HBase的特性及应用场景。(2)了解HBase与Hadoop的关系。(3)熟悉HBase数据模型的相关知识。(4)熟悉HBase的架构组成部分及其功能。62HBaseShell(1)常规操作命令(2)数据定义命令(3)数据操作命令(1)掌握常规操作命令的格式,如help、status、version命令等。(2)掌握数据定义命令的格式,如create、list、describe命令等。(3)掌握数据操作命令的格式,如put、get、scan、delete命令等。43HBase客户端API(1)HBase客户端API概述(2)表操作(3)数据操作(1)掌握使用HBaseJava客户端API操作表的方法。(2)掌握使用HBaseJava客户端API操作数据的方法。64HBase客户端API进阶(1)批量操作(2)过滤器(1)掌握HBase中批量操作的方法。(2)掌握HBase中过滤器的使用方法。65HBase原理实现(1)HBase工作原理(2)HBaseRegion管理(3)HBase集群管理(1)了解Region的定义和定位方式。(2)了解RegionServer的组成及数据的读写流程。(3)理解WAL机制的核心思想。(4)理解Region的拆分方式和负载均衡原理。(5)理解StoreFile的合并方式。(6)掌握HBase运维管理和数据管理的方法。66HBase性能优化(1)客户端优化(2)服务器端优化(1)熟悉HBase客户端优化方法。(2)熟悉HBase服务器端优化方法。67HBase与MapReduce的集成(1)MapReduce简介(2)MapReduce核心思想(3)MapReduce应用场景(4)HBaseMapReduce相关类(1)了解HBase和MapReduce的关系。(2)理解MapReduce的核心思想。(3)了解MapReduce的应用场景。(4)熟悉HBaseMapReduce相关类。4机动2合计40四、课程实施4.1教学条件我校十分注重建设和完善智慧教学设施,如多媒体教室、机房、网络教学平台、网络数据库等。同时,我校有一支强大的师资队伍,可以为本课程教学出谋划策。4.2教学方法建议本课程遵循“教师引导,学生为主”的原则,采用讲解、多媒体演示、场景模拟法、讨论、翻转课堂等多种方法,努力为学生创设更多知识应用的机会。讲解法:主要用于讲授HBase数据库应用案例教程基础知识、行业岗位知识等理论性较强的知识。多媒体演示法:在讲解过程中,借助音频、视频、图片等直观手段来呈现教学内容,在激发其学习兴趣和积极性的同时,不断提高其知识储备能力和综合文化素质。场景模拟法:针对所教内容布置任务,引导学生通过情景化的模拟训练来提升知识的实际应用能力和职业素养。讨论法:根据知识点,鼓励学生运用所学知识进行主题讨论,使其在讨论中逐步提升交际能力、思辨能力、解决实际问题的能力等。翻转课堂法:坚持学生的主体地位,鼓励学生在课上对自己学到的知识点进行分享和讲解,并对其讲解进行补充和评价,不断完善学生的知识结构,加深其对所学知识的理解。教师在教学过程中,可根据学生的实际情况灵活选用教学方法,因材施教,尽量照顾到每一个学生的学习需求。4.3教学评价与考核要求课程的教学评价由形成性测评(40%)和终结性测评(60%)组成,其考核要求如下:4.3.1形成性测评形成性测评考核学生在学习本课程过程中的学习情况和实际应用能力的发展情况,包括出勤考核(10%)、课堂参与程度考核(10%)、作业完成质量考核(20%)等。(1)出勤考核本项考核通过课前点名考核学生的课堂出勤率。迟到15分钟以内每次扣1分,迟到15分钟以上或无故缺勤一节课每次扣2分,该项考核累计最多扣10分。(2)课堂参与程度考核本项考核主要通过课堂提问和课堂积极发言来评判学生的学习态度、学习主动性、课堂参与程度,以及学生的思辨能力、问题解决能力及其对课堂教学知识的掌握情况等。只要学生能按时上课听讲,即可获得5分的基本分。学生上课发言一次,即可另外获得0.5分,课堂发言最多可得5分。学生的最后成绩为“5+课堂发言得分”。(3)作业完成质量考核本项考核主要通过学生作业来检测其对教学主体内容的掌握与理解程度、实际应用知识的能力、自主学习能力、信息收集与处理能力等。每次作业成绩按照相应标准而定,学生作业质量划分为优秀(10分)、良好(8分)、中等(7分)、及格(6分)和不及格(0分)五个档次。最后的作业成绩为学生作业完成质量成绩的平均数。4.3.2终结性测评终结性测评主要考核学生在学完本课程后所达到的水平,通过期末考试进行考核。期末考试由闭卷笔试(60%)组成,主要评估学生对本门课程基本知识的掌握情况与综合运用能力。五、课程资源开发与利用5.1推荐使用教材5.2网络资源
《HBase数据库应用案例教程》
教案课时分配表章序课程内容课时备注1HBase数据库基础62HBaseShell43HBase客户端API64HBase客户端API进阶65HBase原理实现66HBase性能优化67HBase与MapReduce的集成48机动2合计40
课题HBase数据库基础课时6课时(270min)教学目标知识目标:(1)了解HBase的特性及应用场景(2)了解HBase与Hadoop的关系(3)熟悉HBase数据模型的相关知识(4)熟悉HBase的架构组成部分及其功能技能目标:(1)能够安装HBase、Hadoop等(2)能够配置HBase的单机模式、伪分布式模式和完全分布式模式素养目标:(1)通过了解Hadoop生态系统的各个组件,增强团结协作意识(2)学会利用事物间的关联性解决问题,提高逻辑思维能力教学重难点教学重点:HBase的特性及应用场景;HBase与Hadoop的关系;HBase数据模型的相关知识;HBase的架构组成部分及其功能教学难点:安装HBase、Hadoop;配置HBase的单机模式、伪分布式模式和完全分布式模式教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,收集并了解HBase数据库的基础知识,并让学生在学习平台上留言讨论【学生】登录学习平台收集相关资料,思考并留言讨论考勤【教师】使用APP进行签到【学生】按照老师要求签到新课预热【教师】自我介绍,与学生简单互动,介绍课程内容、考核标准等【学生】聆听、互动【教师】讲一些涉及HBase数据库基础的应用案例,解释学习该课程的作用【学生】聆听、记录、理解问题导入【教师】对学生进行分组,每组3~5人,并选出一名组长,然后播放“NoSQL的典型应用”和“HBase的应用场景”视频(详见教材),并提出以下问题:问题1:说一说你对NoSQL的理解。问题2:根据HBase的应用场景类型,尝试列举HBase在日常生活中的应用场景(不少于3个)。【学生】观看、思考、讨论、回答【教师】总结学生的回答,导入本节课课题:HBase数据库基础传授新知【教师】讲解HBase的特性及应用场景,HBase与Hadoop的关系,HBase数据模型和HBase架构等知识1.1HBase简介HBase最初只是Hadoop项目的一部分,现已成为Apache软件基金会(Apachesoftwarefoundation,ASF)的顶级项目。目前,HBase的社区活跃度非常高,越来越多的互联网公司在业务场景中使用了HBase。1.1.1HBase的特性与面向行的关系型数据库不同,HBase是一个面向列的非关系型数据库,其特性如下。(1)海量存储。HBase的表可以非常大,其单表可存储达百亿行、百万列数据。(2)面向列。HBase
是面向列的数据库,它将数据按列族划分(一个列族中可以包含一个列或多个列),并将同一个列族的数据存储在一起。(3)数据多版本。HBase
中的数据可以有多个版本。默认情况下,版本号是数据写入时的时间戳。(4)非结构化。HBase是非关系型数据库,适合存储非结构化数据。(5)稀疏。HBase
表中可能会有很多列,但通常情况下,一行数据中只有少数的列存储值。由于值为空的列不占用存储空间,因此,在实际应用中通常将
HBase
表设计为稀疏矩阵,这样既可以节省存储开销,又可以提高读性能。(6)高可扩展性。HBase
可以通过横向扩展的方式,将多个性能普通的服务器添加到集群中(无须提升服务器自身的性能),从而实现动态扩展。并且,HBase
的横向扩展属于热扩展,即无须停止现有服务就可以随时添加或删除节点。(7)高可靠性。HBase的数据存储在HDFS(Hadoopdistributedfilesystem,Hadoop分布式文件系统)中,HDFS
的多副本机制可以实现故障的自动修复,能够保证
HBase
的高可靠性。✈【教师】随机邀请学生回答以下问题:请同学们思考,面向行的关系型数据库主要有哪些?他们的特点与HBase有何不同?✈【学生】聆听、思考、回答✈【教师】总结学生的回答1.1.2HBase的应用场景HBase主要有以下几种应用场景。(1)海量数据存储。HBase能够存储大规模的数据,如日志数据、交易数据等。(2)低延迟、高并发读写。HBase
支持高效的随机读写和并发读写操作,可以在毫秒级别内完成数据访问,还可以处理数百万级别的并发访问请求,适用于需要实时、并发访问的场景,如实时监控系统、互联网搜索等。(3)数据分析和挖掘。HBase
支持多种过滤器和聚合函数,可以对数据进行精确的过滤和统计分析,适用于需要进行数据分析和挖掘的场景,如气象数据统计、股票行情分析等。(4)实时计算和流处理。HBase
可以和
ApacheFlink
结合,轻松构建出高效、实时的大规模数据流处理平台,满足海量数据的高性能和实时处理需求,适用于需要实时计算和流处理的场景,如实时推荐系统等。总的来说,HBase适用于大规模数据存储和实时数据处理的场景,特别是需要高效随机读写的应用。1.2HBase与Hadoop的关系✈【教师】播放“Hadoop”视频,让学生初步了解Hadoop,然后讲解HBase与Hadoop的关系Hadoop是由Apache软件基金会主持开发的一个开源软件,它为用户提供了底层细节透明的分布式基础框架。Hadoop
来源于谷歌公司发表的
3
篇经典论文“TheGoogleFileSystem”“MapReduce:SimplifiedDataProcessingonLargeClusters”“Bigtable:ADistributedStorageSystemforStructuredData”。这3篇论文对应Hadoop早期的3个子项目,分别是分布式文件系统HDFS、分布式计算框架MapReduce和分布式数据库HBase。✈【教师】利用多媒体展示“Hadoop生态系统”图片,并进行讲解现如今,Hadoop已成为大数据的代名词,针对大数据处理过程中的各个环节,它都有相应的解决方案,于是逐渐形成了完整的Hadoop生态系统。Hadoop生态系统包括HDFS、MapReduce、Zookeeper、HBase、YARN、Hive、Pig、Mahout、Sqoop、Flume和Ambari等组件,各个组件相互配合,共同完成大数据处理任务。由图可以看出,HBase
利用
HDFS
作为其文件存储系统,利用
MapReduce
处理海量数据,利用Zookeeper进行分布式协作服务管理,利用Sqoop完成与关系型数据库之间的数据传输。✈【拓展阅读】Hadoop生态系统由多个组件构成,它们需要协同工作,才能更好地完成大数据处理任务,这体现了协作的重要性。团结协作是现代生活中不可缺少的一环。“众人拾柴火焰高”,只有善于团结协作,才能实现优势互补,进而激发协同效应,最终产生“1+1>2”的效果。✈【教师】随机邀请学生回答以下问题:简述HBase与Hadoop的关系。✈【学生】聆听、思考、回答✈【教师】总结学生的回答✈【教师】利用多媒体展示“HBase与Hadoop版本兼容信息”表格,并进行讲解正是因为HBase底层依赖Hadoop,所以选择HBase版本时,还要考虑其与Hadoop版本的兼容性。下表为HBase官方网站发布的HBase与Hadoop版本兼容信息。HBase与Hadoop版本兼容信息Hadoop版本HBase2.5.xHadoop版本HBase2.4.xHadoop版本HBase2.3.xHadoop2.10.2+SHadoop2.10.2+SHadoop2.10.xSHadoop3.1.1+XHadoop3.1.1+SHadoop3.1.0XHadoop3.2.3+SHadoop3.2.3+SHadoop3.1.1+SHadoop3.3.[0~1]XHadoop3.3.[0~1]SHadoop3.2.xSHadoop3.3.2+SHadoop3.3.2+SHadoop3.3.xS注:(1)S=supported,表示经过测试是支持的;(2)X=notsupported,表示不支持。✈【提示】更多关于HBase与Hadoop版本的兼容信息,读者可在“/book.
html#hadoop”网页中自行查看。1.3HBase数据模型✈【教师】播放“数据模型”视频,让学生初步了解数据模型的相关知识,然后讲解HBase数据模型相较于关系型数据库,HBase的数据模型更为灵活,除了行和列外,HBase表中还存在列族,它将一个列或多个列组织在一起。也就是说,HBase中的列必须属于某一个列族。1.3.1相关概念要想理解HBase的数据模型,首先要熟悉HBase数据模型的相关概念。1.表HBase表(table)的作用是将数据组织起来,同一个表中的数据通常都是相关的。2.行键每个HBase表由若干行(row)组成,每行数据又由一个行键(rowkey)和若干列值组成,且可通过行键唯一标识一行数据。在HBase内部,行键以字节数组形式存储,且数据按照行键的字典顺序(ASCII码)排序。3.列族一个HBase表中可以包含一个列族(columnfamily)或多个列族,一个列族中可以包含一个列或多个列。列族需要在定义表时定义。4.列限定符HBase列族中的列通过列限定符(columnqualifier)进行标识。列限定符不需要在定义表和列族时定义,可以按需求动态添加。它没有特定的数据类型,通常以二进制字节形式存储。HBase
中的列名由列族名和列限定符名两部分组成,中间用冒号隔开。例如,在“stu_info:name”和“stu_info:city”两个列名中,name
和
city
是列限定符名,这两个列都属于列族stu_info。5.单元格单元格(cell)是HBase中数据的存储单元。在HBase表中,行键、列族和列限定符共同确定一个单元格。HBase表中的单元格内容没有特定的数据类型,通常以二进制字节形式存储。6.时间戳HBase
表的单元格中可以保存同一份数据的多个版本,每个版本对应一个时间戳(timestamp),该时间戳通常为数据写入的时间。因此,可以根据唯一的时间戳区分数据的不同版本。一个单元格中不同版本的数据按照时间戳倒序存储,最新的数据版本排在最前面。【实例讲解】✈【教师】利用多媒体展示“图书借阅表”表格,并组织学生回答以下问题:为便于理解HBase数据模型的相关概念,下面通过一个实例进行说明。假设下表是一个存储了图书借阅信息的
HBase
表,表中的图书编号是行键,用来唯一标识每本图书的信息;列族info中包含了两个列,分别是book_name和date,对应保存的是书名和借阅时间。在下表中行键、列族、列限定符、单元格、时间戳分别对应哪些内容?✈【学生】聆听、思考、回答✈【教师】总结学生的回答表中的单元格由行键、列族和列限定符共同确定,如“2023-9-9”所在单元格由行键
956211、列族
info
和列限定符
date
共同确定。此外,图书编号为
956212
的图书存在两个版本的借阅信息,所以有两个时间戳
t1
和
t2,时间戳较大的数据版本较新,即“2023-9-20”为最新的数据版本。1.3.2逻辑模型✈【教师】利用多媒体展示“HBase逻辑模型实例”表格,并进行讲解逻辑模型就是逻辑视图,也称概念视图,是
HBase
中数据的逻辑组织方式。HBase
表可视为一个稀疏、多维的数据映射关系。为便于理解,下面通过下表的实例说明HBase的逻辑模型。HBase逻辑模型实例行键stu_infostu_grade列值时间戳列值时间戳20231001stu_info:nameLilyt1stu_info:sexfemalet1stu_info:citybeijingt120232001stu_info:nameTomt2stu_grade:math59t2stu_info:sexmalet2stu_grade:computer88t2stu_grade:math70t3上表中存储了学生的基本信息,其中,学号是行键,表中有两个列族,分别是stu_info和stu_grade,列族stu_info用来存储学生的姓名(name)、性别(sex)和居住城市(city),列族stu_grade用来存储学生的数学科目成绩(math)和计算机科目成绩(computer)。可以采用“四维坐标”对单元格中的数据进行定位。例如,通过四维坐标(“20232001”,“stu_grade”,“stu_grade:math”,“t3”)就可以知道对应单元格中存储的数据是70。由上表可以看出,HBase可以存储稀疏数据,其中存在很多空的单元格,如前3行数据中,列族stu_grade的内容为空。1.3.3物理模型从逻辑模型来看,HBase
表是由若干行组成的,但是在物理存储上,它是基于列存储的,这和基于行存储的关系型数据库是不同的。关系型数据库需要预先创建表结构,为每个列预留存储空间,因此对于稀疏数据来说,表中会产生大量的
NULL
值,这样会消耗大量的存储空间。✈【教师】利用多媒体展示“HBase物理存储方式(列族stu_info)”和“HBase物理存储方式(列族stu_grade)”表格,并进行讲解而基于列存储的HBase
对于内容为空的单元格,实际上并不会存储,也就是说内容为空的单元格并不占用存储空间。例如,表(HBase逻辑模型实例)中行键为
20232001
的数据在物理存储时会将两个列族
stu_info
和
stu_grade
分别存储,属于同一个列族的数据会存储在一起,如表
1-4和表1-5所示。HBase物理存储方式(列族stu_info)行键stu_info列值时间戳20232001stu_info:nameTomt2stu_info:sexmalet2HBase物理存储方式(列族stu_grade)行键stu_grade列值时间戳20232001stu_grade:math59t2stu_grade:computer88t2stu_grade:math70t31.4HBase架构✈【教师】播放“HBase”视频,让学生初步了解HBase的相关知识,然后利用多媒体展示“HBase架构”图片,并进行讲解HBase由客户端、Zookeeper、Master和RegionServer这4部分组成。1.4.1客户端客户端包含访问HBase的接口,是整个HBase集群的入口。客户端使用HBase的RPC机制与Master和RegionServer通信。其中,对于管理类的操作,客户端与Master通信;对于数据读写类的操作,客户端与RegionServer通信。✈【知识库】远程过程调用(remoteprocedurecall,RPC),是一台计算机跨越底层网络协议调用另一台计算机的子程序或服务所遵循的协议标准,具有透明性、高性能、可控性等特点。1.4.2ZooKeeperZookeeper是由Apache维护的分布式协作服务,主要用于实现分布式系统中Master选举、分布式协调、集群管理、负载均衡、分布式锁等功能。在HBase集群中,Zookeeper为集群提供稳定、可靠的协作服务。通常情况下,HBase
集群中包含一个
Master
和多个
RegionServer,但
HBase
集群也可以启动多个
Master,然后利用
Zookeeper
的选举机制从多个
Master
中选举一个作为主Master。当
HBase
启动时,每个
RegionServer
都需要将自己的信息注册到
Zookeeper
中,Zookeeper会实时监控每个RegionServer并告知选中的Master,这样Master就可以随时感知RegionServer的运行状态,从而更好地管理HBase集群。✈【教师】随机邀请学生回答以下问题:请同学们思考,Zookeeper在HBase中(Master节点、RegionServer节点)的主要作用有哪些?✈【学生】聆听、思考、回答✈【教师】总结学生的回答1.4.3MasterMaster是HBase集群中的服务器,Zookeeper可以保证在任何时刻总有唯一一个
Master正常运行,所以
Master
不存在单点失效的问题。Master
负责监控集群中所有
RegionServer的运行状态,也用来管理表和Region(Region的具体内容在项目5详细介绍),具体包括以下几点。(1)管理用户对表的增、删、改、查等操作。(2)管理RegionServer的负载均衡。(3)Region拆分或合并之后,负责重新调整Region的分布。(4)在RegionServer发生故障后,负责失效RegionServer上Region的迁移工作。此外,Master还负责维护当前可用的RegionServer列表,以及哪些Region分配给哪些RegionServer,哪些
Region
还未被分配(任何时刻,一个
Region
只能分配给一个RegionServer)等。如果有未被分配的
Region
且存在一个有可用空间的
RegionServer,Master会向该RegionServer发送一个请求,并将该未被分配的Region发送给该RegionServer,由该RegionServer管理该Region。✈【教师】随机邀请学生回答以下问题:HBase系统基本结构中Master的作用主要有哪些?✈【学生】聆听、思考、回答✈【教师】总结学生的回答RegionServer分区监控;RegionServer分区管理;RegionServer列表维护;1.4.4RegionServerRegionServer
是
HBase
的核心模块,主要功能是维护分配给自己的
Region,并响应用户的数据读写请求(具体内容在
5.1.3
节详细介绍)。HBase
通常使用
HDFS
作为其底层文件存储系统,因此RegionServer须向HDFS中读写数据。【学生】聆听、思考、理解、记录课堂实践项目实施1----安装Hbase【教师】播放“安装HBase”视频(详见教材),讲解并演示安装HBase的具体操作,然后组织学生以小组为单位,进行安装HBase的操作安装HBase前须选择合适的HBase版本。在实际应用中,选择HBase版本时通常遵循非最新、稳定原则。鉴于此,本书使用HBase2.4.14。✈【提示】本书使用的虚拟机软件为VMwareWorkstationv16.1.1,操作系统为
RedHatEnterpriseLinux8.7。此外,为避免以普通用户的身份登录Linux操作系统而导致操作受限,读者须以root身份登录,具体方法为,在Linux操作系统登录界面中单击“Notlisted?”链接,然后在打开的界面中输入用户名“root”并按“Enter”键,最后在打开的界面中输入密码并按“Enter”键,如教材图1-3所示。步骤
1下载HBase安装文件。启动Firefox浏览器,访问HBase官方网站(https://hbase.
/),在首页单击“Download”下方的“here”链接(见图教材
1-4)进入下载页面,单击下载页面下方的“ApacheArchive”链接(见教材图
1-5)进入HBase版本选择页面,找到并单击要下载的HBase版本“2.4.14/”链接(见教材图
1-6),然后在打开的页面中单击“hbase-2.4.14-bin.tar.gz”链接(见教材图
1-7),下载HBase安装文件。等待片刻,HBase安装文件下载完成。步骤
2解压
HBase
安装文件。启动终端,首先在“home”目录中创建“hadoop”目录,然后将HBase安装文件解压到该目录,命令如下。//为便于管理,创建“/home/hadoop”目录[root@localhost~]#mkdir/home/hadoop//HBase安装文件默认下载到“/root/Downloads”目录,须先使用cd命令切换到该目录再解压[root@localhost~]#cdDownloads//使用tar命令解压HBase安装文件[root@localhostDownloads]#tar-zxvfhbase-2.4.14-bin.tar.gz-C/home/hadoop步骤3重命名
HBase
安装文件。HBase
安装文件解压完成后,通常会将解压后的安装文件重命名为“hbase”,以方便查看和使用,命令如下。[root@localhostDownloads]#cd/home/hadoop//查看HBase安装文件是否解压成功[root@localhosthadoop]#ls//输出“hbase-2.4.14”,表示HBase安装文件解压成功hbase-2.4.14//mv命令用于重命名文件,此处表示将“hbase-2.4.14”重命名为“hbase”[root@localhosthadoop]#mvhbase-2.4.14hbase……(详见教材)【学生】观看、聆听、思考、根据要求进行操作,先完成的学生帮助本组其他学生完成操作,如遇问题,可询问教师或自行扫码播放“安装HBase”视频【教师】巡堂指导,及时解决学生的问题项目实施2----配置Hbase单机模式【教师】播放“配置HBase单机模式”视频(详见教材),讲解并演示配置HBase单机模式的具体操作,然后组织学生以小组为单位,进行配置HBase单机模式的操作默认情况下,HBase运行在单机模式下,该模式是HBase最简单的运行模式,通常只用于测试。HBase是基于Java语言开发的,因此,安装Java环境(JDK)是基本要求。同时,由于HBase单机模式采用本地文件系统存储数据,所以配置HBase单机模式只需安装JDK。JDK的版本与HBase的版本密切相关(见下表),通常使用JDK6以上的版本才能更好地支持HBase。HBase与JDK的版本兼容信息HBase版本JDK6JDK7JDK8JDK11HBase2.3+XXSNTHBase2.0~2.2XXSXHBase1.2+XSSXHBase1.0~1.1XSNTX注:(1)S=supported,表示经过测试是支持的;(2)X=notsupported,表示不支持;(3)NT=nottested,表示没有测试。由上表可以看出,HBase2.4.14与JDK8兼容,因此本书使用JDK8。1.安装JDK步骤1下载JDK安装文件。启动Firefox浏览器,访问Oracle官方网站(https://www.
/),在首页单击“Downloads”/“DownloadOracleJDK”链接(见教材图
1-8),在打开的版本选择页面中单击“Java8”/“Linux”/“jdk-8u361-linux-x64.tar.gz”链接,如教材图
1-9所示。步骤2弹出提示对话框,勾选网络许可协议复选框,然后单击下载按钮,如教材图
1-10所示。步骤3在打开的页面中输入Oracle账户的用户名和密码(若没有Oracle账户,须先创建),然后单击登录按钮,下载JDK安装文件。等待片刻,JDK安装文件下载完成。步骤4解压
JDK
安装文件。启动终端,将下载的
JDK
安装文件解压到“/home/hadoop”目录,命令如下。[root@localhost~]#cdDownloads[root@localhostDownloads]#tar-zxvfjdk-8u361-linux-x64.tar.gz-C/home/hadoop……(详见教材)2.配置HBase单机模式配置
HBase
单机模式只需编辑
HBase
的两个配置文件,分别是“hbase-env.sh”和“hbase-site.xml”。步骤1切换到配置文件“hbase-env.sh”和“hbase-site.xml”所在目录,命令如下。[root@localhosthadoop]#cd/home/hadoop/hbase/conf步骤2编辑配置文件“hbase-env.sh”。使用vim命令打开配置文件“hbase-env.sh”后,需要在其中配置JDK环境变量。配置完成的“hbase-env.sh”文件应包含以下配置信息。//取消“#exportJAVA_HOME=”开头的行注释符号“#”,然后将JAVA_HOME的值设置为JDK的安装路径exportJAVA_HOME=/home/hadoop/jdk步骤3新建数据写入目录,命令如下。[root@localhostconf]#mkdir/home/hadoop/hbase/data……(详见教材)【学生】观看、聆听、思考、根据要求进行操作,先完成的学生帮助本组其他学生完成操作,如遇问题,可询问教师或自行扫码播放“配置HBase单机模式”视频【教师】巡堂指导,及时解决学生的问题项目实施3----配置Hbase伪分布式模式【教师】播放“配置HBase伪分布式模式”视频(详见教材),讲解并演示配置HBase伪分布式模式的具体操作,然后组织学生以小组为单位,进行配置HBase伪分布式模式的操作HBase
伪分布式模式仍然完全运行在单个主机上。该模式常用于测试,不应将其用于实际生产或性能评估。1.安装JDK配置
HBase
伪分布式模式也需要安装JDK,其安装方法与配置HBase单机模式时相同,此处不再赘述。2.配置SSH免密登录SSH
是建立在应用层和传输层基础上的安全协议。HBase
在集群模式下的启动或关闭都依赖于SSH服务。由于HBase启动时Master须登录到集群中的所有节点,而默认情况下每次登录都需要输入密码,所以,配置SSH免密登录就会很方便。步骤1启动终端,登录本机生成“.ssh”目录,命令如下。[root@localhost~]#sshlocalhost步骤2配置SSH免密登录,命令如下。[root@localhost~]#cd.ssh//生成密钥,出现提示信息时直接按3次“Enter”键[root@localhost.ssh]#ssh-keygen-trsa//将密钥加入授权[root@localhost.ssh]#cat./id_rsa.pub>>./authorized_keys步骤3测试SSH免密登录。再次执行“sshlocalhost”命令,此时无须输入密码即可直接登录,如教材图1-12所示。……(详见教材)3.安装HadoopHBase伪分布式模式的数据存储在HDFS中,所以配置HBase伪分布式模式前须安装Hadoop。选择Hadoop版本时要兼顾已安装的HBase版本,因此,本书使用Hadoop3.2.4。步骤1下载Hadoop安装文件。启动Firefox浏览器,访问Hadoop官方网站(https://
/),在首页单击“Download”链接(见教材图
1-13),在打开的版本选择页面中单击要下载的Hadoop版本“3.2.4”右侧的“binary”链接,如教材图
1-14所示。步骤2在打开的页面中单击“/hadoop/common/hadoop-3.2.4/
hadoop-3.2.4.tar.gz”链接(见教材图1-15),下载Hadoop安装文件。等待片刻,Hadoop安装文件下载完成。步骤3解压Hadoop安装文件。启动终端,将Hadoop安装文件解压到“/home/hadoop”目录,命令如下。[root@localhost~]#cdDownloads[root@localhostDownloads]#tar-zxvfhadoop-3.2.4.tar.gz-C/home/hadoop……(详见教材)4.配置Hadoop伪分布式模式配置Hadoop伪分布式模式需要编辑Hadoop的3个配置文件,分别是“hadoop-env.sh”“hdfs-site.xml”和“core-site.xml”。步骤1切换到配置文件“hadoop-env.sh”“hdfs-site.xml”和“core-site.xml”所在目录,命令如下。[root@localhosthadoop]#cd/home/hadoop/hadoop/etc/hadoop步骤2编辑配置文件“hadoop-env.sh”。使用vim命令打开配置文件“hadoop-env.sh”后,需要在其中配置JDK环境变量。配置完成的“hadoop-env.sh”文件应包含以下配置信息。exportJAVA_HOME=/home/hadoop/jdk步骤3编辑配置文件“hdfs-site.xml”。使用vim命令打开配置文件“hdfs-site.xml”后,需要在“<configuration></configuration>”标签中添加配置信息。配置完成的“hdfs-site.xml”文件应包含以下配置信息。<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>.dir</name><value>file:/home/hadoop/hadoop/data/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/hadoop/hadoop/data/dfs/data</value></property></configuration>……(详见教材)5.配置HBase伪分布式模式配置HBase伪分布式模式需要编辑HBase的两个配置文件,分别是“hbase-env.sh”和“hbase-site.xml”。步骤1切换到配置文件“hbase-env.sh”和“hbase-site.xml”所在目录,命令如下。[root@localhosthadoop]#cd/home/hadoop/hbase/conf步骤2编辑配置文件“hbase-env.sh”。使用vim命令打开配置文件“hbase-env.sh”后,需要在其中配置JDK环境变量,并使用HBase自带的Zookeeper进行管理。配置完成的“hbase-env.sh”文件应包含以下配置信息。//取消“#exportJAVA_HOME=”开头的行注释符号“#”,然后将JAVA_HOME的值设置为JDK的安装路径exportJAVA_HOME=/home/hadoop/jdk//取消“#exportHBASE_MANAGES_ZK=true”开头的行注释符号“#”exportHBASE_MANAGES_ZK=true //使用HBase自带的Zookeeper步骤3编辑配置文件“hbase-site.xml”。使用vim命令打开配置文件“hbase-site.xml”后,需要在“<configuration></configuration>”标签中修改或添加配置信息,包括修改HBase运行模式、设置HBase数据存储位置、添加Zookeeper位置信息。配置完成的“hbase-site.xml”文件应包含以下配置信息。<configuration><property>//修改HBase运行模式为伪分布式模式<name>hbase.cluster.distributed</name><value>true</value></property><property>//设置HBase数据存储位置为HBase在HDFS上的存储路径<name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value></property><property>//添加Zookeeper位置信息<name>hbase.zookeeper.quorum</name><value>localhost:2181</value></property></configuration>……(详见教材)【学生】观看、聆听、思考、根据要求进行操作,先完成的学生帮助本组其他学生完成操作,如遇问题,可询问教师或自行扫码播放“配置HBase伪分布式模式”视频【教师】巡堂指导,及时解决学生的问题项目实施4----配置Hbase完全分布式模式【教师】播放“配置HBase完全分布式模式”视频(详见教材),讲解并演示配置HBase完全分布式模式的具体操作,然后组织学生以小组为单位,进行配置HBase完全分布式模式的操作在实际生产环境中,为了满足业务的可扩展性与读写性能要求,HBase通常运行在完全分布式模式下。在配置HBase完全分布式模式时,HBase集群至少需要3个节点(各节点相关信息见下表),且使用外部Zookeeper。HBase集群信息节点编号主机名IP地址1master512slave1523slave253✈【提示】由于每台主机的
IP
地址是唯一的,读者在配置
HBase
完全分布式模式时,只要保证集群中各台主机的IP地址在同一网段且唯一即可,而无须改成与本项目实施中相同的IP地址。1.设置节点信息步骤1设置节点主机名。在IP地址为51的节点上启动终端,使用vim命令打开配置文件“hostname”,命令如下。[root@localhost~]#vim/etc/hostname步骤2将配置文件中原有的内容删除,并添加新的主机名“master”。配置完成的“hostname”文件应包含以下配置信息。//将主机名修改为“master”master步骤3使用同样的方法,根据表
1-7
在另外两个节点上分别将主机名修改为“slave1”和“slave2”。配置完成后,重新启动系统以使配置文件生效。……(详见教材)2.安装JDK配置HBase完全分布式模式也需要安装JDK,其安装方法与配置HBase单机模式时相同,此处不再赘述。需要注意的是,3个节点上都需要安装JDK。3.配置SSH免密登录步骤1参考配置
HBase
伪分布式模式中的方法,在
3
个节点上分别配置
SSH
免密登录。步骤2在master节点上执行以下命令,将本地节点的公钥复制到
slave1
和
slave2
节点的“authorized_keys”文件中。[root@master~]#ssh-copy-idslave1[root@master~]#ssh-copy-idslave2使用同样的方法,在
slave1
和
slave2
节点上分别将本地节点的公钥复制到其他节点的“authorized_keys”文件中。4.安装Hadoop在3个节点上分别安装Hadoop,其安装方法与配置HBase伪分布式模式时相同,此处不再赘述。5.配置Hadoop完全分布式模式配置Hadoop
完全分布式模式需要编辑Hadoop的
6
个配置文件,分别是“hadoop-env.sh”“hdfs-site.xml”“core-site.xml”“mapred-site.xml”“yarn-site.xml”和“workers”。步骤1在master节点中切换到配置文件“hadoop-env.sh”“hdfs-site.xml”“core-site.xml”“mapred-site.xml”“yarn-site.xml”和“workers”所在目录,命令如下。[root@master~]#cd/home/hadoop/hadoop/etc/hadoop步骤2编辑配置文件“hadoop-env.sh”。使用vim命令打开配置文件“hadoop-env.sh”后,需要在其中配置JDK环境变量。配置完成的“hadoop-env.sh”文件应包含以下配置信息。exportJAVA_HOME=/home/hadoop/jdk步骤3编辑配置文件“hdfs-site.xml”。使用vim命令打开配置文件“hdfs-site.xml”后,需要在“<configuration></configuration>”标签中添加配置信息。配置完成的“hdfs-site.xml”文件应包含以下配置信息。<configuration><property><name>node.secondary.http-address</name><value>master:50090</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>.dir</name><value>file:/home/hadoop/hadoop/data/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/hadoop/hadoop/data/dfs/data</value></property></configuration>……(详见教材)6.安装并配置Zookeeper配置HBase完全分布式模式通常使用外部的Zookeeper,本书使用Zookeeper3.7.1。步骤1下载Zookeeper安装文件。在master节点启动Firefox浏览器,访问Zookeeper官方网站(/),单击“Download”链接,然后在打开的页面中单击“ApacheZooKeeper3.7.1”链接,如教材图1-18所示。步骤2在打开的页面中单击“/zookeeper/zookeeper-3.7.1/apache-
zookeeper-3.7.1-bin.tar.gz”链接(见教材图
1-19),下载
Zookeeper
安装文件。等待片刻,Zookeeper安装文件下载完成。步骤3解压Zookeeper安装文件。在master节点启动终端,将Zookeeper安装文件解压到“/home/hadoop”目录,命令如下。[root@masterhadoop]#cdDownloads[root@masterDownloads]#tar-zxvfapache-zookeeper-3.7.1-bin.tar.gz-C/home/hadoop……(详见教材)7.配置HBase完全分布式模式配置HBase完全分布式模式需要编辑HBase的3个配置文件,分别是“hbase-env.sh”“hbase-site.xml”和“regionservers”。步骤1在
master
节点中切换到配置文件“hbase-env.sh”“hbase-site.xml”和“regionservers”所在目录,命令如下。[root@masterconf]#cd/home/hadoop/hbase/conf步骤2编辑配置文件“hbase-env.sh”。使用vim命令打开配置文件“hbase-env.sh”后,需要在其中配置JDK环境变量,并使用外部的Zookeeper进行管理。配置完成的“hbase-env.sh”文件应包含以下配置信息。exportJAVA_HOME=/home/hadoop/jdkexportHBASE_MANAGES_ZK=false //使用外部的Zookeeper步骤3编辑配置文件“hbase-site.xml”。使用vim命令打开配置文件“hbase-site.xml”后,需要在“<configuration></configuration>”标签中修改或添加配置信息。配置完成的“hbase-site.xml”文件应包含以下配置信息。<configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.rootdir</name><value>hdfs://master:9000/hbase</value></property><property><name>hbase.zookeeper.quorum</name><value>master,slave1,slave2</value></property></configuration>……(详见教材)【学生】观看、聆听、思考、根据要求进行操作,先完成的学生帮助本组其他学生完成操作,如遇问题,可询问教师或自行扫码播放“配置HBase完全分布式模式”视频【教师】巡堂指导,及时解决学生的问题实操练习【教师】组织学生上机进行实操练习聆听要求、讨论、思考、操作、记录问题与解决办法【教师】观看学生操作内容,点评学生操作并进行总结课堂小结【教师】简要总结本节课的要点1.HBase简介2.HBase与Hadoop的关系3.HBase数据模型4.HBase架构【学生】总结回顾知识点作业布置【教师】布置课后作业老师扫描此码进行本课线上作业布置【学生】完成课后任务教学反思
课题HBaseShell课时4课时(180min)教学目标知识目标:(1)掌握常规操作命令的格式,如help、status、version命令等(2)掌握数据定义命令的格式,如create、list、describe命令等(3)掌握数据操作命令的格式,如put、get、scan、delete命令等技能目标:(1)能够使用HBaseShell与HBase进行交互素养目标:(1)增强主动思考、积极寻求问题解决方法的意识(2)提高隐私保护意识,树立正确的价值观教学重难点教学重点:掌握常规操作命令的格式、数据定义命令的格式、数据操作命令的格式教学难点:使用HBaseShell与HBase进行交互教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,收集并了解HBaseShell的相关知识,并让学生在学习平台上留言讨论【学生】登录学习平台收集相关资料,思考并留言讨论考勤【教师】使用APP进行签到【学生】按照老师要求签到问题导入【教师】播放“什么是Shell”和“使用HBaseShell操作HBase的好处”视频(详见教材),并提出以下问题:问题1:说一说你对Shell的理解。问题2:简述使用HBaseShell操作HBase的好处。【学生】观看、思考、回答【教师】总结学生的回答,导入本节课课题:HBaseShell传授新知【教师】讲解HBaseShell常规操作命令、数据定义命令、数据操作命令等知识2.1常规操作命令✈【教师】利用多媒体展示“Shell环境”图片,并进行讲解HBase启动成功后,输入以下命令可进入Shell环境。[root@localhost~]#hbaseshell✈【提示】本项目中的实践均在HBase单机模式下完成。进入Shell环境后,可执行一些常规操作命令,包括查看帮助、查看状态、查看版本和查看当前用户。✈【教师】随机邀请学生回答以下问题:HBase的单机模式、伪分布式模式和完全分布式模式有什么区别?✈【学生】聆听、思考、回答✈【教师】总结学生的回答2.1.1查看帮助熟练使用
help
命令,可在不借助网络或其他参考资料的情况下快速获取命令的帮助信息。help命令格式如下。help['命令名']【实例2-1】查看HBaseShell中的所有命令。help✈【教师】利用多媒体展示“实例2-1语句执行结果(部分)”图片,并进行讲解由图可以看出,help命令不加参数时会将HBaseShell中所有命令以分组的形式显示出来,如常规操作命令包括processlist、status命令等,数据定义命令包括alter、create命令等。【实例2-2】查看create命令的帮助信息。help'create'✈【教师】利用多媒体展示“实例2-2语句执行结果(部分)”图片,并进行讲解✈【教师】随机邀请学生回答以下问题:在HBaseShell中,命令名称以及命令格式中的参数在使用时需要区分大小写吗?✈【学生】聆听、思考、回答✈【教师】总结学生的回答在HBaseShell中,命令名称必须为小写,否则系统会报错。例如,输入“HELP”命令时,系统会提示错误信息“NameError(uninitializedconstantHBaseReceiver::HELP)”。此外,命令格式中的所有参数区分大小写。2.1.2查看状态使用status命令可查看HBase集群的状态信息,其命令格式如下。//查看集群的状态信息statusstatus'summary'//查看集群最简洁的状态信息status'simple'//查看集群详细的状态信息status'detailed'✈【教师】随机邀请学生回答以下问题:status命令不加参数时,status语句表示什么?✈【学生】聆听、思考、回答✈【教师】总结学生的回答【实例2-3】查看HBase集群的状态信息。status✈【教师】利用多媒体展示“实例2-3语句执行结果”图片,并进行讲解【实例2-4】查看HBase集群详细的状态信息。status'detailed'✈【教师】利用多媒体展示“实例2-4语句执行结果(部分)”图片,并进行讲解2.1.3查看状态使用version命令可查看HBase的版本信息,其命令格式如下。version【实例2-5】查看当前环境中HBase的版本信息。version✈【教师】利用多媒体展示“实例2-5语句执行结果”图片,并进行讲解2.1.4查看当前用户使用whoami命令可查看当前用户的详细信息,其命令格式如下。whoami【实例2-6】查看当前用户的详细信息。whoami✈【教师】利用多媒体展示“实例2-6语句执行结果”图片,并进行讲解2.2数据定义命令与关系型数据库不同,HBase
中没有数据库的概念,其基本组成单位为表。数据定义是指对表进行的操作,包括创建表、查看所有表、查看表结构、修改表结构、判断表是否存在、禁用/启用表、删除表等。2.2.1创建表使用
create
命令可创建一个新表,创建新表时须指明表名和列族名。create
命令格式如下。create'表名','列族名1'[,'列族名2']…create'表名',{NAME=>'列族名1'[,VERSIONS=>版本号]}[,{NAME=>'列族名2'[,VERSIONS=>版本号]}]…上述语句中,方括号表示内容为可选项;符号“=>”表示将后面的值赋给指定的参数;版本号表示列族版本数,是指单元格内的数据可以保留的版本个数。【实例2-7】创建名为test的表,要求表中包含一个列族info,且使用默认参数。create'test','info'也可以使用以下语句。create'test',{NAME=>'info'}✈【教师】利用多媒体展示“实例2-7语句执行结果”图片,并进行讲解【实例2-8】创建名为student的表,要求表中包含两个列族stu_info和stu_grade,且列族版本数分别为2和5。create'student',{NAME=>'stu_info',VERSIONS=>2},{NAME=>'stu_grade',VERSIONS=>5}✈【教师】随机邀请学生回答以下问题:在创建表时,如果不指定列族版本数,查询结果是什么?✈【学生】聆听、思考、回答✈【教师】总结学生的回答2.2.2查看所有表使用list命令可查看HBase中的所有表,其命令格式如下。list【实例2-9】查看HBase中的所有表。list✈【教师】利用多媒体展示“实例2-9语句执行结果”图片,并进行讲解2.2.3查看表结构使用describe命令可查看表的结构信息,其命令格式如下。describe'表名'【实例2-10】查看student表的结构信息。describe'student'✈【教师】利用多媒体展示“实例2-10语句执行结果”图片,并进行讲解✈【教师】随机邀请学生回答以下问题:一般情况下,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-11】添加列族。在student表中添加列族test。alter'student','test'✈【教师】利用多媒体展示“实例2-11语句执行结果”图片,并进行讲解【实例2-12】修改列族版本数。将student表中列族stu_info的版本数修改为4。alter'student',{NAME=>'stu_info',VERSIONS=>4}✈【教师】利用多媒体展示“查看student表当前的结构信息”图片,并进行讲解使用describe命令查看student表当前的结构信息,如图所示。由图可以看出,student
表中新添加了列族
test,且其版本数默认为
1,同时列族stu_info的版本数由2变为4。【实例2-13】删除列族。将student表中的列族test删除。alter'student',{NAME=>'test',METHOD=>'delete'}也可以使用以下语句。alter'student','delete'=>'test'✈【提示】HBase表中应至少包含一个列族,因此,当表中只有一个列族时,无法将其删除。✈【教师】随机邀请学生回答以下问题:当HBase表中只有一个列族时,能否将其删除?✈【学生】聆听、思考、回答✈【教师】总结学生的回答2.2.5判断表是否存在使用exists命令可判断指定表是否存在,其命令格式如下。exists'表名'【实例2-14】判断student表是否存在。exists'student'✈【教师】利用多媒体展示“实例2-14语句执行结果”图片,并进行讲解由上图可以看出,student表存在。【实例2-15】判断teacher表是否存在。exists'teacher'✈【教师】利用多媒体展示“实例2-15语句执行结果”图片,并进行讲解由上图可以看出,teacher表不存在。2.2.6禁用/启用表1.禁用表(1)使用disable命令可禁用指定表,其命令格式如下。disable'表名'(2)使用disable_all命令可禁用所有满足正则表达式的表,其命令格式如下。disable_all'正则表达式'(3)使用is_disabled命令可判断指定表是否被禁用,其命令格式如下。is_disabled'表名'【实例2-16】禁用表student。disable'student'【实例2-17】禁用所有以“t”开头的表。disable_all't.*'✈【教师】利用多媒体展示“实例2-17语句执行结果”图片,并进行讲解由上图可以看出,当前以“t”开头的表只有test表,根据提示信息输入“y”后,即可将test表禁用。【实例2-18】判断student表是否被禁用。is_disabled'student'✈【教师】利用多媒体展示“实例2-18语句执行结果”图片,并进行讲解由上图可以看出,student表已经被禁用。2.启用表(1)使用enable命令可启用指定表,其命令格式如下。enable'表名'(2)使用enable_all命令可启用所有满足正则表达式的表,其命令格式如下。enable_all'正则表达式'(3)使用is_enabled命令可判断指定表是否被启用,其命令格式如下。is_enabled'表名'【实例2-19】启用student表。enable'student'【实例2-20】判断student表是否被启用。is_enabled'student'✈【教师】利用多媒体展示“实例2-20语句执行结果”图片,并进行讲解由上图可以看出,student表已经被启用。2.2.7删除表删除表分两步进行,首先禁用表,然后删除表。(1)使用drop命令可删除指定表,其命令格式如下。disable'表名'drop'表名'(2)使用drop_all命令可删除所有满足正则表达式的表,其命令格式如下。disable'正则表达式'drop_all'正则表达式'【实例2-21】删除test表。//禁用test表,若test表已禁用,可不执行该操作disable'test'//删除test表drop'test'✈【教师】利用多媒体展示“查看test表是否删除成功”图片,并进行讲解使用list命令查看test表是否删除成功,如图所示。2.3数据操作命令数据操作是指对表中数据进行的操作,包括插入/更新数据、查询数据、删除数据等。2.3.1插入/更新数据使用put命令可向表中插入数据,或更新指定行的数据。在使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨肿瘤科专科疾病护理|临床查房专用教学资料
- 2026年傻子智力测试题及答案
- 2026年心理解压测试题及答案
- 2026年高等应用数学测试题及答案
- 2026年maptq测试题型及答案
- 2026年助理医师技能测试题及答案
- 芯片制造行业研发投入成本管理方案
- 制造业企业精益生产管理方案
- 小学一年级数学老师学期末工作总结
- 小学学生学业质量绿色评价方案
- 依法治县工作课件
- 汕头政治中考试卷及答案
- 2024-2025学年福建省厦门市思明区五年级(下)期末数学试卷
- 《小学数学教学论》课件-第一章
- 沥青罐清理安全协议书
- 室内施工工艺流程图及规范
- 《生产运营管理课件》
- 2025年人教版小学四年级下册趣味数学竞赛试题(附参考答案)
- 财产申报表-被执行人用
- 2020铁路路基工程施工安全技术规程
- 《2025年普通高校在陕招生计划》
评论
0/150
提交评论