ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:207.15KB ,
资源ID:4161891      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4161891.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(05 Hbase技术整理及应用Word格式.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

05 Hbase技术整理及应用Word格式.docx

1、t1r2t5content=每天t4 Row Key: 行键,Table的主键,Table中的记录按照Row Key排序 Timestamp: 时间戳,每次数据操作对应的时间戳,可以看作是数据的version number Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column组成,即Column Family支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。 Region当Table随着记录数不断增加而变大后,会逐渐分裂成多

2、份splits,成为regions,一个region由startkey,endkey)表示,不同的region会被Master分配给相应的RegionServer进行管理:-ROOT- & .META. TableHBase中有两张特殊的Table,-ROOT-和.META. .META.:记录了用户表的Region信息,.META.可以有多个regoin -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region Zookeeper中记录了-ROOT-表的locationClient访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.

3、META.表,最后才能找到用户数据的位置去访问,中间需要多次网络操作,不过client端会做cache缓存。四、MapReduce on HBase在HBase系统上运行批处理运算,最方便和实用的模型依然是MapReduce,如下图:HBase Table和Region的关系,比较类似HDFS File和Block的关系,HBase提供了配套的TableInputFormat和TableOutputFormat API,可以方便的将HBase Table作为Hadoop MapReduce的Source和Sink,对于MapReduce Job应用开发人员来说,基本不需要关注HBase系统自身

4、的细节。五、HBase系统架构ClientHBase Client使用HBase的RPC机制与HMaster和HRegionServer进行通信,对于管理类操作,Client与HMaster进行RPC;对于数据读写类操作,Client与HRegionServer进行RPCZookeeperZookeeper Quorum中除了存储了-ROOT-表的地址和HMaster的地址,HRegionServer也会把自己以Ephemeral方式注册到Zookeeper中,使得HMaster可以随时感知到各个HRegionServer的健康状态。此外,Zookeeper也避免了HMaster的单点问题,见

5、下文描述HMasterHMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行,HMaster在功能上主要负责Table和Region的管理工作:1. 管理用户对Table的增、删、改、查操作2. 管理HRegionServer的负载均衡,调整Region分布3. 在Region Split后,负责新Region的分配4. 在HRegionServer停机后,负责失效HRegionServer 上的Regions迁移HRegionServerHRegionServer主要负责响应用户I/O请求,向

6、HDFS文件系统中读写数据,是HBase中最核心的模块。HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组成。每个HStore对应了Table中的一个Column Family的存储,可以看出每个Column Family其实就是一个集中的存储单元,因此最好将具备共同IO特性的column放在一个Column Family中,这样最高效。HStore存储是HBase存储的核心了,其中由两部分组成,一部分是MemStore,一部分是StoreFiles。MemStore是Sorted Memo

7、ry Buffer,用户写入的数据首先会放入MemStore,当MemStore满了以后会Flush成一个StoreFile(底层实现是HFile),当StoreFile文件数量增长到一定阈值,会触发Compact合并操作,将多个StoreFiles合并成一个StoreFile,合并过程中会进行版本合并和数据删除,因此可以看出HBase其实只有增加数据,所有的更新和删除操作都是在后续的compact过程中进行的,这使得用户的写操作只要进入内存中就可以立即返回,保证了HBase I/O的高性能。当StoreFiles Compact后,会逐步形成越来越大的StoreFile,当单个StoreFi

8、le大小超过一定阈值后,会触发Split操作,同时把当前Region Split成2个Region,父Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer上,使得原先1个Region的压力得以分流到2个Region上。下图描述了Compaction和Split的过程:在理解了上述HStore的基本原理后,还必须了解一下HLog的功能,因为上述的HStore在系统正常工作的前提下是没有问题的,但是在分布式系统环境中,无法避免系统出错或者宕机,因此一旦HRegionServer意外退出,MemStore中的内存数据将会丢失,这就需要引入H

9、Log了。每个HRegionServer中都有一个HLog对象,HLog是一个实现Write Ahead Log的类,在每次用户操作写入MemStore的同时,也会写一份数据到HLog文件中(HLog文件格式见后续),HLog文件定期会滚动出新的,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知到,HMaster首先会处理遗留的 HLog文件,将其中不同Region的Log数据进行拆分,分别放到相应region的目录下,然后再将失效的region重新分配,领取 到这些region的HRegionServe

10、r在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复。HBase存储格式HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,主要包括上述提出的两种文件类型:1. HFile, HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile2. HLog File,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Had

11、oop的Sequence FileHFile下图是HFile的存储格式:首先HFile文件是不定长的,长度固定的只有其中的两块:Trailer和FileInfo。正如图中所示的,Trailer中有指针指向其他数据块的起始点。File Info中记录了文件的一些Meta信息,例如:AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEY等。Data Index和Meta Index块记录了每个Data块和Meta块的起始点。Data Block是HBase I/O的基本单元,为了提高效率,HRegionServer中有基于L

12、RU的Block Cache机制。每个Data块的大小可以在创建一个Table的时候通过参数指定,大号的Block有利于顺序Scan,小号Block利于随机查询。每个Data块除了开头的Magic以外就是一个个KeyValue对拼接而成, Magic内容就是一些随机数字,目的是防止数据损坏。后面会详细介绍每个KeyValue对的内部构造。HFile里面的每个KeyValue对就是一个简单的byte数组。但是这个byte数组里面包含了很多项,并且有固定的结构。我们来看看里面的具体结构:开始是两个固定长度的数值,分别表示Key的长度和Value的长度。紧接着是Key,开始是固定长度的数值,表示Ro

