![单元7 分布式数据库HBase部署与应用_第1页](http://file4.renrendoc.com/view10/M01/13/2E/wKhkGWWK3ZGAevpVAAIsWlE0E5s798.jpg)
![单元7 分布式数据库HBase部署与应用_第2页](http://file4.renrendoc.com/view10/M01/13/2E/wKhkGWWK3ZGAevpVAAIsWlE0E5s7982.jpg)
![单元7 分布式数据库HBase部署与应用_第3页](http://file4.renrendoc.com/view10/M01/13/2E/wKhkGWWK3ZGAevpVAAIsWlE0E5s7983.jpg)
![单元7 分布式数据库HBase部署与应用_第4页](http://file4.renrendoc.com/view10/M01/13/2E/wKhkGWWK3ZGAevpVAAIsWlE0E5s7984.jpg)
![单元7 分布式数据库HBase部署与应用_第5页](http://file4.renrendoc.com/view10/M01/13/2E/wKhkGWWK3ZGAevpVAAIsWlE0E5s7985.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《大数据平台部署与运维》单元7分布式数据库HBase部署与应用01理解HBase的原理与体系架构02掌握HBase伪分布式和完全分布式安装步骤学习目标03能够使用命令操作HBase04能够监控HBase运行状态任务7.1搭建伪分布式HBase任务7.2部署HBase完全分布式集群学习任务任务7.3HBase集群运维任务7.1搭建伪分布式HBase【任务场景】经理:小张,全球非关系型数据库(NoSQL)近几年保持在30%左右高速增长,企业应用率越来越高。Hadoop生态圈中常用的分布式NoSQL数据库了解吗?小张:是Hadoop的数据库HBase吗?经理:是的,HBase是一个分布式存储、数据库引擎,可以支持千万的QPS(每秒查询率)、PB级别的存储,这些都已经在生产环境验证,并且在很多大公司已经验证。特别是阿里、小米、京东、滴滴内部都有数千、上万台的HBase集群。咱们公司的业务系统数据量越来越多,数据存储和并发访问压力越来越大,研究一下大公司的基于HBase的解决方案。小张:好的。经理:先把HBase安装部署好。小张:好的,没问题。任务7.1搭建伪分布式HBase【任务布置】HBase的安装和运行需要依赖于JDK和Hadoop,因此必须将HBase安装操作的基础环境提前安装准备好,才能进行HBase的安装和操作。本任务要求在前面已完成安装部署Hadoop平台的master01节点上,完成HBase伪分布式的安装和部署,安装完成后需要启动并访问HBase。一般在测试场景下经常会部署单节点的伪分布式HBase,理解并掌握HBase伪分布式的安装部署,可以为后续生产环境下部署HBase分布式集群打下基础。任务7.1搭建伪分布式HBase7.1.1HBase原理HBase,全称为HadoopDatabase,是一个高性能、高可靠性、面向列、可伸缩的分布式存储系统,使用HBase技术,可以在廉价PC服务器上搭建起大规模结构化存储集群。HBase是GoogleBigTable的开源实现,它模仿并提供了基于Google文件系统的BigTable数据库的所有功能:HBase使用HadoopHDFS作为其文件存储系统;使用HadoopMapReduce来处理HBase中的海量数据,使用ZooKeeper作为协同服务。HBase的设计目的是处理非常庞大的表,甚至能使用普通的计算机处理超过10亿行的、由数百万列元素组成的数据表的数据。任务7.1搭建伪分布式HBaseHBase是Hadoop生态系统的一个组成部分,HBase在Hadoop生态系统的位置如下图所示:任务7.1搭建伪分布式HBaseHBASE的特点有:(1)大:一个表可以有上亿行,上百万列。(2)面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。(3)稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。(4)无模式:每行都有一个可排序的主键和和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以截然不同的列。(5)数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳。(6)数据类型单一:数据都是字符串,无类型区别。任务7.1搭建伪分布式HBaseHBase和传统关系数据库的具体区别如下:(1)数据类型:HBase只有简单的字符串类型,所有其他类型都由用户自己定义,它只保存字符串,而关系数据库有丰富的数据类型和存储方式。(2)数据操作:HBase只提供很简单的插入、查询、删除、清空等操作,且HBase的表和表之间是分离的,没有复杂的表表间关系,也没必要实现表和表之间的关联等操作,而传统的关系数据库通常有各种各样的函数和连接操作。(3)存储模式:HBase是基于列存储的,几个文件保存在一个列族中,不同列族的文件是分离的,而传统的关系数据库是基于表格结构和行模式保存的。(4)数据维护:HBase的更新其实不是更新,只是一个主键或者列对应的新版本,其旧有的版本仍然会保留,所以实际上只是插入了新的数据,而不是传统关系数据库里的替换修改。任务7.1搭建伪分布式HBase比较项HbaseHDFS写入方式随机写入仅能追加扫描方式随机读取&小范围扫描&全表扫描全表扫描&分区扫描读写方式适合随机读写存储在HDFS上的数据适合只写或者多次读取的方式删除方式指定删除不支持指定删除,只能全表删除SQL性能比HDFS慢4-5倍非常好结构化存储列族&列较随意&序列化文件存储量1PB左右30PB左右数据分布表格根据Regions分布到不同集群中,当数据增长时,会自动分割regions然后重新分布数据以分布式方式存储在集群中的节点上。数据会被分成块,然后存储在HDFS集群中存在的节点上数据存储所有数据都以表,行和列的形式存储说有数据都以小文件的形式存储,一般文件的大小为64MB数据模型基于google的Bigtable模型,该模型使用键值对进行存储HDFS中,使用MapReduce技术将文件划分为Key-Value使用场景HBase能够处理大规模数据,它不适于批次分析,但它可以向Hadoop实时地调用数据HDFS最适于执行批次分,无法执行实时分析HBase和HDFS的对比如下表所示:任务7.1搭建伪分布式HBase7.1.2HBase体系架构HBase的表结构的设计和关系型数据库不同,首先,HBase需要为每一张表确定一个唯一的主键rowkey,后续的查询操作都基于rowkey进行查询。其次,和关系型数据库需要设计表中的字段不同,HBase仅需要为表设计好列族即可,列族中的列,由插入数据的时候指定即可。
1.HBase数据模型HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳每个值是一个未经解释的字符串,没有数据类型,用户在表中存储数据,每一行都有一个可排序的行键和任意多的列。
HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)。任务7.1搭建伪分布式HBase表:HBase采用表来组织数据,表由行和列组成,列划分为若干个列族。行:rowkey保存为字节数组,是用来检索记录的主键。可以是任意字符串(最大长度是64KB)。存储时,数据按照Rowkey的字典序(byteorder)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)。列族:由两部分组成:columnfamily和qualifier。列族是表的schema的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如courses:history,courses:math都属于courses这个列族。有关联的数据应都放在一个列族里,不然会降低读写效率。目前hbase并不能很好的处理多个列族,建议最多使用2个列族。任务7.1搭建伪分布式HBase列限定符:列族里的数据通过列限定符(或列)来定位。时间戳:HBase中通过row和columns确定的为一个存贮单元称为cell。每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是64位整型。Cell:在HBase表中,通过行、列族和列限定符确定一个“单元格”(cell),由{rowkey,column(=<family>+abel>),version}唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存储。任务7.1搭建伪分布式HBase2.面向列的存储结构Hbase概念视图RowKeyTimeStampColumn"contents:"Column"anchor:"Column"mime:""n.www"t9
"anchor:""CNN"
t8
"anchor:my.look.ca""CNN.com"
t6"<html>c..."
"text/html"t5"<html>b..."
t3"<html>a..."
任务7.1搭建伪分布式HBaseRowKeyTimeStampColumn"anchor:""n.www"t9"anchor:""CNN"t8"anchor:my.look.ca""CNN.com"RowKeyTimeStampColumn"contents:""n.www"t6"<html>c..."t5"<html>b..."t3"<html>a..."RowKeyTimeStampColumn"mime:""n.www"t6"text/html"Hbase物理视图样例任务7.1搭建伪分布式HBase7.1.3HBase与JDK、Hadoop之间的兼容关系HBase与JDK的兼容关系HBase与Hadoop的兼容关系任务7.1搭建伪分布式HBase编号HBase安装方式特点1独立模式(Standalone)单节点、部署简单、使用自带的ZooKeeper、所有守护进程和ZooKeeper进程运行在一个JVM2伪分布式单节点、使用自带的ZooKeeper、守护进程和ZooKeeper进程独立运行3完全分布式集群多节点、使用单独搭建ZooKeeper集群、守护进程分布在集群中的所有节点上HBase部署方式任务7.1搭建伪分布式HBase7.1.4HBase伪分布式部署基础编号软件基础版本号1操作系统CentOS7,主机名localhost2Java编译器JDK3伪分布式Hadoop平台hadoop任务7.1搭建伪分布式HBase[任务实施]【工作流程】搭建伪分布式HBase的基本工作流程包括:1.下载并解压HBase安装包;2.配置环境变量;3.修改配置文件;4.启动并检查HBase搭建结果。【操作步骤】解压安装包:将下载好的HBase安装包拷贝到CentOS7系统的/usr/local目录下,然后进行解压,并改为短路径名,方便后面环境变量的配置。具体操作命令如下所示:2.配置环境变量:在/etc/profile文件中配置HBase安装路径环境变量,使得HBase的操作命令在任意目录下都可以访问。具体操作如下所示:[root@localhost/]#cd/usr/local[root@localhost/]#tarzxvfhbase-2.2.6-bin.tar.gz[root@localhost/]#mvHBase-2.2.6-binhbase[root@localhost/]#vim/etc/profile#在上面文件中添加以下2行内容:exportHBASE_HOME=/usr/local/hbaseexportPATH=$PATH:$HBASE_HOME/bin#运行以下命令使环境变量生效[root@localhost/]#source/etc/profile任务7.1搭建伪分布式HBase
3.修改HBase安装路径下conf目录下的两个配置文件:hbase-env.sh和hbase-site.xml。hbase-env.sh文件中增加以下两行配置:exportJAVA_HOME=/usr/local/jdk1.8exportHBASE_MANAGES_ZK=trueHBase的运行需要依赖JDK,所以在hbase-env.sh文件中配置了JDK的安装路径JAVA_HOME,此项配置和要和本机实际的JDK安装路径保持一致。HBASE_MANAGES_ZK配置项配置为true,表示使用HBase自带的ZooKepper实现分布式协调服务,如果使用的是单独安装ZooKeeper,则需要把此配置项改为false。任务7.1搭建伪分布式HBase<property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value></property><property> <name>dfs.replication</name> <value>1</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property>base-site.xml文件中几个配置项的含义:hbase.rootdir配置的是HBase数据在HDFS文件系统下的存储路径,这个目录是regionserver的共享目录,用来持久化HBase。hbase.zookeeper.quorum配置项的含义是ZooKeeper所在节点的主机名;dfs.replication配置的是文件存放的副本数,伪分布式模式下配置为1即可。hbase.cluster.distributed配置项的含义是是否使用集群模式,默认情况下此配置项值为false,表示本地模式(Standalone),如果使用伪分布式或完全分布式的话,都需要将此选项值配置为true。hbase-site.xml文件中配置内容如下所示:任务7.1搭建伪分布式HBase4.启动并测试环境搭建结果可以通过start-hbase.sh来启动HBase终端运行jps命令查看运行结果任务7.1搭建伪分布式HBase任务7.2部署HBase完全分布式集群学习任务任务7.3HBase集群运维任务7.2部署HBase分布式集群[任务情境]【任务场景】小张:经理,HBase的伪分布式环境我已经搭建好了。经理:企业生产环境下都是用集群环境,ZooKeeper作为分布式协调组件,在HBase集群中扮演着重要的辅助角色,尤其是在确保HBase集群稳定性和高可用性方面有重要作用。咱们公司的高可用Hadoop集群中已经部署好了ZooKeeper,可以在这个基础上尽快把HBase集群部署好。小张:HBase集群需要依赖Hadoop集群来运行。经理:是的,尽快搭建起来。小张:好的,没问题。任务7.2部署HBase分布式集群【任务布置】
在真实的生产场景下,通常会使用多个节点的HBase集群进行分布式数据的存储和管理。在前面Hadoop和ZooKeeper环境部署的基础上,能够进行HBase集群的规划和安装部署,为后续的项目提供操作环境。本任务完成3个节点的HBase集群设计和规划,根据规划完成HBase分布式集群的安装部署。任务7.2部署HBase分布式集群7.2.1HBase集群规划在安装部署HBase之前首先进行集群规划,HBase的完全分布式集群环境架构和Hadoop相似,都是主从(master/slave)模式。本任务以3个节点的HBase集群为例演示HBase集群部署过程,集群的规划如下表所示:表7-11HBase集群规划主机名节点环境用途master01CentOS7、JDK1.8、Hadoop-2.7.3、ZooKeeper-3.4.6主节点worker01CentOS7、JDK1.8、Hadoop-2.7.3、ZooKeeper-3.4.6从节点1worker02CentOS7、JDK1.8、Hadoop-2.7.3、ZooKeeper-3.4.6从节点2任务7.2部署HBase分布式集群7.2.2HBase主要配置选项及其含义在安装部署HBase集群过程中,hbase-site.xml中我们根据需要进行了一些参数配置,HBase的常见的配置项如下表所示,安装时可以根据需要进行配置。表7-12HBase主要配置选项及含义名称含义hbase.rootdir文件系统路径hbase.cluster.distributed是否集群模式,默认为falsehbase.zookeeper.quorumZooKeeper服务器地址,多个用逗号分隔hbase.master.portHBaseMaster绑定的端口,默认16000.portHBaseMasterWebUI的端口,-1为不运行UI实例,默认16010.bindAddressHBaseMasterWebUI的绑定地址,默认hbase.regionserver.portHBaseRegionServer绑定的端口,默认16020.portHBaseRegionServerWebUI的端口,-1表示RegionServerUI不运行,默认16030.bindAddressHBaseRegionServerWebUI的地址,默认zookeeper.session.timeoutzookeeper会话超时(毫秒),默认90000zookeeper.znode.parentZooKeeper中HBase的RootZNode,默认/hbase任务7.2部署HBase分布式集群7.2.3HBase访问命令HBase集群采用的是主从模式,启动集群时,只需要在主节点上执行启动命令start-hbase.sh即可启动HBase集群。执行start-hbase.sh命令后,首先会调用hbase-daemons.sh逐步启动ZooKeeper、Master、RegionServer、master-backup相关进程。启动每个进程时会调用各进程相关的脚本(如regionserver会调用regionservers.sh)来进行环境的配置,并通过ssh远程登录到其他从节点的机器上,执行hbase-daemon.sh来启动从节点上的进程。任务7.2部署HBase分布式集群hbase-daemon.sh脚本的职责就是启动各个进程,在启动过程中会先做进程判断,日志滚动等准备,最后执行启动命名,逐步的启动各个节点上的进程。表7-13单独启动HBase相关进程的命令命令含义hbase-daemon.shstartmaster单独启动一个HMaster进程使用命令hbase-daemon.shstopmaster单独停止一个HMaster进程hbase-daemon.shstartregionserver单独启动一个HRegionServer进程hbase-daemon.shstopregionserver单独停止一个HRegionServer进程任务7.2部署HBase分布式集群7.2.4基于WebUI监控HBase的状态HBase为主节点和从节点都提供了默认的Web浏览器访问的HTTP端口号。HMaster的HTTP端口号为16010,HRegionServer的端口号为16030。需要注意的是,HBase1.0之前的版本主从节点使用的HTTP端口号分别是60010和60030,需要注意区分。如果所有设置都正确,就能够通过浏览器连接到主节点查看HMaster的状态。访问方式为:http://主节点主机名(或ip):16010即可访问到页面。任务7.2部署HBase分布式集群[任务实施]【工作流程】
部署3个节点的完全分布式HBase集群的基本工作流程包括:1.下载并解压HBase安装包;2.配置环境变量;3.修改hbase-env.sh配置文件;4.修改hbase-site.xml文件;5.修改regionsevers文件;6.将HBase安装包拷贝拷贝到集群其他节点;7.启动并检查HBase搭建结果;8.通过浏览器监控HBase运行状态。任务7.2部署HBase分布式集群【操作步骤】1.在Apache官网下载HBase安装包,将安装包拷贝到Linux系统的/usr/local[root@master01/]#cd/usr/local[root@master01/]#tarzxvfhbase-1.4.0-bin.tar.gz[root@master01/]#mvhbase-1.4.0-binhbase//换为短名,方便环境变量配置exportHBASE_HOME=/usr/local/hbaseexportPATH=$HBASE_HOME/bin:$PATH2.配置环境变量:在/etc/profile文件中配置HBase路径。exportJAVA_HOME=/usr/local/jdk1.8#配置jdk安装路径exportHBase_MANAGES_ZK=false#配置不使用HBase自带的ZK3.修改hbase目录下conf目录中的hbase-env.sh配置文件,在文件中添加JDK环境变量配置,
以及配置不使用自带的ZooKeeper。任务7.2部署HBase分布式集群4.修改hbase目录下conf目录中的hbase-site.xml配置文件。<!—指定hbase在HDFS上的存储路径--><property><name>hbase.rootdir</name><value>hdfs://master01:9000/hbase</value></property><!—指定ZooKeeper的地址,多个地址用逗号分隔--><property><name>hbase.zookeeper.quorum</name><value>master01,worker01,worker02</value></property><!—指定hbase采用分布式模式--><property><name>hbase.cluster.distributed</name><value>true</value></property>任务7.2部署HBase分布式集群5.修改hbase目录下conf目录中的regionservers文件,在文件中配置从节点regionserver的地址为worker01和worker02节点。worker01worker026.将配置好的hbase目录拷贝到其他两个节点,在终端上执行以下两条命令即可。scp-r/usr/local/hbaseworker01:/usr/localscp-r/usr/local/hbaseworker02:/usr/local7.HBase集群运行:执行start-hbase.sh命令启动HBase,启动命令执行完毕后,使用jps命令检查各节点运行的的进程:主节点应该启动HMaster进程,各从节点应启动HRegionServer进程。主节点和从节点上的进程分别如下图三个图所示:主节点启动的HMaster进程Worker01、worker02节点启动HRegionSserver进程任务7.2部署HBase分布式集群8.使用WebUI监控HBase的状态在浏览器地址栏输入master01:16010,即可访问HBase,如左侧图所示;还可以通过HDFS的WebUI端口号50070,来查看HBase在HDFS下的存储结构,如下图所示,可以看出HBase在HDFS下的存储的znode根目录为/hbase,如右侧图所示:任务7.1搭建伪分布式HBase任务7.2部署HBase完全分布式集群学习任务任务7.3HBase集群运维任务7.3HBase集群运维[任务情境]【任务场景】经理:HBase集群运行起来了,做业务数据存储分析运行状态如何?小张:最近在用HBase集群时,各位小伙伴会遇到RegionServer异常宕机、业务写入延迟增大甚至无法写入等类似问题。经理:尽快找到排查和解决这些问题的思路,同时,重点对HBase系统中的日志进行梳理,对如何通过监控、日志等工具进行问题排查进行总结,形成问题排查解决总结文档,方便项目组成员尽快具备HBase运行维护的能力。小张:好的,没问题。【任务布置】
本任务要求借助工具进行HBase运行监控,通过监控、日志等工具进行HBase运行和应用的问题排查,并将问题成功解决掉。任务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《蔬菜的营养价值》课件
- 《实践的观点》课件
- 《VLSI设计基础》课件
- 常见运维安全问题包括
- 宝迪集团工业旅游新模式探析
- 印鉴卡申请书
- 销售汽车申请书
- 信用贷款申请书
- 大学生泥塑创业项目
- 三位数除以两位数单元练习口算题
- 混合动力汽车发动机检测与维修中职PPT完整全套教学课件
- 统编版高中历史必修中外历史纲要下册第4课中古时期的亚洲课件(共18张PPT)
- 2023年副主任医师(副高)-肿瘤内科学(副高)考试历年真题荟萃带答案
- 工伤认定操作实务全攻略
- 产时子痫应急演练文档
- 阴式子宫全切术-手术室护理查房
- 职业健康检查流程图
- EIM Book 1 Unit 7 Learning languages单元知识要点
- 呼吸系统疾病与麻醉(薛张刚)
- WOMAC骨性关节炎指数评分表
- 5000只淮山羊和波尔山羊杂交良种养殖场建设项目可行性研究报告
评论
0/150
提交评论