收藏 分销(赏)

HBase全套课件教学教程整本书电子教案全书教案课件汇编.pptx

上传人:天**** 文档编号:10251482 上传时间:2025-04-30 格式:PPTX 页数:135 大小:2.23MB
下载 相关 举报
HBase全套课件教学教程整本书电子教案全书教案课件汇编.pptx_第1页
第1页 / 共135页
HBase全套课件教学教程整本书电子教案全书教案课件汇编.pptx_第2页
第2页 / 共135页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2021/12/2 Thursday,#,国家级工程实践教育中心,CONTENTS,课程目标,第一章,HBase,介绍,ITEMS,1,第二章,HBase,模型和系统架构,ITEMS,2,第三章,H,Base,数据读写流程,ITEMS,3,第四章,HBase,环境搭建,ITEMS,4,第五章,HBase Shell,ITEMS,5,第六章,HBase,程序开发,ITEMS,6,第七章,H,Base,高级特性,ITEMS,7,第八章,MapReduce On HBase,ITEMS,8,1,HBase介绍,HBase是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用HBase。Apache HBase是Google BigTable的开源实现,就像BigTable利用了GFS所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于BigTable的能力,1.1,面向行和面向列存储对比,1.1.1,数据库以行、列的二维表的形式存储数据,1.1.2,列式数据库把一列中的数据值串在一起存储起来,然后再存储下一列的数据,1.1.3 两种存储方式的对比,id,name,age,sex,jobs,1,张三,35,男,教师,2,李丹,18,女,学生,3,John,26,男,IT工程师,id,1,2,3,name,张三,李丹,John,age,男,女,男,sex,35,18,26,表,1-3,行,/,列存储对比,行存储,列存储,优点,写入效率高,提供数据完整性保证。,读取过程有冗余,适合数据定长的大数据计算。,缺点,数据读取有冗余现象,影响计算速度。,缺乏数据完整性保证,写入效率低。,改进,优化的存储格式,保证能够在内存快速删除冗余数据。,多磁盘多线程并行写入/读(需要增加运行成本和修改软件)。,应用环境,商业领域,互联网。,互联网。,1.2,HDFS分布式存储特点,HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。,1.优点,(1)高容错性,(2)适合大数据的处理,(3)流式文件写入,(4)可构建在廉价机器上,2.缺陷,(1)不适合低延迟数据访问,(2)无法高效存储大量的小文件,(3)不支持多用户写入及任意修改文件,1.3,HBase的使用场景,HBase不是关系型数据库,也不支持SQL,但是它有自己的特长,这是关系型数据库不能处理的。,1.平台类,2.内容服务类,3.信息展示类,2.1 HBase相关概念,HBase的数据模型也是由一张张的表组成,每一张表里也有数据行和列,但是在HBase数据库中的行和列又和关系型数据库的稍有不同。,1.Table(表),2.Row(行),3.Column(列),4.Column Family(列族),5.Column Qualifier(列标识符),6.Cell(单元格),7.Timestamp(时间戳),2.2 HBase逻辑模型,HBase是一个类似BigTable的分布式数据库,它是一个稀疏的长期存储的(存储在硬盘上)、多维度的、排序的映射表,这张表的索引是行关键字、列关键字和时间戳,HBase中的数据都是字符串,没有类型。,表,2-1 HBase,的逻辑模型,行健,时间戳,列族anchor,列族info,database.software.www,t4,anchor:tel=01012345678,info:PC=100000,t3,anchor:name=,James,t2,info:address=BeiJing,t1,anchor:name=John,c,.software.www,t3,info:address=BeiJing,t2,anchor:tel=01012345678,t1,anchor:name=,James,2.3 HBase物理模型,虽然从逻辑模型来看每个表格是由很多行组成的,但是在物理存储上面,它是按照列来保存的。,表,2-2 HBase,的物理模型,行健,时间戳,列,单元格(值),database.software.www,t1,anchor:name,John,database.software.www,t2,info:address,BeiJing,database.software.www,t3,anchor:name,James,database.software.www,t4,anchor:tel,01012345678,database.software.www,t4,info:PC,100000,c,.software.www,t1,anchor:name,James,c,.software.www,t2,anchor:tel,01012345678,c,.software.www,t3,info:address,BeiJing,2.4 HBase的特点,非关系型数据库严格上不是一种数据库,而是一种数据结构化存储方法的集合。HBase作为一个典型的非关系型数据库,仅支持单行事务,通过不断增加集群中节点数据量来增加计算能力,其具有以下特点。,1.容量巨大,2.面向列,3.稀疏性,4.数据多版本,5.可扩展性,6.高可靠性,7.高性能,8.数据类型单一,2.5 HBase系统架构,HBase同样是主从分布式架构,它隶属于Hadoop生态系统,由以下组件组成:Client,ZooKeeper,HMaster,HRegionServer和HRegion;在底层,它将数据存储于HDFS中,2.5 HBase系统架构,2.5.1 Client,Client包含访问HBase的接口,使用RPC机制与HMaster和HRegionServer进行通信并维护Cache来加快对HBase的访问,比如HRegion的位置信息。,2.5.2 ZooKeeper,ZooKeeper的引入使得Master不再是单点故障,通过选举,保证任何时候集群中只有一个处于Active状态的Master,HMaster和HRegionServer启动时会向ZooKeeper注册。,2.5.3 HMaster,HMaster是HBase集群的主控服务器,负责集群状态的管理维护。,(1)管理用户对表的增、删、改、查操作。,(2)为HRegionServer分配HRegion。,(3)管理HRegionServer的负载均衡,调整HRegion分布。,(4)发现失效的HRegionServer并重新分配其上的HRegion。,(5)当HRegion切分后,负责两个新生成HRegion的分配。,(6)处理元数据的更新请求。,3.1 HRegionServer详解,HRegionServer一般和DataNode在同一台机器上运行,实现数据的本地性。,3.1 HRegionServer详解,3.1.1 WAL,1.WAL滚动,2.WAL失效,3.WAL删除,3.1.2 MemStore,MemStore是一个写缓存(In Memory Sorted Buffer),所有数据的写在完成WAL日志写后,会写入MemStore中,由MemStore根据一定的算法将数据Flush到底层HDFS文件中(HFile)。,3.1 HRegionServer详解,3.1.3 BlockCache,客户的读请求会先到MemStore中查数据,若查不到就到BlockCache中查,再查不到就会从磁盘上读,并把读入的数据同时放入BlockCache。,HBase RegionServer包含三个级别的Block优先级队列:,(1)Single队列,如果一个Block第一次被访问,则放在这一优先级队列中。,(2)Multi队列,如果一个Block被多次访问,则从Single队列移到Multi队列中。,(3)InMemory队列,如果一个Block是InMemory的,则放到这个队列中。,3.1 HRegionServer详解,3.1.4 HFile,HBase的数据以KeyValue(Cell)的形式顺序的存储在HFile中,在MemStore的Flush过程中生成HFile,在HFile中的数据是按Row Key,Column Family,Column排序,对相同的Cell(即这三个值都一样)则按Timestamp倒序排列。,1.数据块,2.元数据块,3.FileInfo,4.数据块索引,5.元数据块索引,6.文件尾,表,3-1 HFile,组成部分,名称,描述,数据块,由多个lock(块)组成,每个块的格式为:块头,+,Key长,+,Value长,+,Key,+,Value。,元数据,元数据是Key-Value类型的值,但元数据,块,只保存元数据的Value值,元数据的Key值保存在第五项(元数据索引块)中。该块由多个元数据值组成。,块,该块保存与HFile相关的一些信息。,FileInfo,是以Key值排序Key-Value类型的值,,,基本格式为:,K,eyValue元素的个数+,(Key+Value类型id+Value)+,(Key+Value类型id+Value)+,数据索引块,该块的组成为:索引块头+,(数据块在文件中的偏移+数据块长+数据块的第一个Key)+,(数据块在文件中的偏移+数据块长+数据块的第一个Key)+,元数据索引块,该块组成格式同数据块索引,只是部分的意义不一样,组成格式:索引块头+,(元数据在文件中的偏移+元数据Value长+元数据Key)+,(元数据在文件中的偏移+元数据Value长+元数据Key)+,文件尾,该块记录了其他各块在,HFile,文件中的偏移信息和其他一些元信息。组成格式如下:文件尾+,Fileinfo偏移+,数据块索引偏移+,数据块索引个数+,元数据索引偏移+,元数据索引个数+数据块中未压缩数据字节数+,数据块中全部数据的Key-Value个数+,压缩代码标识+,版本标识,3.1 HRegionServer详解,3.1.5 HRegionServer的恢复,当一台HRegionServer宕机时,由于它不再发送心跳包给ZooKeeper而被监测到,此时ZooKeeper会通知HMaster,HMaster会检测到哪台HRegionServer宕机,它将宕机的HRegionServer中的HRegion重新分配给其它的HRegionServer,同时HMaster会把宕机的HRegionServer相关的WAL拆分分配给相应的HRegionServer(将拆分出的WAL文件写入对应HRegionServer的WAL目录中,并写入相应的DataNode),从而使这些HRegionServer可以滚动分到的WAL来重建MemStore。,3.1.6 HRegionServer的上线下线,HMaster使用ZooKeeper来跟踪HRegionServer状态。当某个HRegionServer启动时,会首先在ZooKeeper上的Server目录下建立代表自己的文件,并获得该文件的独占锁。,3.2 HRegion,在HBase中,一个表的表行的多少决定了HRegion的大小,表的列族个数又决定了Store的多少,一个Store对应一个MemStore和多个StoreFile,StoreFile则对应一个HFile,HBase表创建时候默认就是一个HRegion,在行记录不断增加下,达到一定的数值HRegion会自动切分,变成多个HRegion,每一个HRegion里面由多个Store组成(Store的个数是由HBase表列族个数决定)。,3.2 HRegion,3.2.1 HRegion分配,任何时刻,一个HRegion只能分配给一个HRegionServer。HMaster记录了当前有哪些可用的HRegionServer,以及当前哪些HRegion分配给了哪些HRegionServer,哪些HRegion还没有分配。,3.2.2 HRegion Split,最初,一个Table只有一个HRegion,随着数据写入增加,如果一个HRegion到达一定的大小,就需要Split成两个HRegion,这个大小由hbase.hregion.max.filesize指定,默认为10GB。,3.2.3 HRegion Compact,当文件达到一定数量(默认3)就会触发Compact操作,多个HFile合并成一个HFile文件,将多个StoreFile文件合并成一个StoreFile,而大文件恰恰又是HDFS所擅长。,3.3 HMaster上线,HMaster启动进行以下步骤:,(1)从ZooKeeper上获取唯一一个代表HMaster的锁,用来阻止其它HMaster成为Master。,(2)扫描ZooKeeper上的Server目录,获得当前可用的HRegionServer列表。,(3)和2中的每个HRegionServer通信,获得当前已分配的HRegion和HRegionServer的对应关系。,(4)扫描.META.Region的集合,计算得到当前还未分配的HRegion,将他们放入待分配HRegion列表。,3.4 数据读流程,(1)-ROOT-HRegion永远不会被Split,保证了最多需要三次跳转就能定位到任意HRegion。,(2).META.表每行保存一个HRegion的位置信息,Row Key采用表名+表的最后一样编码而成。,(3)为了加快访问,.META.表的全部HRegion都保存在内存中。,(4)Client会将查询过的位置信息保存并缓存起来,缓存不会主动失效,3.5 数据写流程,当客户端发起Put等请求时,HBase会执行数据写流程。,(1)客户端首先访问ZooKeeper查找-ROOT-表,然后获取.META.表信息。,(2).META.表记录了每个HRegionServer包含HRegion的Row Key范围,根据Row Key找到对应的HRegionServer地址,HRegionServer会将请求匹配到某个具体的HRegion上面。,(3)HRegion首先把数据写入WAL。,(4)WAL写入成功后,把数据写入缓存MemStore,写完后检查所有MemStore大小的总和是否达到Flush阀值,如果达到,HRegionServer处理Flush请求,将数据写入StoreFile并以HFile的形式存到HDFS上。,3.6 删除数据流程,HBase删除操作不会立即删除HFile,会先将数据打一个删除标签,当开启一个大的合并,才会将打标记的数据删除,这个大合并消耗比较大的性能,只有在晚上或者资源使用少时才使用。,4.HBase环境搭建,HBase运行环境需要依赖于Hadoop集群,如果Hadoop尚未搭建,可以参考同套教材Hadoop大数据开发相关章节。HBase引入ZooKeeper来管理集群的Master和入口地址,因此需要先安装ZooKeeper,再设置HBase。,4.HBase环境搭建,1 ZooKeeper的安装,在ZooKeeper集群环境下只要一半以上的机器正常启动了,那么Zookeeper服务将是可用的。因此,集群上部署Zookeeper最好使用奇数台机器,这样如果有5台机器,只要3台正常工作则服务将正常。在目前的实际生产环境中,一个Hadoop集群最多有三台节点做备用Master,即并不是所有节点都安装ZooKeeper;如果以实验为目的,可以将所有节点都安装ZooKeeper并作为Master使用。,1.解压,将下载好的ZooKeeper文件上传到Hadoop集群中的master节点,使用命令tar-zxvf zookeeper-3.4.5.tar.gz -C/hadoop/将其解压。,2.修改配置文件,(1)创建文件夹,mkdir/hadoop/zookeeper-3.4.5/data /hadoop/zookeeper-3.4.5/log,(2)修改zoo.cfg,进入zookeeper的conf目录修改zoo.cfg。,cp zoo_sample.cfg zoo.cfg,修改zoo.cfg的内容为:,dataDir=/hadoop/zookeeper-3.4.5/data,dataLogDir=/hadoop/zookeeper-3.4.5/log,server.0=192.168.254.128:2888:3888,server.1=192.168.254.129:2888:3888,server.2=192.168.254.131:2888:3888,除了dataDir的内容为修改外,其他配置信息均为新增。,4.HBase环境搭建,(3)创建myid文件,在/hadoop/zookeeper-3.4.5/data文件夹下创建myid文件,将其值修改为0。需要注意的是,zoo.cfg中server.后面的数值必须和“=”后面IP中的myid值保持一致,即IP为192.168.149.129的节点中myid的值必须为1,IP为192.168.149.131的节点中myid的值必须为2。,(4)分发到slave1和slave2节点,scp-r/hadoop/zookeeper-3.4.5/slave1:/hadoop/,scp-r/hadoop/zookeeper-3.4.5/slave2:/hadoop/,同时按照第三步要求修改myid文件对应的值,3.修改三个节点的环境变量,在/etc/profile文件末尾添加export PATH=$PATH:/hadoop/zookeeper-3.4.5/bin,并执行命令source/etc/profile使配置的环境变量生效。,4.HBase环境搭建,本书使用的HBase版本是hbase-1.3.1(不采用1.4.0的原因是该版本基于Hadoop2.7.4平台开发,而本书使用的Hadoop版本是2.6.5,会存在部分版本兼容性问题),可以在Apache的官网下载,下载地址为archive.apache.org/dist/hbase/。,1.解压,将下载好的HBase文件上传到Hadoop集群中的master节点,使用命令tar-zxvf hbase-1.3.1-bin.tar.gz -C/hadoop/将其解压。,2.修改HBase的配置文件,(1)修改hbase-env.sh文件,新增四项配置,export HBASE_CLASSPATH=/hadoop/hadoop-2.6.5/etc/hadoop,export HBASE_PID_DIR=/var/hadoop/pids,export JAVA_HOME=/Java/jdk1.8.0_144/,export HBASE_MANAGES_ZK=false,其中HBASE_CLASSPATH是Hadoop的配置文件路径,配置HBASE_PID_DIR时先创建目录/var/hadoop/pids。,4.HBase环境搭建,一个分布式运行的HBase依赖一个Zookeeper集群,所有的节点和客户端都必须能够访问Zookeeper。默认的情况下HBase会管理一个Zookeep集群,即HBase默认自带一个Zookeep集群,这个集群会随着HBase的启动而启动。而在实际的商业项目中通常自己管理一个Zookeeper集群更便于优化配置提高集群工作效率,但需要配置HBase。需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK来切换,这个值默认是true,作用是让HBase启动的时候同时也启动Zookeeper。在安装过程中,采用独立运行Zookeeper集群的方式,故将其属性值改为false。,(2)修改regionservers文件,regionservers文件负责配置HBase集群中哪台节点做RegionServer服务器,本书的规划是所有slave节点均可当RegionServer服务器,故其配置内容为:,slave1,slave2,4.HBase环境搭建,(3)修改hbase-site.xml文件,hbase-site.xml文件内容修改为:,hbase.rootdir,hdfs:/192.168.254.128:9000/hbase,hbase.master,hdfs:/192.168.254.128:60000,hbase.zookeeper.property.dataDir,/hadoop/zookeeper-3.4.5/data,4.HBase环境搭建,hbase.cluster.distributed,true,hbase.zookeeper.quorum,master,slave1,slave2,hbase.zookeeper.property.clientPort,2181,hbase.master.info.port,60010,4.HBase环境搭建,(4)分发到slave1和slave2节点,scp-r/hadoop/hbase-1.3.1/slave1:/hadoop/,scp-r/hadoop/hbase-1.3.1/slave2:/hadoop/,3.修改三个节点的环境变量,在/etc/profile文件末尾添加export PATH=$PATH:/hadoop/zookeeper-3.4.5/bin:/hadoophbase-1.3.1-bin.tar.gz/bin,并执行命令source/etc/profile使配置的环境变量生效,4.测试,在master节点运行start-hbase.sh,将HBase集群启动,可以通过jps或查看运行状况。master节点存在HMaster进程,如图4-7所示:,4.HBase环境搭建,Lorem ipsum dolor sit amet,consectetur adipisicing elit.Lorem ipsum dolor sit amet,consectetur adipisicing elit.Lorem ipsum dolor sit amet,consectetur adipisicing elit.Lorem ipsum dolor sit amet,consectetur adipisici,4.HBase环境搭建,通过浏览器访问地址192.168.254.128:60010/master-status,可以看到整个HBase集群的状态,如图4-10所示:,4.HBase环境搭建,在master节点,使用命令hbase-daemon.sh stop master,等待一会发现slave1成为master,当HBase的master节点故障后,ZooKeeper会从备份中自动推选一个作为master,如图4-11所示:,5 HBase Shell,在实际应用中,需要经常通过Shell命令操作HBase数据库。HBase Shell是HBase的命令行工具;通过HBase Shell,用户不仅可以方便地创建、删除及修改表,还可以向表中添加数据、列出表中的相关信息等,5.1 HBase Shell启动,在任意一个HBase节点运行命令:hbase shell,即可进入HBase的Shell命令行模式,HBase Shell没法使用退格键删除文字,需要通过ctrl+backspace的方式进行删除,或者通过文件-属性-终端-键盘设置Xshell,将Backspace键序列的值设置为ASCII 127,5.1 HBase Shell启动,HBase Shell的每个命令具体用法,都可以直接输入查看,如输入create,可以看到其用法,HBase Shell基本命令操作,操作,命令表达式,说明,创建表,create table_name,family1,family2,familyN,创建表和列族。,添加记录,put table_name,row,k,ey,family:column,value,向列插入一条数据。,查看记录,get table_name,row,k,ey,查询单条记录,也是,HBase,最常用的命令,。,查看表中的记录总数,count table_name,这个命令并不快,且目前没有找到更快的方式统计行数,。,删除记录,delete table_name,row,k,ey,family_name:columndeleteall table_name,row,k,ey,第一种方式删除一条记录单列的数据,;,第二种方式删除整条记录,。,删除一张表,1,.,disable table_name,先停用,再删除表。,2,.,drop table_name,查看所有记录,scan table_name,LIMIT=10,LIMIT=10,表示,只返回10条记录,否则将全部,显示。,10条记录,否则将全部,5.2 表的管理,1.list命令,2.create命令,创建表。语法格式:create,NAME=,VERSIONS=,3.describe命令,4.disable命令,禁用,表。语法格式:disable,5.2 表的管理,5.exists,查看一个表是否存在。语法格式:exists,6.is_enabled,判断表是否enable。语法格式:enable,7.is_disabled,判断表是否disable。语法格式:disable,8.alter命令,修改表结构。语法格式:alter,NAME=,NAME=,METHOD=delete,9.删除列族,5.2 表的管理,10.whoami,11.version,12.status,5.3 表数据的增删改查,1.put命令,向表中插入数据。语法格式:put,。,2.get命令,查询数据。语法格式:get,.,3.scan命令,扫描表。语法格式:scan,COLUMNS=,.,LIMIT=num;另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能,4.delete命令,删除数据。语法格式:delete,5.deleteall命令,6.count,7.truncate,5.3 表数据的增删改查,5.deleteall命令,删除行。语法格式:deleteall,6.count,查询表中总共有多少行数据。语法格式:count。,7.truncate,清空表。语法格式:truncate。,5.4 数据迁移的importsv的使用,HBase数据来源于日志文件或者RDBMS,把数据迁移到HBase表中。常见的有三种方法:使用HBase Put API;使用HBase批量加载工具;自定义MapReduce实现。,importtsv是HBase官方提供的基于MapReduce的批量数据导入工具,同时也是HBase提供的一个命令行工具,可以将存储在HDFS上的自定义分隔符(默认是t)的数据文件,通过一条命令方便的导入到HBase中。,6.HBase程序开发,HBase提供了丰富的Java API接口供用户使用,可以通过HBase Java API完成和HBase Shell相同的功能。本章不仅介绍如何通过Java API完成表的相关操作,还会讲解相关高级用法,如过滤器、计数器、协处理器的使用,NameSpace的开发和快照的创建等。,6.1 表的相关操作,1.API介绍,HBase Java API核心类主要有HBaseConfiguration,HBaseAdmin,HTable和数据操作类组成,HBase J,ava类,HBase数据模型,HBaseAdmin,数据库(DataBase),HBaseConfiguration,HTable,表(Table),HTableDescriptor,列族(Column Family),Put,列标识符(Column Qualifier),Get,Scanner,6.1 表的相关操作,2.HBaseConfiguration,HBaseConfiguration位于org.apache.hadoop.hbase.HbaseConfiguration,完成对HBase的配置,主要设置一些关键属性,返回值,函数,说明,void,addResource(Path file),通过给定的路径所指的文件来添加资源,。,void,clear(),清空所有已设置的属性,。,string,get(String name),获取属性名对应的值,。,String,getBoolean(String name,boolean defaultValue),获取为boolean类型的属性值,如果其属性值类型,不为,boolean,,,则返回默认属性值,。,void,set(String name,String value),通过属性名来设置值,。,void,setBoolean(String name,boolean value),设置boolean类型的属性值,。,6.1 表的相关操作,3.HBaseAdmin,HBaseAdmin位于org.apache.hadoop.hbase.client.HbaseAdmin,提供了一个接口来管理HBase数据库的表信息;它提供的方法如表6-3所示,包括:创建表,删除表,列出表项,使表有效或无效,以及添加或删除表列族成员等。,返回值,函数,说明,void,addColumn(String tableName,HColumnDescriptor column),向一个已经存在的表添加,列。,void,checkHBaseAvailable(HBaseConfiguration conf),静态函数,查看HBase是否处于运行状态,。,void,createTable(HTableDescriptor desc),创建一个表,同步操作,。,void,deleteTable(byte tableName),删除一个已经存在的表,。,void,enableTable(byte tableName),使表处于有效状态,。,void,disableTable(byte tableName),使表处于无效状态,。,HTableDescriptor,listTables(),列出所有用户,表。,void,modifyTable(byte tableName,HTableDescriptor htd),修改表的模式,是异步的操作,可能需要花费一定的时间,。,boolean,tableExists(String tableName),检查表是否存在,。,6.1 表的相关操作,4.HTableDescriptor,HTableDescriptor位于org.apache.hadoop.hbase.HtableDescriptor,包含了表的名字及其对应表的列族,返回值,函数,说明,void,addFamily(HColumnDescriptor),添加一个列族,。,HColumnDescriptor,removeFamily(byte column),移除一个列族,。,byte,getName(),获取表的名字,。,byte,getValue(byte key),获取属性的值,。,void,setValue(String key,String value),设置属性的值,。,6.1 表的相关操作,5.HColumnDescriptor,HColumnDescriptor类位于org.apache.hadoop.hbase.HcolumnDescriptor,维护着关于列族的信息,例如版本号,压缩设置等,它通常在创建表或者为表添加列族的时候使用。列族被创建后不能直接修改,只能通过删除然后重新创建的方式;列族被删除的时候,列族里面的数据也会同时被删除。,返回值,函数,说明,byte,getName(),获取列族的名字,。,byte,getValue(byte key),获取对应的属性的值,。,void,setValue(String key,String value),设置对应属性的值,。,6.1 表的相关操作,6.HTable,HTable类位于org.apache.hadoop.hbase.client.HTable,可以用来和HBase表直接通信,此方法对于更新操作来说是非线程安全的。,返回值,函数,说明,void,checkA,nd,Put(byte row,byte family,byte qualifier,byte value,Put put,自动的检查row,,,family,,,qualifier是否与给定的值匹配,。,void,close(),释放所有的资源或挂起内部缓冲区中的更新,。,Boolean,exists(Get get),检查Get实例所指定的值是否存在于HTable的列中,。,Result,get(Get get),获取指定行的某些单元格所对应的值,。,byte,getEndKeys(),获取当前一打开的表每个区域的结束键值,。,ResultScanner,getScanner(byte family),获取当前给定列族的,S,canner实例,。,HTableDescriptor,getTableDescriptor(),获取当前表的HTableDescriptor实例,。,byte,getTableName(),获取表名,。,static boolean,isTableEnabled(HBaseConfiguration conf,String tableName),检查表是否有效,。,void,put(Put put),向表中添加值,。,6.1 表的相关操作,7.Put,Put类位于org.apache.hadoop.hbase.client.Put,用来对单个行执行添加操作。,返回值,函数,说明,Put,add(byte family,byte qualifier,byte value),将指定的列和对应的值添加到Put实例中,。,Put,add(byte family,byte qualifier,long ts,byte value),将指定的列和对应的值及时间戳添加到Put实例中,。,byte,getRow(),获取Put实例的行,。,RowLock,getRowLock(),获取Put实例的行锁,。,long,getTimeStamp(),获取Put实例的时间戳,。,boolean,isEmpty(),检查familyMap是否为空,。,Put,setTimeStamp(long timeStamp),设置Put实例的时间戳,。,6.1 表的相关操作,8.Get,Get类位于org.apache.hadoop.hbase.client.Get,用来获取单个行的相关信息。,返回值,函数,说明,Get,addColumn(byte family,byte qualifier),获取指定列族和列,标识,符对应的列,。,Get,addFamily(byte family),通过指定的列族获取其对应的所有列,。,Get,setTimeRange(long minStamp,long maxStamp),获取指定,时间,的列的版本号,。,Get,setFilter(Filter filter),当执行Get操作时设置服务器端的过滤器,。,6.1 表的相关操作,9.Result,Result类位于org.apache.hadoop.hbase.client.Result,用于存储Get或者Scan操作后获取表的单行值,使用此类提供的方法可以直接获取值或者各种Map结构(Key-Value对)。,返回值,函数,说明,boolean,containsColumn(byte
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服