大数据技术第八章关于hbase new_第1页
大数据技术第八章关于hbase new_第2页
大数据技术第八章关于hbase new_第3页
大数据技术第八章关于hbase new_第4页
大数据技术第八章关于hbase new_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 关于HBase目录Hbase基础12HBase的安装配置3学生成绩表实例4HBase常用操作8.1 HBase基础 8.1.1 HBase简介 8.1.2 HBase架构 8.1.3 HBase数据结构2015年5月21日四8.1.1 Hbase简介HBase(Hadoop Database)是ApacheHadoop中的一个子项目,它以的BigTable为原型,设计并实现了具有高可靠、可伸缩、实时读/写性、高性能、列的数据库系统。8.1.2 HBase架构1. HBase技术体系Hbase技术体系 HDFS为HBase提供了高可靠性的底层支持。 MapReduce为HBase提供了高

2、性能的计算能力。 ZooKeeper为Hbase提供了服务和失效(Failover)机制(即启动多个Hmaster并选择其中一个提供服务)。2. HBase的物理部署2015年5月21日四HMaster与RegionServerHBase每时每刻只有一个HMaster主服务程序在运行,HMaster将Region分配给RegionServer,协调RegionServer的负载并维护集群的状态。HMaster对外提供数据服务, 而是由RegionServer负责所有Regions的读/写请求及操作。Hmaster的作用 为Region server分配Region。 负责Region serv

3、er的负载均衡。 发现失效的Region server并重新分配其上的Region。 GFS上的文件回收。 处理schema更新请求。RegionServer的作用 RegionServer维护Master分配给它的Region, 处理对这些Region的I/O请求。 RegionServer负责切分在运行过程中变得过大的Region。HBase上数据的过程不需要 客户端master参与(寻址Server,数据读/写ZooKeeper和RegionRegionServer),master仅仅维护着Table和Region的元数据信息,负载很低。8.1.3 HBase的数据结构HBase介于No

4、SQL和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过Hive支持来实现多表join等复杂操作),主要用来非结构化和半结构化的松散数据。HBase逻辑视图HBase以表的形式数据。一个表包含若干行数据,每一行划分为若干个列族。1. 行键(Row Key)Row Key是数据行在表中的唯一标识,HBase table并作为检索的主键。中的行,只有三种方式:通过单个row key 通过row key的range扫描行键(Row Key)行键(Row Key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100B),在HBas

5、e内部,行键保存为字节数组。时,数据按照Row Key的字典序(byte order)排序。设计key时,要注意排序这个特性,将经常一起的行存储放到一起。(位置相关性)行键(Row Key)注意:字典序对int排序的结果是1,10,100,11,12, 13,14,15,16,17,18,19,2,20,21,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序, 行键必须用0作左填充。行的一次读写是原子操作 (不论一次读写多少列)。这个设计决策能够使用户很容易的理解程序在对同一个行进行并发更新操作时的行为。2. 列族在HBase表中,每一行的数据项,属于某个列族。列族

6、是表结构的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如courses:history ,courses:math 都属于 courses 这个列族。列族列族定义为::(:)通过列族和限定符两部分可以唯一地指列。HBase在磁盘上按照定一个数据的列数据,所以一个列族里所有的项最好具备相同的读/写方式,以提高性能。列族磁盘和内存的使用统计都是在列族层面进行的。实际应用中,列族上的权限能帮助我们管理一些应用可以添加新不同类型的应用:我们的基本数据、一些应用可以基本数据并创建浏览数据(甚至继承的列族、一些应用则只可能因为隐私的不能浏览所有数据)。3. Hbase表的物理HBas

7、e表中的所有行都是按照行键的字典序排就是把逻辑模型注意:表中空值是列。物理并按列族被的。4. 时间戳Hbase表中每个数据具有多个版本,每个版本通过时间戳来索引。时间戳是 一个长达64位的精确到毫秒的当前系统时间(整数)。时间戳由HBase在写入数据时自动赋值,也可以由客户显式赋值。Hbase表中每个不同版本的数据按照时间倒序排列,即最新的数据排在最前面。时间戳过多版本造成的的管理 (包为了避免数据和索引)负担,HBase提供了两种数据括版本回收方式:1、保存数据的最后n个版本;2、保存最近一段时间内的版本(比如最近七天)。用户可以每个列族进行设置。5. cell元素HBase表的行和列为一个

8、单元格(cell元素),因此每个cell元素由行键、列(:)和时间戳唯一确定,元素中的数据值以字节码的形式,没有类型之分。如果没有指明时间戳,则返回指定列的最新数据值,并且最新的数据值在表格中也是最先找到的。6. 子表RegionHBase表中的所有行都按照Row Key的字典序排列,在行的方向上分割为多个Region。子表RegionRegion是按大小分割的,每个表一开始只有一个Region,随着数据不断表,Region不断增大,当增大到一个阀值的时候,Region就会等分成两个新的Region。当table中的行不断增多,就会有越来越多的Region。Region是HBase分布式和负载

9、均衡的最小单元。最小单元就表示不同的Region可以分布在不同的RegionServer上,但同一个Region是拆分到多个服务器上的。7. StoreFile Region虽然是分布式的最小单元,但并的最小单元。事实上,Region由一不是单元(Store)组成,个或者多个最小每个Store保存一个列族的数据。 每个Store又由一个MemStore和0至多个StoreFile组成。 StoreFile以HFile格式保HDFS上。StoreFile示例8. Region、MemStore及StoreFile的当客户端进行更新操作时,先连接到相关的HRegionServer,然后向Regio

