《-大数据技术课件第6章PPT内容-.docx》由会员分享,可在线阅读,更多相关《-大数据技术课件第6章PPT内容-.docx(11页珍藏版)》请在优知文库上搜索。
1、“大数据技术课件第6章PPT内容“1、大数据技术与应用第六章HBase分布式数据库应用提纲。6.1HBase简介O6.2HBase集群部署O6.3HBaseShell操作命令O6.4HBase过滤器o6.5HBase编程o习题o小结26.1HBase简介HBase(HadoopDatabaSe)是一个高牢靠性、高性能、面对列、可伸缩的分布式存储系统。HBaSe利用ZooKeePer作为对应。HBaSe与Hadoop紧密集成,如下图所示。3TheHadoopEcosystemo6.1.1HBase架构IHBase采纳Master/Slave架构搭建集群,它隶属于Hadoop生态系统,由Cli2、
2、ent、HMaster、HRegionServerZe)OKeePer等组成,它将数据存储于HDFS中。HBase架构如图62所示。uZOOKeePer是一个分布式的、开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是HadooP和HbaSe的重要组件。UHBaSe中可以启动多个HMaSter,通过Zookeeper的MasterElection机制保证总有一个Master运行。HMasterSHRegionServer,实现其负载均衡;46.1HBaSe简介6.1HBase简介5图图6-26-2HBaseHBase架构架构UHBase采纳Ma3、ster/Sla
3、ve架构搭建集群,它隶属于Hadoop生态系统,由ClientHMasterHRegionServerZOOKeePer等组成,它将数据存储于HDFS中。HMaSter主要负责利用ZooKeeper为HRegionServer安排HRegionoZooKeeper是一个高牢靠、高可用、长久化的分布式协调系统。CIient使用HBaSe的远程过程调用协议(RemoteProcedureCallProtocol,RPC)机制与HMaster和HRegionServer进行通信,对于管理类操作,Client与HMaster进行RPC;对于数据读写类操作,Client与HR4、egionServer进
4、行RPCoHBase架构如图6-2所示。66.1HBase简介6.1HBase简介(I)ZooKeeperZooKeeper是一个开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和HBase的重要组件。分布式的HBaSe依靠于ZOOKeePer集群,全部节点和客户端必需能够正常访问ZooKeeper0HBase默认管理一个单点的ZooKeeper集群,HBase可以把ZooKeeper当作自己的一部分来启动和关闭进程。ZooKeeper也可以直接使用本地配置文件zoo.cfg,不依靠HBase的启动与关闭,独立运行Zo5、OKeeper。HBaseR
5、egionServer向ZooKeeper注册,供应HBaseRegionServer状态信息;HMaster启动时候会将HBase系统表(-ROOT-)加载到ZooKeeperCluster,通过ZooKeePerClUSter可以猎取当前系统表(.META.)的存储所对应的RegiOnSerVer信息。76.1HBaSe简介(2)HMasterHBase中可以启动多个HMaster,通过Zookeeper的MasterElection机制保证总有一个Master运行。HMaster管理HRegionServer,实现其负载均衡;管理和安排HRegi6、on,比如在HRegionSPIit时
6、安排新的HRegion;在HRegionSerVer退出时迁移其内的HRegion到其他HRegionServer上;实现数据定义和数据操作;管理namespace和table的元数据;权限掌握(ACL)管理等86.1HBase简介96.1HBase简介(3)HRegionServerHRegiOnSerVer主要负责响应用户I/O恳求,向HDFS文件系统中读写数据,是HBase中最核心的模块。HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组7、成。每个HStore对应了Table中的一个
7、ColumnFamily的存储,每个ColumnFamily其实就是一个集中的存储单元,因此最好将具备共同10特性的column放在一个COIUmnFamiIy中,这样最高效。IO6.1HBaSe简介(4)HFiIe实际的存储文件功能是由HFile类实现,它被特地创建用于有效存储HBase数据,基于Hadoop的TFiIe类,并仿照Google的BigTabIe架构使用SSTabIe格式。曾在HBase中使用过的Hadoop的MapFiIe类被证明性能不够好。HFile文件格式的具体信息如图6-3所示,文件长度为变长,仅FILEINFO/8、Trailer定长,Trailer中有指针指向其他数
8、据块的指针,它是长久化数据到文件结束时写入,写入后即确定其成为不行变的数据存储文件。IndeX块记录Data和Meta块的偏移量。Data和Meta块实际上都是可选的,但对于大多数HFiie,用户都可以找到Data块。块大小是由HCOIUmnDeSeriPtOr配置的,而该配置可以在创建时由用户指定或者使用默认值。11126.1HBase简介图图6-36-3HFiIeHFiIe结构图结构图6.1HBase简介(5)Write-Ahead-LogWrite-Ahead-Log(简称WAL),是HBase的RegionServer在处理9、数据插入和删除的过程中用来记录操作内容的一种日志。客户端初
9、始化一个更改数据的动作(如:put、delete和incrementcolumnvalue(incr),每一种改动都被包装进KeyValUe对象利用远程调用发送到ReginOSerVer对应这次改动的Region中,数据在RegionServer中首先被写入WAL,然后被写入MemStoreo最终当MemStore达到肯定的大小或者到达指定的时刻之后,数据被异步的长久化到文件系统上。在这之前数据是存储在内存中的,在这段时间里面假如RegionServer崩溃了,内存的数据就没有了,但是我们有WAL,就可以恢复数据。13146.1H10 、Base简介Write-Ahead-LogWrite-A
10、head-LogG.!HBase简介(6)SystemTablesHBase内部保留名为namespace和meta的SystemTablesonamespace指对一组表的规律分组,类似关系型数据库中的DataBase,便利对表在业务上划分。HBase从0.98.0,0.95.2两个版本开头支持namespace级别的授权操作,HBase全局管理员可以创建、修改和回收namespace的授权。15o6.1.2HBase的存储IHBase是基于列式存储的。列式存储是相对于传统关系型数据库的行式存储来说的,列式存储如下图所Jo11 、166.1HBaSe简介基于歹IJ式存储模式基于列式存储模式I
11、HBase以表的形式存储数据。表由行、列(列族)组成,列族(COlUmnFamily)由多个列组成,如下表所示。176.1HBase简介ScoresTabIeScoresTabIeRowKeyTimestampStudentCoursesnamepythonmath610215ts986ts880ts6Kate87610213ts491ts3Alice88590108ts290tslKane836.1HBase简介ROWKey是用来检索记录的主键,访问HBaSeTabIe中的行有三种方式:通过单个R12、OWKey访问、通过ROWKey的Range访问和全表扫描访问。RowKey可以是任意字符
12、串(最大长度是64KB),RoWKey在HBaSe内部保存为字节数组,数据存储时根据RowKey的字典排序(ByteOrder)存储。设计RowKey时,将常常一起读取的行存储放到一起。每个单元格(CelI)由RowKey.Family、ColumnTimestamp确定,Cell中的数据没有类型和长度的限定,以字节码存贮。时间戳的类型是64位整型。时间戳可以由HBase自动赋值,时间戳是精确到毫秒的当前系统时间;时间戳也可以由客户显式赋值。假如应用程序要避开数据版本冲突,就必需自己生成13、具有唯一性的时间戳。每个Cell中,不同版本的数据根据时间倒序排序,最新的数据排在最前面。18提纲06
13、.1HBase简介o6.2HBase集群部署o6.3HBaseShell操作命令06.4HBaSe过滤器06.5HBaSe编程0习题o小结19o6.2.1HBaSe参数配置IHBaSe需要添加环境变量和修改HBaSe参数,修改的配置文件有hbase-env.shhbase-site.xml和regionservers,3台节点机安装配置一样。u(1)修改Master节点和Slave节点的etchosts文件u(2)修改Master节点和Slave节点的/r14、oot/.bash_profile文件u(3)修改配置文件hbase-env.sh留意:留意:HBASE_MANAGES_ZK=tru
14、eHBASE_MANAGES_ZK=true表示使用自带的表示使用自带的ZooKeeperZooKeeper系统,系统,HBaseHBase把把ZooKeeperZooKeeper当作自己一部分来启动和关闭进程。当作自己一部分来启动和关闭进程。u(4)修改配置文件hbase-site.mlu(5)修改regionservers文件206.2HBase集群部署o6.2.2HBase运行与测试IHBase运行需要先启动Hadoop服务,再启动HBase服务15、。u(1)启动Hadoopu(2)启动HBase服务u(3)在slavel节点启动BackupMaster服务u(4)打开扫瞄器,输入ht
15、tp:/master:16010,查看MaSter信息u(5)打开扫瞄器,输入http:/slavel:16010,查看BackupMaSter信息u(6)打开扫瞄器,输入http:/slavel:16030,查看RegionSerVer信息u(7)启动hbaseshell216.2HBase集群部署o6.2.2HBase运行与测试IHBaSe供应了丰富的访问接口,HBaSeSheIl是最常用的交互方式,其供应的基本命令如下表所示。226.16、3HBaseShell操作命令命令描述create创建表alter修改列族(ColUmnFamily)模式describe显示表具体信息IiSt列出H
16、Base中存在的全部表count统计表中行的数量put向指向的表单元添加值get猎取行或单元(CeII)的值delete删除指定对象的值(可以为表、行、列对应的值,另外也可以指定时间戳的值)deleteall删除指定行的全部元素值incr增加指定表的行或列的值scan通过对表的扫描来猎取单元值truncate重新创建指定表disable使表无效enable使表有效exists测试表是否存在drop删除表tools列出HBase所支持的工具17、status返回HBase集群的状态信息ShUtdoWn关闭HBase集群(与exit不同)version返回HBase版本信息exit退出HBaseShello6.3.1general操作I(I)查询服务器状态I(2)查询hbase版本236.3HBaseShell操作命令o6.3.2namespace操作IHBase系统默认定义了两个缺省的namespaceoHbaSe为系统命名空间,包括namespace