13、wKey的长度,紧接着是RowKey,然后是固定长度的数值,表示Family的长度,然后是Family,接着是Qualifier,然后是两个固定长度的数值,表示Time Stamp和Key Type(Put/Delete)。Value部分没有这么复杂的结构,就是纯粹的二进制数据了。HLogFile上图中示意了HLog文件的结构,其实HLog文件就是一个普通的Hadoop Sequence File,Sequence File 的Key是HLogKey对象,HLogKey中记录了写入数据的归属信息,除了table和region名字外,同时还包括sequence number和timestamp,

14、timestamp是“写入时间”,sequence number的起始值为0,或者是最近一次存入文件系统中sequence number。HLog Sequece File的Value是HBase的KeyValue对象,即对应HFile中的KeyValue,可参见上文描述。六、HBase接口shell常用命令Hbase的shell操作命令:名称命令表达式创建表create 表名称, 列名称1,列名称2列名称N添加记录 put 行名称列名称:值查看记录get 查看表中的记录总数count 删除记录delete 表名 , , 列名称删除一张表先要屏蔽该表,才能对该表进行删除,第一步 disable

15、 第二步 drop 查看所有记录scan 表名称 查看某个表某个列中所有数据 , 更新记录 就是重写一遍进行覆盖Shell接口:启动hbase:$ ./bin/start-hbase.shstarting Master, logging to logs/hbase-user-master-example.org.out用shell连接你的Hbase$ ./bin/hbase shellHBase Shell; enter help for list of supported commands.Type exit显示所有表:list015: listTABLE student 1 row(s)

16、in 0.0200 seconds= student016:输入 help 然后 3、更新操作:根据row值查询一条记录:根据row值更新name值(系统会直接更新): put tom2再查询时,系统返回最新的值: get 根据timestamp查询更新之前的 name值:lsi,TIMESTAMP=13014731128754、删除操作d删除Id为temp的值的“info:age”:tempinfo:agels删除整行:deleteall 将整张表清空: truncate 设置表不可用:disable 删除表:drop 5、查询操作查询数据库中所有的表:查询student表中所有数据:sca

17、n 查看student表中address列族的所有数据:,COLUMNS = Get一行:查询表是否存在:exists查询表结构:describe 查询服务器状态:status如:3 servers, 0 dead,1.0000 average load查询hbase版本:version0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 20116、其他操作:判断表是否enable 或disable:is_enabled 或is_disabled 关闭shell: exit七、Hbase基于Mapreduce的编程将mapreduce的输出结果保存到大型分布式数

18、据库中HBase中,一个例子,求各url的访问pv数据,由于用到rcfile格式需要导入hive-exce包,还需要加载hbase包,如果这两个包都已经被集群管理员放到各节点的hadoop/lib下那就可以省去这一步八、GN话单入Hbase库通过MapReduce程序进行入库,在Map函数内调用HBase Api进行put,在入库前先检查表是否创建,没有就先建表。程序调起:hadoop jar /home/boco/lq/lq.jar com.boco.lq.load.gn.GN2HBaseDriver 111 20140312 /user/boco/lq导入报文:D:01 技术资料00 Ha

19、doop技术掌握过程及度量支付类热点业务分析支付类热点业务分析CDR-20140312010104.139_1.txt存储(Hbase)结果013:0* scan GN_20140312ROW COLUMN+CELL 360781897201403120163665 column=f:c, timestamp=1394557234000, value=CMNETx09460001064759021x093519390571475046x09Nokiax09Nokia 900 Nokia 900x09WH-EBSC- 810-D1x090.0.0.0x090.0.0.0x09221.177.16

20、6.16x09221.177.162.22x09SGSN06x09GGSN09x0910.67.34.71x0965.55.42.196x092x091x0986 x0918x091802x095x0912x091210x0912x091210x094x09112x090x090x090x090x0928971x0964901x09701x092014-03-12 01:00:34x09 2014-03-12 01:01:02x0928720.7188x097742.0000x095397.0000x09x09Service: 1802 d, timestamp=1394557234000,

21、value=09679F3BF2AFEBCEEAF9758DD91E13E4 889382221201403120019862 column=f:c, timestamp=1394557164000, value=xEFxBBxBFCMWAPx09460001804766329x098602550101877401x09Ximax09GilD C9x09XN-EBSC-8 10BSC-12x09221.177.160.219x09221.177.162.225x09221.177.160.219x09221.177.162.245x09SGSN23x09GGSN07x0910.200.219.

22、101x0910.0. 0.172x092x091x0986x0912x091203x091x0912x091212x0912x091212x094x091x090x09460x090x09255x0929143x094502x09602x092 014-03-12 00:59:24x092014-03-12 00:48x0924202.6758x092257.0000x0960.0000x09x09 _480_A6-hsdroid_3-0-3-44_p-a1-3-61&uid=bd_747781010552068&from=1671a&rid=5286339655&pm=8TKn9D2C42HTtfwanfSar9r3DmD6sqAEQJSzj-14I6UE fWObqcr9FlRjOW1PqG00ATyWxH9OKiG1tPgQaZLUmoLLpiAEC d, timestamp=1394557164000, value=CF5996B3CEF7E5DFC405858418CC5795 2 row(s) in 0.0560 seconds

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2