版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《HBase分布式数据库实战》课程核心知识:HBase安装、部署、配置、HBaseShell语法、HBaseAPI编程。课程介绍:以能力为本位、以职业实践为主线、以项目课程为主体。培养技能目标:HBase安装、部署、配置能力、HBaseShell操作能力、HBaseAPI编程能力。课程简介课时分配基础篇HBase分布式数据库实战HBase是一个分布式存储、数据库引擎,可以支持千万的QPS、PB级别的存储,这些都已经在生产环境验证,并且在广大的公司已经验证。特别是阿里、小米、京东、滴滴内部都有数千、上万台的HBase集群。篇章引入章节任务HBase分布式数据库实战项目一认识HBase任务一浅谈Hbase的由来任务引入淘宝的实时个性化推荐服务,中间推荐结果存储在HBase中,广告相关的用户建模数据也存储在HBase中,用户模型多种多样,可以用于多种不同场景,例如,针对特定用户投放什么广告,用户在电商门户网站上购物时是否实时报价等。任务概要任务描述:本任务将讲解大数据分布式数据库HBase的发展历史和使用场景,让大家对HBase有初步认识。任务教学目标:了解HBase的由来、使用场景。一数据创新二海量数据与NoSQL教学内容三HBase的由来四HBase的崛起五HBase的使用场景数据创新知识点一挑战需要实现更快地传输数据、高效存储和访问数据。5G、人工智能和边缘智能设备等技术结合在一起。2020英特尔新闻发布会上,英特尔公司首席执行官司睿博表示:2015年以来全球数据量每年增长25%,50%的数据来源于边缘端,全球560亿设备,相当于每个人有7个。到2025年,全球数据量估计达到175ZB(一)数据创新海量数据与NoSQL知识点二(二)海量数据与NoSQL关系型数据库的优缺点关系型数据库的优缺点优点缺点保持数据的一致性(事务处理)大量数据的写入处理(这点尤为重要)由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)为有数据更新的表做索引或表结构(schema)变更可以进行Join等复杂查询字段不固定时应用对简单查询需要快速返回结果的处理HBase的由来知识点三(三)HBase的由来Google的三驾马车BigTableGFSMapReduceHadoopHBase1.HBase的由来(三)HBase的由来1.HBase的由来HBase历史年份事件Nov2006谷歌公布BigTable文件。Feb2007最初的HBase原型创建由
Hadoop
贡献。Oct2007随着Hadoop0.15.0,第一个可用的HBase也发布了。Jan2008HBase成为
Hadoop的子项目。Oct2008HBase0.18.1发布。Jan2009HBase0.19发布。Sept2009HBase
0.20.0
发布。May2010HBase成为Apache的顶级项目。HBase的特点数据多版本面向列大数据类型单一稀疏无模式(三)HBase的由来2.HBase的特点HBase的崛起知识点四HBase是一个分布式的、面向列的开源数据库,该技术来源于FayChang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。HBase的定义(四)HBase的崛起列的可以动态增加,并且列为空就不存储数据,节省存储空间。HBase自动切分数据,使得数据存储自动具有水平scalability。HBase可以提供高并发读写操作的支持。不能支持条件查询,只支持按照Rowkey来查询。(四)HBase的崛起2.HBase崛起的原因HBase的使用场景知识点五HBase为语料库中的文档提供了存储。Bigtable支持行级的访问,以便抓取工具可以插入或更新单独的文档。爬虫不断抓取互联网新的页面。这些网页都存储在Bigtable的文档记录。MapReduce的作业运行在整个表上,为页面搜索应用程序生成搜索索引。用户发起网络页面搜索请求。网络页面搜索应用程序查询搜索索引,然后直接从Bigtable中找出匹配的文档。查询的结果返回并呈现给用户。(五)HBase的使用场景1.典型互联网搜索问题在本任务中,我们主要学习了以下内容:数据创新海量数据与NoSQLHBase的由来HBase的崛起HBase的使用场景任务小结1、完成项目一任务一的课后练习题2、自行查阅大数据资料,谈谈你对HBase的认识作业谢谢!THANKS!《HBase分布式数据库实战》HBase分布式数据库实战项目二认识HBase任务一浅谈HBase运行机制回顾知识点1
数据创新回顾知识点2
海量数据与NoSQL回顾知识点3HBase的由来回顾知识点4HBase的崛起回顾回顾知识点5HBase的使用场景任务引入广告成为互联网公司的一个主要收入来源。我们现在每天通过HBase处理百亿级广告的请求和曝光日志,访问HBase的延迟,80%在20ms之内,保证了数据的秒级实时回流,实现检索、曝光、点击和效果日志百亿数据的实时关联,提供完整丰富的用户特征数据。精细的特征数据会带来更好的模型,产生更好的广告效果,进而提升广告收入。任务概要任务描述:本任务介绍HBase的运行机制,包括HBase系统架构以及Region服务器、Store和HLog这三者的工作原理。任务教学目标:掌握HBase的系统架构知识。一HBase简介二HBase系统架构教学内容HBase简介知识点一HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。(一)HBase简介(一)HBase简介HBase和BigTable的底层技术对应关系项目BigTableHBase文件存储系统GFSHDFS海量数据处理MapReduceHadoopMapReduce协同服务处理ChubbyZookeeper(一)HBase简介1.HBase与传统关系数据库的对比分析随着Web2.0应用的不断发展,传统的关系数据库已经无法满足Web2.0的需求,无论在数据高并发方面,还是在高可扩展性和高可用性方面,传统的关系数据库都显得力不从心标题文字添加数据类型数据操作存储模式数据索引数据维护可伸缩性传统数据库(一)HBase简介2.HBase访问接口HBase访问接口类型特点场合NativeJavaAPI最常规和高效的访问方式适合HadoopMapReduce作业并行批处理HBase表数据HBaseShellHBase的命令行工具,最简单的接口适合于HBase管理ThriftGateway利用Thrift序列化技术,支持C++、PHP、Python等多种语言适合其他易购系统在线访问HBase表数据RESTGateway解除了语言限制支持REST风格的HttpAPI访问HBasePig使用PigLatin流式编程语言来处理HBase中的数据适合做数据统计Hive简单当需要以类似SQL语言的方式来访问HBase的时候HBase系统架构知识点二(二)HBase系统架构(二)HBase系统架构1.Client客户端Client客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程。HBase客户端使用HBase的RPC机制与Master和Region服务器进行通信。其中,对于管理类操作,客户端与Master进行RPC;而对于数据读写类操作,客户端则会与Region服务器进行RPC。Client客户端(二)HBase系统架构2.Zookeeper服务器在HBase服务器集群中,每个Region服务器都需要到Zookeeper中进行注册,Zookeeper会实时监控每个Region服务器的状态并通知给Master,这样,Master就可以通过Zookeeper随时感知到各个Region服务器的工作状态。Zookeeper服务器HBase中可以启动多个Master,但是Zookeeper可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总有唯一一个Master在运行。Zookeeper中保存了-ROOT-表的地址和Master的地址,客户端可以通过访问Zookeeper获得-ROOT-表的地址,并最终通过“三级寻址”找到所需的数据。(二)HBase系统架构3.Master主服务器Master主要负责表和Region的管理工作。•管理用户对表的增加、删除、修改、查询等操作。•实现不同Region服务器之间的负载均衡。•在Region分裂或合并后,负责重新调整Region的分布。•对发生故障失效的Region服务器上的Region进行迁移。Master(二)HBase系统架构4.Region服务器点击此处添加正文,文字是您思想的提炼,为了最终呈现发布的良好效果,请言简意赅的阐。并根据需要酌情增减文字,即便信息错综复杂,需用更多的文字来表述。请您尽可能提炼思想的精髓。恰如其分的表达观点,往往事半功倍。Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求。HBase一般采用HDFS作为底层存储文件系统,因此Region服务器需要向HDFS文件系统中读写数据。Region服务器(二)HBase系统架构4.Region服务器Region服务器内部管理了一系列Region对象和一个HLog文件,其中HLog是磁盘上面的记录文件,它记录着所有的更新操作。点击此处添加文本内容,如关键词、部分简单介绍等。(二)HBase系统架构4.Region服务器用户读写数据的过程当用户写入数据时,会被分配到相应的Region服务器去执行操作。用户数据首先被写入到MemStore和HLog中,当操作写入HLog之后,commit()调用才会将其返回给客户端。当用户读取数据时,Region服务器会首先访问MemStore缓存,如果数据不在缓存中,才会到磁盘上面的StoreFile中去寻找。(二)HBase系统架构4.Region服务器缓存的刷新MemStore缓存的容量有限,系统会周期性地调用Region.flushcache()把MemStore缓存里面的内容写到磁盘的StoreFile文件中,清空缓存,并在HLog文件中写入一个标记,用来表示缓存中的内容已经被写入StoreFile文件中。每个Region服务器都有一个自己的HLog文件,在启动的时候,每个Region服务器都会检查自己的HLog文件,确认最近一次执行缓存刷新操作之后是否发生新的写入操作。(二)HBase系统架构4.Region服务器Region服务器是HBase的核心模块,而Store则是Region服务器的核心。每个Store对应了表中的一个列族的存储。每个Store包含一个MemStore缓存和若干个StoreFile文件。Store的工作原理(二)HBase系统架构4.Region服务器HLog的工作原理HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志(WriteAheadLog),也就是说,用户更新数据必须首先被记入日志后才能写入MemStore缓存,并且直到MemStore缓存内容对应的日志已经被写入磁盘之后,该缓存内容才会被刷新写入磁盘。在本任务中,我们主要学习了以下内容:HBase简介:HBase与传统关系数据库的对比分析HBase访问接口HBase系统架构:Client客户端
MasterZookeeper服务器
Region服务器任务小结1、完成项目二任务一的课后练习题作业谢谢!THANKS!《HBase分布式数据库实战》HBase分布式数据库实战项目二认识HBase任务二
初探HBase数据模型回顾知识点1HBase简介回顾知识点2
HBase系统架构回顾任务引入数据模型(DataModel)是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。任务概要任务描述:从本项目开始,我们将从技术层面学习HBase,本任务将讲解HBase的概念视图及物理视图的相关知识点。任务教学目标:掌握HBase概念视图中的相关概念。掌握HBase物理视图中的相关概念。一概念视图二物理视图教学内容HBase数据模型概述知识点一(一)概念视图在HBase的概念视图中,HBase实际上就是一个稀疏、多维、持久化存储的映射表,它采用行键(RowKey)、列(ColumnFamily)、列限定符(ColumnQualifier)和时间戳(Timestamp)进行索引,每个值都是未经解释的字节数组byte[]。重要元素表行列族列限定符单元格时间戳数据坐标(一)概念模型HBase数据的概念视图示例行键时间戳列族content列族anchor“com.cnn.www”t5
anchor:=”CNN”t4
anchor:my.look.ca=”CNN.com”“com.cnn.www”t3content:html=”<html>...”
t2content:html=”<html>...”
t1content:html=”<html>...”(一)概念模型HBase采用表来组织数据,表由行和列组成,列划分为若干个列族。表每个HBase表都由若干行组成,每个行由行键(RowKey)来标识。行键可以是任意字符串(最大长度是64KB,实际应用中长度一般为10〜100字节)行(一)概念模型一个HBase表被分组成许多“列族”的集合,它是基本的访问控制单元。列族需要在表创建时就定义好,在HBase中,访问控制、磁盘和内存的使用统计都是在列族层面进行的。列族列族里的数据通过列限定符(或列)来定位。列限定符不用事先定义,也不需要在不同行之间保持一致。列限定符没有数据类型,总被视为字节数组byte[]。列限定符(一)概念模型在HBase表中,通过行、列族和列限定符确定一个“单元格”(Cell)。单元格中存储的数据没有数据类型,总被视为字节数组byte[]。每个单元格中可以保存一个数据的多个版本,每个版本对应一个不同的时间戳。单元格每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引。每次对一个单元格执行操作(新建、修改、删除)时,HBase都会隐式地自动生成并存储一个时间戳。一个单元格的不同版本是根据时间戳降序的顺序进行存储的,这样最新的版本可以被最先读取。时间戳(一)概念模型HBase使用坐标来定位表中的数据,对于我们熟悉的关系数据库而言,数据定位可以理解为采用“二维坐标”,即根据行和列就可以确定表中一个具体的值。但是,HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此可以视为一个“四维坐标”,即[行键,列族,列限定符,时间戳]。数据坐标物理视图知识点二(二)物理视图概念视图&物理视图在之前的概念视图中,我们可以看到,有些列是空的,即这些列上面不存在值。在物理视图中,这些空的列不会被存储成null,而是根本就不会被存储,当请求这些空白的单元格的时候,会返回null值。(二)物理视图1.面向列的存储(二)物理视图1.面向列的存储行式数据库主要适合于小批量的数据处理,如联机事务型数据处理,我们平时熟悉的Oracle和MySQL等关系数据库都属于行式数据库。列式数据库主要适合于批量数据处理和即席查询(Ad-HocQuery)。(二)物理视图2.表和region对于每个HBase表而言,表中的行是根据行键的值的字典序进行维护的,表中包含的行的数量可能非常庞大,无法存储在一台机器上,需要分布存储到多台机器上。因此,需要根据行键的值对表中的行进行分区,每个行区间构成一个分区,被称为“Region”(二)物理视图2.表和regionMaster主服务器会把不同的Region分配到不同的Region服务器上,但是同一个Region是不会被拆分到多个Region服务器上的。每个Region服务器负责管理一个Region集合,通常在每个Region服务器上会放置10〜1000个Region。(二)物理视图2.region的定位HBase数据的概念视图示例层次名称作用第一层ZooKeeper文件记录了-ROOT-表的位置信息第二层-ROOT-表记录了.META.表的Region位置信息,-ROOT-表只能有一个Region。通过-ROOT-表就可以访问.META.表中的数据第三层.META.表记录了用户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所以用户数据表的Region位置信息HBase使用类似B+树的三层结构来保存Region位置信息在本任务中,我们主要学习了以下内容:HBase概念模型:表、行、列族、列限定符、单元格、时间戳、数据坐标HBase物理模型:面向列的存储表和regionregion的定位任务小结1、完成项目二任务二的课后练习题作业谢谢!THANKS!《HBase分布式数据库实战》HBase分布式数据库实战项目三安装HBase任务一安装HBase回顾知识点1
概念视图回顾知识点2
物理视图回顾任务引入基于之前安装过的Hadoop及相关组件,本任务将讲解HBase的安装方式,有了之前的安装基础,相信大家很快就能完成HBase的安装。任务概要任务描述:HBase和Hadoop一样有三种安装模式,分别是单机模式、伪分布式模式和完全分布式模式,本任务将分别讲解三种模式的安装、配置方法。任务教学目标:回顾Hadoop的安装方法。分别掌握Hbase的三种安装、配置方法。一安装Hadoop二HBase单机模式安装教学内容三HBase伪分布模式安装四HBase完全分布式模式安装安装Hadoop知识点一Hadoop的官网:/(一)安装Hadoop1.下载Hadoop(一)安装Hadoop第一步:将下载的hadoop2.7.1用XFTP工具导入到该usr/local目录中,并解压,将压缩包删除。[root@localhostlocal]#lsbinetcgameshadoop-2.7.1.tar.gzincludeliblib64libexecsbinsharesrc[root@localhostlocal]#tar-zxvfhadoop-2.7.1.tar.gz#解压出大量的包[root@localhostlocal]#rm–rfhadoop-2.7.1.tar.gz[root@localhostlocal]#mvhadoop-2.7.1hadoop#将hadoop-2.7.1名字改成hadoop[root@localhostlocal]#lsbinetcgameshadoop-2.7.1includeliblib64libexecsbinsharesrc2.准备工作(一)安装Hadoop验证hadoop是否可用[root@localhost~]#cd/usr/local/hadoop[root@localhosthadoop]#lsbinetcincludeliblibexecLICENSE.txtNOTICE.txtREADME.txtsbinshare[root@localhosthadoop]#bin/hadoopversion#查看Hadoop版本信息Hadoop2.7.12.准备工作(一)安装Hadoop将/usr/local/hadoop/etc/hadoop中的hadoop-env.sh中的JAVA_HOME修改为:当前节点JAVA_HOME绝对路径,不使用${JAVA_HOME}[root@localhost~]#cd/usr/local/hadoop/hadoop/etc/hadoop[root@localhost~]#vihadoop-env.shexportJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-92.b10-1.el7_9.x86_64/jre3.修改配置文件(一)安装Hadoop第二个要修改的是core-site.xml[root@localhosthadoop]#vicore-site.xml<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property><property><name>fs.defaultFS</name><value>hdfs://31:9000</value></property></configuration>3.修改配置文件(一)安装Hadoop修改配置文件以后,要执行名称节点的格式化[root@localhosthadoop]#pwd/usr/local/hadoop/hadoop[root@localhosthadoop]#bin/hdfsnamenode–format4.执行名称节点格式化(一)安装Hadoop执行以下命令启动启动Hadoop。[root@localhosthadoop]#./sbin/start-dfs.sh[root@localhosthadoop]#sbin/start-dfs.sh5.启动Hadoop(一)安装Hadoop在windows电脑的浏览器中,输入http://ip:50070来查看hdfs的web管理界面,其中ip值的是你的虚拟机的ip地址。6.使用Web界面查看HDFS信息HBase单机模式安装知识点二(二)HBase单机模式安装1.下载HBase首先找到适合的版本,在网址/book.html#basic.prerequisites中,我们可以查询Hadoop2.7.1版本适合的HBase版本(二)HBase单机模式安装1.下载HBase从HBase的官网下载HBase安装包,网址/apache/hbase/。(二)HBase单机模式安装2.修改conf/env.sh首先是修改JAVA_HOME的属性,大概在文件的29行位置,需要把该行的注释去掉,并添加本地JAVA的安装位置。#Thejavaimplementationtouse.Java1.7+required.exportJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-92.b10-1.el7_9.x86_64/jre然后找到HBASE_MANAGES_ZK配置,将属性的值改为true即可。#TellHBasewhetheritshouldmanageit'sowninstanceofZookeeperornot.exportHBASE_MANAGES_ZK=true(二)HBase单机模式安装3.修改hbase-site.xml需要在<configuration>标签之后添加配置信息,具体内容如下<configuration><property><name>hbase.rootdir</name><value>file:///usr/local/hbase-1.4.13/hbase-tmp</value></property><property><name>perty.dataDir</name><value>/usr/local/hbase-1.4.13/zookeeper-tmp</value></property></configuration>(二)HBase单机模式安装4.查看Hadoop版本接下来查看当前HBase所基于的Hadoop版本,并做版本适配。[root@localhosthbase-1.4.13]#lslib|grep'^hadoop-'hadoop-annotations-2.7.4.jarhadoop-auth-2.7.4.jarhadoop-client-2.7.4.jar与我们安装的Hadoop-2.7.1版本不一致,因此需要复制Hadoop中相应的jar包到HBase的lib文件夹下,如果版本一致,则不需要将上面对应的文件从hadoop安装文件夹中复制到HBase的lib文件夹下。(二)HBase单机模式安装5.启动HBase[root@localhosthbase-1.4.13]#bin/start-hbase.sh输入上述命令,如果没有意外的话,会有相应的输出日志显示HBase启动成功,可以通过输入jps命令查看是否有相应的HMaster进程。在单节点模式中,HBase的所有服务均运行在一个JVM中,包括HMaster、一个HRegionServer和ZooKeeper服务,所有只会看到一个HMaster。HBase伪分布模式安装知识点三(三)HBase伪分布模式安装1.配置hbase-site.xml<configuration><property><name>hbase.rootdir</name><value>hdfs://31:9000/hbase</value></property><property><name>perty.dataDir</name><value>/usr/local/hbase-1.4.13/zookeeper-tmp</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property></configuration>这里主要进行两项设置,一是开启HBase的分布式运行模式,二是设置文件存储位置为HDFS的/hbase目录(三)HBase伪分布模式安装2.启动HBase[root@localhosthbase-1.4.13]#bin/start-hbase.sh如果启动正常的话,HBase会在HDFS中建立文件,在上述配置中,设置的文件位置为/hbase,我们可以在HDFS的web界面查看。HBase完全分布模式安装知识点四(四)HBase完全分布模式安装节点配置主机名用户名MasterZooKeeperRegionServernode1root√√×node2rootbackup√√node3root×√√(四)HBase完全分布模式安装1.配置node1的hbase-site.xml[root@node1conf]#vihbase-site.xml<property><name>hbase.rootdir</name><value>hdfs://31:9000/hbase</value></property><property><name>perty.dataDir</name><value>/usr/local/hbase-1.4.13/zookeeper-tmp</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>node1,node2,node3</value></property>对比伪分布式模式的配置,这里主要是增加了一个属性hbase.zookeeper.quorum,该属性的值会让HBase启动时在相应节点上运行ZooKeeper实例。(四)HBase完全分布模式安装2.在node1上配置slave节点列表[root@node1conf]#viregionservers删掉默认的localhost,并且添加想运行RegionServer的节点名,一个节点一行node2node3(四)HBase完全分布模式安装3.设置node2为运行HMaster的备用节点[root@node1conf]#vibackup-masters注意该文件并不存在,使用上述命令设置保存后会生成该文件。这里直接添加一行填上对应的主机名即可,本文为node2。(四)HBase完全分布模式安装4.从node1复制HBase文件到其他节点[root@node1hbase-1.4.13]#cd..[root@node1local]#scp-r./hbase-1.4.13node2:~/[root@node1local]#scp-r./hbase-1.4.13node3:~/(四)HBase完全分布模式安装5.在node1上启动HBase[root@node1local]#hbase-1.4.13/bin/start-hbase.sh如果没有问题,在各个节点下执行jps命令,查看服务是否都启动正常。[root@node1local]#jps7963HQuorumPeer6812NameNode7116SecondaryNameNode9885Jps7278ResourceManager8031HMaster[root@node2local]#jps4894HQuorumPeer4456NodeManager5615HRegionServer5969HMaster4849Jps4894DataNode[root@node3local]#jps8949HQuorumPeer4894HRegionServer6266Jps4959NodeManager9486DataNode在本任务中,我们主要学习了以下内容:安装HadoopHBase单机模式安装HBase伪分布模式安装HBase完全分布式模式安装任务小结1、完成项目三任务一的课后练习题作业谢谢!THANKS!《HBase分布式数据库实战》HBase分布式数据库实战项目三安装HBase任务二HBaseWebUI回顾知识点1
安装Hadoop回顾知识点2
HBase单机模式安装回顾回顾知识点3HBase伪分布模式安装回顾知识点4HBase完全分布式模式安装
任务引入对于初学者来说,通过命令行查看HBase的各种信息会有一些不适应,所以HBase自带了一个WebUI可以直观地通过网页查看HBase的信息。任务概要任务描述:本任务将介绍该界面中各个版块的展示信息,同学们需要掌握该界面的访问方法,知道各个版块的展示信息。任务教学目标:掌握查看HBaseWebUI的方法。了解各版块展示的信息。一主页教学内容主页知识点一(一)主页启动HBase后,在浏览器中输入HBaseWeb的访问地址,如:31:16010,即可看到如图3-2-1所示的页面。(一)主页1.RegionServers上图展示了HBase集群WebUI的主页,在这个页面中,用户可以查看HBase集群信息、状态、表、region服务器、任务等。下面将根据页面由上到下的顺序介绍各个版块的信息。(一)主页1.RegionServers参数介绍RequestsPerSecond表示每秒读或写请求次数,可以用来监控HBase请求是否均匀。Num.Regions,每个Regionserver节点上的region个数,观察每个节点的region个数是否均匀点击Memory、Requests、Storefiles、Compactions选项能显示更多相关信息(一)主页2.BackupMasters在这个版块中,若在配置文件中配置了BackupMaster,即可在这里看到相关信息。(一)主页3.tables参数介绍UserTables记录用户创建表,可以查看到在线、下线、失败的region个数。SystemTables记录系统表,安全版本集群有三张系统表:hbase:acl、hbase:meta、hbase:namespace。Snapshots记录创建的快照信息。(一)主页3.tables参数介绍TableAttributes版块显示了表自身的信息,包括表是否启用、表是否被合并。TableSchema版块显示了表中各个列族的详细信息。TableStats版块如下一页图所示,在该版块中,可以出发三钟操作,分别是Compact、Split、Merge。(一)主页3.tables参数介绍Compact为合并操作,该操作在后台异步进行,执行该命令时设置region名更有选择则性,region名可以从上面的表中找到,即TableRegions版块中的Name的值。Split可以拆分以单个region或全表为目标。Merge和split相对应,当一个table数据量比较小,但是region数量特别多时,就需要mergeregion。(一)主页4.tasks该版块一般用来与RIT栏一起确认,如果RIT为空且non-RPC为空则HBase服务启动正常。(一)主页5.SoftwareAttributes参数介绍在页面最下方的SoftwareAttributes版块显示了集群的粗粒度信息,如图3-2-9所示,包括HBase版本、Hadoop版本、当前HBase集群在HDFS中的根目录、平均负载、Zookeeper连接地址等。点击zkdump链接可以跳转至ZooKeeper存储界面,这个页面会显示所有HBase存储在ZooKeeper中的节点,这对于查看集群状态并解决问题很有帮助,如下一页图所示(一)主页5.SoftwareAttributes参数介绍这个页面展示了使用HBaseShell调用zk_dump操作相同的信息,用户可以看到HBase在配置文件系统中的根目录、当前的master地址、-ROOT-表地址和所有提供服务的region服务器。在本任务中,我们主要学习了以下内容:查看HBaseWebUI的方法页面关键参数介绍任务小结1、完成项目三任务二的课后练习题作业谢谢!THANKS!《HBase分布式数据库实战》实践篇HBase分布式数据库实战搜狐推荐引擎系统接入几亿用户的行为日志,每日资讯量在百万级,每秒约有几万条左右的用户日志被实时处理入库。在这种数据量上,要求推荐请求和相关新闻请求每秒支持的访问次数在万次以上,推荐请求的响应延时控制在70ms以内,同时系统要求10s左右完成从日志到用户模型的修正过程。篇章引入章节任务HBase分布式数据库实战项目四
熟悉HBaseShell
任务一熟悉基本HBaseShell操作回顾知识点1
查看HBaseWebUI主页回顾任务引入和Hive一样,HBase也内置了丰富的Shell命令来进行表、列族等的管理。本任务将从基础的HBaseShell命令开始讲解,介绍一些常用的HBaseDDL、DML等操作。任务概要任务描述:本任务将详细讲解各类型的Shell命令用法。任务教学目标:掌握查看Shell帮助命令的方法。重点掌握DDL、DML命令的用法。一HBaseShell操作二Help命令教学内容三General命令四DDL命令五namespace命令六DML命令HBaseShell操作知识点一(一)HBaseShell操作当安装好HBase后(后文所有操作都基于伪分布模式进行),我们进入HBase的安装路径的bin目录,启动HBaseShell,命令如下。[root@localhostbin]#./hbaseshell(一)HBaseShell操作可以通过help‘命名名称’来查看命令行的具体使用,包括命令的作用和用法。hbase(main):002:0>helpHelp命令知识点二(一)HBaseShell操作可以通过help‘命名名称’来查看命令行的具体使用,包括命令的作用和用法。hbase(main):002:0>helpGeneral命令知识点三(三)General命令1.显示集群状态——status参数有‘summary’、‘simple’、‘detailed’、‘replication’四种,默认为‘summary’,命令如下:hbase(main):002:0>status‘summary’1activemaster,0backupmasters,1servers,0dead,2.0000averageload(三)General命令2.查询数据库版本——versionversion命令用于查询HBase数据库的版本,命令如下:hbase(main):006:0>version1.4.13,r38bf65a22b7e9320f07aeb27677e4533b9a77ef4,SunFeb2302:06:36PST2020(三)General命令3.显示当前用户与组——whoamiwhoami命令可以显示当前操作HBase的用户和群组,命令如下:hbase(main):007:0>whoamiroot(auth:SIMPLE)groups:root(三)General命令4.查看操作表的命令——table_help顾名思义,table_help命令能列出关于操作表的帮助,命令如下:hbase(main):008:0>table_help(三)General命令5.退出HBaseShell——exit在shell中输入exit,按下回车,即可退出shell命令行。hbase(main):009:0>exit[root@localhostbin]#知识点四DDL命令(四)DDL命令1.创建表——create基本语法:create'表名','列族名1','列族名2','列族名3'若想为列族指定更多的属性,如VERSIONS、TTL、BLOCKCACHE、CONFIGURATION等属性,则可以使用如下语法:create'表名',{NAME=>'列族名1'},{NAME=>'列族名2'},{NAME=>'列族名3'}(四)DDL命令2.添加(修改、删除)表结构——schemaalter添加一个列族alter'表名','列族名'删除一个列族alter'表名',{NAME=>'列族名',METHOD=>'delete'}(四)DDL命令3.获取表的描述——describe基本语法:describe'表名'(四)DDL命令4.列举所有表——list基本语法:list(四)DDL命令5.表是否存在exists基本语法:exists'表名'(四)DDL命令6.启用表——enable,禁用表——disable通过enable和disable来启用/禁用这个表,相应的可以通过is_enabled和is_disabled来检查表是否被禁用:enable'表名'is_enabled'表名'disable'表名'is_disabled'表名'(四)DDL命令7.禁用满足正则表达式的所有表——disable_all基本语法:.匹配除“\n”和"\r"之外的任何单个字符*匹配前面的子表达式任意次(四)DDL命令8.启用满足正则表达式的所有表——enable_all基本语法:和上面的禁用一样,.匹配除“\n”和"\r"之外的任何单个字符*匹配前面的子表达式任意次(四)DDL命令9.删除表——drop需要先禁用表,然后再删除表,启用的表是不允许删除的基本语法:disable'表名'drop'表名'(四)DDL命令10.删除满足正则表达式的所有表drop_all基本语法:.匹配除“\n”和"\r"之外的任何单个字符*匹配前面的子表达式任意次(四)DDL命令11.获取某个表赋值给一个变量——get_table基本语法:通过var=get_table‘表名’赋值给一个变量对象,然后对象.来调用,就像面向对象编程一样,通过对象.方法来调用,这种方式在操作某个表时就不必每次列举表名了。(四)DDL命令12.获取rowKey所在的区locate_region基本语法:locate_region'表名','行键'(四)DDL命令13.显示hbase所支持的所有过滤器——show_filters基本语法:过滤器用于get和scan命令中作为筛选数据的条件,类型关系型数据库中的where的作用namespace命令知识点五(五)namespace命令1.列举命名空间——list_namespace基本语法:hbase(main):037:0>list_namespace(五)namespace命令2.获取命名空间描述——describe_namespace基本语法:hbase(main):039:0>describe_namespace'命名空间名称'(五)namespace命令3.查看命名空间下的所有表——list_namespace_tables基本语法:list_namespace_tables'命名空间名称'(五)namespace命令4.创建命名空间——create_namespace基本语法:create_namespace'命名空间名称'(五)namespace命令5.修改命名空间的属性——alter_namespace#添加/修改命名空间的属性hbase(main):044:0>alter_namespace'testns',{METHOD=>'set','PROPERTY_NAME'=>'PROPERTY_VALUE'}#删除命名空间的属性hbase(main):045:0>alter_namespace'testns',{METHOD=>'unset',NAME=>'PROPERTY_NAME'}(五)namespace命令6.删除命名空间——drop_namespace基本语法:drop_namespace'命名空间名称'知识点六DML命令(六)DML命令1.插入或者修改数据——puttbl_user表rowkeyinfodetailaddressidnameagebirthdayemailcreate_time
test11张三251995-10-29abc@2021-10-2717:00:00湖北省test22李四261995-10-28def@2021-10-2717:01:01湖南省test33王五271995-10-27ghi@163.com2021-10-2717:02:02河南省(六)DML命令1.插入或者修改数据——put基本语法:#当列族中只有一个列时'列族名:列名'使用'列族名'put'表名','行键','列族名','列值'put'表名','行键','列族名:列名','列值'(六)DML命令2.全表扫描——scan基本语法:scan'表名'(六)DML命令3.获取数据——get基本语法:get'表名','行键'#获取某一行某列族的数据get'tbl_user','test1','info'(六)DML命令4.删除某个列族中的某个列——delete基本语法:delete'表名','行键','列族名:列名'(六)DML命令5.删除某行数据——deleteall基本语法:deleteall'表名','行键'(六)DML命令6.清空整个表的数据——truncate基本语法:truncate'表名'(六)DML命令7.查询表中有多少行——count基本语法:count'表名'(六)DML命令8.自增——incr基本语法:incr'表名','行键','列族:列名',步长值(六)DML命令9.计数器get_counter基本语法:get_counter'表名','行键','列族:列名'(六)DML命令10.修饰词1.COLUMNS:查询同一个列族的多个列基本语法:scan'表名',{COLUMNS=>['列族名1:列名1','列族名1:列名2',...]}2.TIMESTAMP指定时间戳基本语法:scan'表名',{COLUMNS=>['列族名1:列名1','列族名1:列名2',...],TIMESTAMP=>时间戳数值}(六)DML命令10.修饰词3.TIMERANGE表示的是“>=开始时间and<结束时间”基本语法:scan'表名',{TIMERANGE=>[timestamp1,timestamp2]}4.VERSIONS基本语法:scan'表名',{COLUMNS=>['列族名1:列名1','列族名1:列名2',...],TIMESTAMP=>时间戳数值}(六)DML命令10.修饰词5.STARTROW基本语法:scan'表名',{STARTROW=>'行键名'}6.STOPROW基本语法:scan'表名',{STOPROW=>'行键名'}(六)DML命令10.修饰词7.LIMIT返回的行数基本语法:scan'表名',{LIMIT=>行数}(六)DML命令11.FILTER条件过滤器1.ValueFilter值过滤器基本语法:#语法:binary等于某个值scan'表名',FILTER=>"ValueFilter(=,'binary:列值')"#语法substring:包含某个值scan'表名',FILTER=>"ValueFilter(=,'substring:列值')"(六)DML命令11.FILTER条件过滤器2.ColumnPrefixFilter列名前缀过滤器基本语法:#语法substring:包含某个值scan'表名',FILTER=>"ColumnPrefixFilter('列名前缀')"在本任务中,我们主要学习了以下内容:HBaseShell操作Help命令General命令DDL命令namespace命令DML命令任务小结1、完成项目四任务一的课后练习题作业谢谢!THANKS!《HBase分布式数据库实战》HBase分布式数据库实战项目五HBaseAPI开发
任务一HBase常用JavaAPI回顾知识点1
HBaseShell操作回顾回顾知识点2Help命令回顾知识点3General命令回顾知识点4DDL命令回顾知识点5namespace命令回顾知识点6DML命令任务引入在日常工作中,会遇到HBaseShell无法满足需求的情况,这时就需要使用API进行编程来满足复杂需求,本任务将介绍HBase中一些常用API的用法。任务概要任务描述:从本任务开始,我们将进入HBase开发部分的学习,本任务将介绍HBase中常用的JavaAPI接口,对其功能和常用方法做简要说明,然后给出实例来介绍如何使用这些方法。任务教学目标:掌握常用的HBaseJavaAPI功能及用法。掌握HBaseAPI开发流程。一HBase常用API二HBase编程实例教学内容HBase常用API知识点一(一)HBase常用APIAdmin类常用方法返回值方法作用void(why,e)终止服务器或客户端voidaddColumn(TableNametableName,HColumnDescriptorcolumn)向一个已存在的表添加列booleanbalancer调用balancer进行负载均衡voidcreateTable(HTableDescriptordesc)创建表voiddeleteTable(TableNametableName)删除表void(tableName)禁用表voidenableTable(TableNametableName)启用表HTableDescriptorlistTableDescriptorsByNamespace(Stringname)按照命名空间列出表项booleantableExists(TableNametableName)表是否存在1.org.apache.hadoop.hbase.client.Admin(一)HBase常用APIHBaseConfiguration类常用方法返回值方法作用staticorg.apache.hadoop.conf.ConfigurationaddHbaseResources(org.apache.hadoop.conf.Configurationconf)向当前配置中添加配置信息staticorg.apache.hadoop.conf.Configurationcreate()使用默认的HBase配置创建staticvoidmerge(org.apache.hadoop.conf.ConfigurationdestConf,org.apache.hadoop.conf.ConfigurationsrcConf)合并两个配置文件2.org.apache.hadoop.hbase.HBaseConfiguration(一)HBase常用APIHTable类常用方法返回值方法作用voidclose()释放缓冲区资源,根据数据变化更新Tablevoiddelete(Deletedelete)删除表中指定的单元格或行booleanexists(Getget)检查指定的列是否存在get(Getget)从指定位置取出相应的值voidput(Putput)向指定位置添加值ResultScannergetScanner(Scanscan)获得ResultScanner实例3.HTable类常用方法(一)HBase常用APIHTableDescriptor类常用方法返回值方法作用HTableDescriptoraddFamily(HColumnDescriptorfamily)添加列族Collection<HColumnDescriptor>getFamilies()返回列表中所有列族的名字TableNamegetTableName()返回表的名字byte[]getValue(byte[]key)获得某个属性的值HColumnDescriptorremoveFamily(byte[]column)删除某个列族HTableDescriptorsetValue(byte[]key,byte[]value)设置属性的值4.org.apache.hadoop.hbase.HTableDescriptor(一)HBase常用APIHColumnDescriptor类常用方法返回值方法作用byte[]getName()获取列族的名字byte[](byte[]key)获取某列某单元格的值HColumnDescriptorsetValue(byte[]key,byte[]value)设置某单元格的值5.org.apache.hadoop.hbase.HColumnDescriptor(一)HBase常用APIPut类常用方法返回值方法作用PutaddColumn(byte[]family,byte[]qualifier,byte[]value)将指定的列族、列限定符、对应的值添加到Put实例中List<Cell>get(byte[]family,byte[]qualifier)获取列族和列限定符指定列中所有行的值booleanhas(byte[]family,byte[]qualifier)检查列族和列限定符是否存在booleanhas(byte[]family,byte[]qualifier,byte[]value)检查列族和列限定符是否存在指定的value6.org.apache.hadoop.hbase.client.Put(一)HBase常用APIGet类常用方法返回值方法作用PutaddColumn(byte[]family,byte[]qualifier,byte[]value)将指定的列族、列限定符、对应的值添加到Put实例中List<Cell>get(byte[]family,byte[]qualifier)获取列族和列限定符指定列中所有行的值booleanhas(byte[]family,byte[]qualifier)检查列族和列限定符是否存在booleanhas(byte[]family,byte[]qualifier,byte[]value)检查列族和列限定符是否存在指定的value7.org.apache.hadoop.hbase.client.Get(一)HBase常用APIResult类常用方法返回值方法作用booleancontainsColumn(byte[]family,byte[]qualifier)检查是否包含列族和列限定符制定的列List<Cell>getColumnCells(byte[]family,byte[]qualifier)获得列族和列限定符指定的列所有行的值NavigableMap<byte[],byte[]>getFamilyMap(byte[]family)根据列族获得包含列限定符和值的所有行的键值对byte[]getValue(byte[]family,byte[]qualifier)获得列族和列限定符指定的单元格的最新值8.org.apache.hadoop.hbase.client.Result(一)HBase常用APIResultScanner类常用方法返回值方法作用voidclose()关闭scanner并释放资源Resultnext()获得下一个Result实例9.org.apache.hadoop.hbase.client.ResultScanner(一)HBase常用APIScan类常用方法返回值方法作用ScanaddColumn(byte[]family,byte[]qualifier)限定需要查找的列族ScanaddFamily(byte[]family)限定列族和列限定符指定的列ScansetMaxVersions()限定最大的版本个数ScansetTimeRange(longminStamp,longmaxStamp)限定最大的时间戳和最小的时间戳,只有在此范围内的单元格才能被获取ScansetFilter(Filterfilter)指定Filter过滤掉不需要的数据ScansetStartRow(byte[]startRow)限定开始的行,否则从表头开始ScansetStopRow(byte[]stopRow)限定结束的行,不包含此行ScansetBatch(intbatch)限定最多返回的单元格数目。用于防止返回过多的数据导致OutoMemory错误10.org.apache.hadoop.hbase.client.ScanHBase编程实例知识点二(二)HBase编程实例进入CentOS7下的eclipse程序,在eclipse左上角依次点击File→New→JavaProject1.编程环境搭建(二)HBase编程实例在弹出的窗口中输入项目名称HBaseAPI,点击Finish即可创建项目1.编程环境搭建(二)HBase编程实例添加依赖包:在新创建的项目窗口上右键项目→New→Folder,创建conf文件夹1.编程环境搭建(二)HBase编程实例将HBase安装目录下conf文件夹中的hbase-site.xml文件复制到上一步创建的HBaseAPI项目的conf文件夹中1.编程环境搭建(二)HBase编程实例在项目上右键→properties,在弹出的界面左边点击JavaBuildPath,点击Libraries,点击右边的AddExternalJARs,添加HBase依赖包1.编程环境搭建(二)HBase编程实例然后选择HBase安装目录下的lib文件夹,按ctrl+A全选,点击确定1.编程环境搭建(二)HBase编程实例此外,我们再次右键项目→properties→JavaBuildPath→Libraries→AddClassFolder1.编程环境搭建(二)HBase编程实例选择刚才创建的conf文件夹,点击OK1.编程环境搭建(二)HBase编程实例首先右键项目创建新的package,命名为HBaseAPI2.编写程序(二)HBase编程实例创建一张表,如果表存在,则输出“tablealreadyexists”publicstaticvoidcreatTable(StringtableName,String[]familys)throwsException{HBaseAdminadmin=newHBaseAdmin(conf);if(admin.tableExists(tableName)){System.out.println("tablealreadyexists!");}else{HTableDescriptortableDesc=newHTableDescriptor(tableName);for(inti=0;i<familys.length;i++){tableDesc.addFamily(newHColumnDescriptor(familys[i]));}admin.createTable(tableDesc);System.out.println("createtable"+tableName+"ok.");}}2.编写程序(关键代码)(二)HBase编程实例删除表publicstaticvoiddeleteTable(StringtableName)throwsException{try{HBaseAdminadmin=newHBaseAdmin(conf);admin.disableTable(tableName);admin.deleteTable(tableName);System.out.println("deletetable"+tableName+"ok.");}catch(MasterNotRunningExceptione){e.printStackTrace();}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省金坛市重点达标名校2026届中考物理仿真试卷含解析
- 黄石社区工作者考试真题库(2025版)
- 巴彦县2025届三年级数学第二学期期中预测试题含答案解析
- 上海护理课件最佳课件创意奖
- 巢湖市和县2025年数学三下期末复习检测试题含答案解析
- 护理美学:自然之美与科技融合
- 2026年中考数学三轮复习 考点突破 专题9 平行线尺规作图与三角形判定与性质
- ICU护理质量控制与改进
- 2025-2026学年一年级语文下册期中测试卷(B卷)部编版
- 战略规划与执行总监面试题(某大型集团公司)题库详解
- m认主协议书模板
- 《Unity虚拟现实开发实践》Unity-特效基础
- 区块链技术与原理智慧树知到期末考试答案章节答案2024年山东劳动职业技术学院
- “上头”电子烟 是毒不是烟-禁毒宣传教育主题班会课件
- 油水井措施运行工作规范
- 加药装置操作说明
- “星火计划”人才培养项目
- 保险规划综合案例分析-
- 卫生部手术分级目录(2023年1月份修订)
- GB/T 3836.4-2021爆炸性环境第4部分:由本质安全型“i”保护的设备
- GB/T 308.1-2013滚动轴承球第1部分:钢球
评论
0/150
提交评论