10、n提交变更。提交的数据首先要写入WAL和MemStore中,当MemStore中的数据累计到某个阈值时,HRegionServer就会启动一个单独的线程将MemStore中的内容刷新到磁盘,形成一个StoreFile文件。Region、MemStore及StoreFile的(续)当StoreFile文件的数量增长到一定的阈值后,就会将多个StoreFile文件合并成一个StoreFile,合并过程中将进行版本合并和数据删除。StoreFile在合并过程中组建形成更大的StoreFile,当StoreFile大小达到一定阈值后,会把当前的Region分割成两个Region,并由HMaster分配

11、到相应的RegionServer上,实现负载均衡。9. HBase的元数据表用户表的Regions元数据被在.META.表中,随着Region增多,.META.表中的数据也会增大,并分割成多个Regions。为了定位.META.表中各个Regions的位置,把.META.表中所有Regions的元数据保-ROOT-表中。元数据表-ROOT-的位置,然后由ZooKeeper-ROOT-表获得.META.的位置,最后根据.META.表中的信息确定用户数据存放的位置。-ROOT-表永远被分割,它只有一个Region,这样就保证了最多需要3次跳转就可以定位任意一个Region。8.2 HBase的安装

12、配置8.2.1HBaseHBase官网地址:扩展名为.tar.gz的文件。注意HBase与Hadoop版本的匹配。hbase-0.98.x吻合hadoop2.4.0版本。8.2.2 解压HBase$ cd压缩包所在的绝对路径$ mv hbase-0.98.10.1-hadoop2-bin.tar.gz$ cd/$ tar zxvfhbase-0.98. 10.1-hadoop2-bin.tar.gz$ cdhbase-0.98. 10.1-hadoop28.2.3 配置HBase1. 修改hbase-env.sh$ cd hbase-0.98. 10.1-hadoop2 /conf$ gedi

13、t hbase-env.sh该文件的靠前部分有下面一行内容:#export JAVA_HOME = /usr/java/jdk1.6.0export JAVA_HOME = /usr/local/jdk1.7.0_672.配置hbase-site.xml$ gedit hbase-site.xmlhbase.cluster.distributedtruehbase.rootdirhdfs:/master:9000/hbasehbase.zookeeper.quorummater3. 设置RegionServers$ gedit regionserversslave4. 将HBase安装文件到s

14、lave节点$ cd$ scp r hbase-0.98. 10.1-hadoop2 jcxyslave:/8.2.4 启动并HBase$ cd hbase-0.98. 10.1-hadoop2$ bin/start-hbase.sh使用Web UI界面查看启动情况:HBase提供了一个Shell的终端用于用户交互。使用命令hbase shell进入命令界面。$ cd hbase-0.98. 10.1-hadoop2/bin$ ./hbase shell1、服务器状态hbase(main):001:0 status2、HBase版本hbase(main):002:0version8.3 学生成

15、绩表实例学生成绩表的结构:namegradcourse:mathcourse:art Tom19787Jerry2100801、建立一个表格 scores 具有两个列族grad和courese。hbase(main):001:0 createscores, grade, course2、查看当先HBase中具有哪些表hbase(main):002:0list3、查看表的构造hbase(main):003:0 describescores4、加入一行数据,行名称为 Tom 列族grad的列名为“”,值位1。hbase(main):004:0 putscores, Tom, grade:, 15、

16、给Tom这一行的数据的列族添加一列。hbase(main):0060 putscores, Tom, course:math, 976、给Tom这一行的数据的列族添加一列 。hbase(main):007:0 putscores, Tom,course:art, 877、加入一行数据,行名称为Jerry列族grad的列名为”,值为2。hbase(main):0080 put scores, Jerry, grade:, 28、给Jerry这一行的数据的列族添加一列。hbase(main):009:0 put scores, Jerry, course:math, 1009、给Jerry这一行的

17、数据的列族添加一列 hbase(main):012:0 put scores, Jerry,course:art, 8010、查看scores表中Tom的相关数据。hbase(main):013:0 getscores, Tom11、查看scores表中所有数据。hbase(main):014:0 scanscores12、查看scores表中courses列族的所有数据。hbase(main):015:0 scan scores, COLUMNS = course8.4 HBase常用操作名称命令表达式create 表名称, 列族名1,列族名2,列族名N创建表列族名Nput 表名称, 行名称

18、, 列族名:限定符, 值添加定符, 值查看查看表中的get 表名称, 行名称 count 表名称总数删除delete 表名 ,行名称 , 列族名先要该表,才能对该表进行删除,第一步删除一张表步 disable 表名称第二步 drop 表名称查看所有scan 表名称查看表中某个列中所有数 据scan 表名称,COLUMNS= 列族名:限定符据符更新就是重写一遍进行覆盖1、createcreate 表名, 列族名1,列族名2,列族名N例如:创建ca表,有c1,c2列族。createca,c1,c22、putput表名, 行键名, 列名, 单元格值,时间戳例如:向ca表中值。put ca,Jim,c

19、ourse,80put ca,Tom,course:math,973、getget 表名, 行键名get 表名, 行键名, 列名get 表名, 行键名,COLUMN=列名get 表名, 行键名,COLUMN=列名1,列名2get 表名, 行键名,COLUMN=列名,VERSION=4get 表名, 行键名,TIMERANGE=起始时间,结束时间Jim。ca,Jim例如:get4、scanscan 表名scan 表名,COLUMN= 列名scan表名, COLUMN=列名,LIMIT=10可以指定一些修饰词:TIMERANGE,FILTER,LIMIT,STARTROW,STOPROW,MAXLENGTH等,没有任何修饰词,就显示所有数据行。例如:扫描ca表的所有数据。scanca5、deletedelete表名, 行键名, 列名,时间戳deleteall表名, 行键名truncate表名例如:删除Jim数据。deleteca,Jim6、disable 用于修改表结构disable表名alter表名,NAME=列名enable 表名7、alter (如果没有,先将表disable)a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论