《云计算系列教程.ppt》由会员分享,可在线阅读,更多相关《云计算系列教程.ppt(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、HBASE 内容提要内容提要为什么需要什么需要HBaseHTable的的逻辑组织HBase的运行机制的运行机制HBase与与 HDFSHBase的的对外接口外接口引入引入HBASE的原因的原因数据数据库系系统已无法适已无法适应大型分布式数据存大型分布式数据存储的需要的需要改良的关系数据改良的关系数据库(副本、分区等)(副本、分区等)难于于安装与安装与维护关系模型关系模型对数据的操作使数据的存数据的操作使数据的存贮变得得复复杂引入引入HBASE的原因的原因HBASE从从设计理念上就理念上就为可可扩展做好了充展做好了充分准分准备空空间的的扩展只需要加入存展只需要加入存储结点点使用使用表表的概念,但
2、不同于关系数据的概念,但不同于关系数据库,不,不支持支持SQL实质上是一上是一张极大的、非常稀疏的,存极大的、非常稀疏的,存储在分布式文件系在分布式文件系统上的表上的表HBaseHBase历史史2006年底由年底由PowerSet 的的Chad Walters和和Jim Kellerman 发起起2008年成年成为Apache Hadoop的一个子的一个子项目目现已作已作为产品被使用品被使用WorldLingoSOpenPlacesYahooAdobeHBASEHBASE用例用例WebTableWebTable存存储抓取网抓取网页和相关信息和相关信息每个每个页面面对应一行,是个有百万行的大表一
3、行,是个有百万行的大表要基于此表要基于此表进行分析与解析并由搜索引擎行分析与解析并由搜索引擎对关关键字字进行索引行索引表需要并表需要并发地被众多网地被众多网页抓取程序随机地抓取程序随机地访问以及更新数据以及更新数据表内容也要作表内容也要作为网网页实时缓存被大量用存被大量用户随机随机访问逻辑视图Row KeyTime StampColumn ContentsColumn AnchorColumn“mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“.“Text/htmlT5“.“t3“.“数据模型行数据模型行Row KeyTime StampColumn Content
4、sColumn AnchorColumn“mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“.“Text/htmlT5“.“t3“.“行键列列数据模型行数据模型行每行数据有一可排序的关每行数据有一可排序的关键字和任意列字和任意列项字符串、整数、二字符串、整数、二进制串甚至与串行化的制串甚至与串行化的结构都可以作构都可以作为行行键表按照行表按照行键的的“逐字逐字节排序排序”顺序序对行行进行行有序化有序化处理理表内数据非常表内数据非常稀疏稀疏,不同的行的列的数完,不同的行的列的数完全目可以大不相同全目可以大不相同数据模型行数据模型行可以只可以只对一行上一行上“锁”对行的
5、写操作是始行的写操作是始终是是“原子原子”的的数据模型列数据模型列列必列必须用用族族(family)来定来定义任意一列有如下形式任意一列有如下形式“族:族:标签”其中,族和其中,族和标签都可都可为任意形式的串任意形式的串物理上将同物理上将同“族族”数据存数据存储在一起在一起数据可通数据可通过时间戳区分版本戳区分版本数据模型列数据模型列Row KeyTime StampColumn ContentsColumn AnchorColumn“mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“.“Text/htmlT5“.“t3“.“族标签物理物理视图Row KeyTime
6、 StampColumn:ContentsCn.wwwT6“.”T5“.”T3“.”Row KeyTime StampColumn:AnchorCn.wwwT9Anchor:CNNT5Anchor:my.look.caCNN.COMRow KeyTime StampColumn:mimeCn.wwwT6text/htmlHTableHTable小小结Row KeyTime StampColumn ContentsColumn AnchorColumn“mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“.“Text/htmlT5“.“t3“.“系系统总体体结构构HDF
7、SClusterZoo KeeperClusterRegionServerRegionServerRegionServerMasterServerHStoreMap FilesHStoreMap FilesRegion数据存数据存储实体区域体区域表按照表按照“水平水平”的方式划分成一个或多个的方式划分成一个或多个“区区域域”(region)每个区域都包含一个随机每个区域都包含一个随机id,区域内的行,区域内的行也是按行也是按行键有序的有序的最初每最初每张表包含一个区域,当表增大超表包含一个区域,当表增大超过阈值后,后,这个区域被自个区域被自动分割成两个相同分割成两个相同大小的区域大小的区域区域
8、以分布式的方式分布在集群内区域以分布式的方式分布在集群内区域的管理区域的管理区域服区域服务器器(Region Server)为区域的区域的访问提供服提供服务,直接,直接为用用户提供服提供服务负责维护区域的分割区域的分割负责数据存持久化数据存持久化主服主服务器器(Master Server)管理区域服管理区域服务器器指派区域服指派区域服务器器对服服务特定区域特定区域恢复失效的区域服恢复失效的区域服务器器特殊目特殊目录数据数据元数据元数据(META)全部用全部用户区域的属性数据都存在元数据表中区域的属性数据都存在元数据表中包括区域中数据起止行信息、区域包括区域中数据起止行信息、区域“在在线”状状态
9、等等保存区域服保存区域服务器地址器地址元数据表也可包含多个区域,区域属性数据存元数据表也可包含多个区域,区域属性数据存储在在“根根”结点上点上特殊目特殊目录数据数据“根根”表表(ROOT)只存包含一个区域只存包含一个区域将元数据中的区域映射到区域服将元数据中的区域映射到区域服务器器存存储元数据服元数据服务器位置以及映射了哪些元数据器位置以及映射了哪些元数据区域区域区域服区域服务器器(Region Server)(Region Server)职能能负责处理用理用户的的读写写请求求向主服向主服务器器(Master Server)上上报自己的状自己的状态,并,并获取自己需要服取自己需要服务的区域的区
10、域为提高效率,消息通提高效率,消息通过捎捎带(pigback)方式方式通通过“心跳心跳”分分组进行行传递区域服区域服务器器“写写”写数据首先写入写数据首先写入“预写写”日志日志对于一个区域服于一个区域服务器而言,器而言,对其提供服其提供服务的所有区域的的所有区域的“写写”操作日志都存操作日志都存储在同一在同一个日志中个日志中数据并非直接写文件系数据并非直接写文件系统,而是先,而是先缓存,存,缓存到一定数量再批量写入存到一定数量再批量写入写入完成后在日志中做写入完成后在日志中做标记区域服区域服务器器“读”区域服区域服务器器现在内存的在内存的缓存中存中查找,如果找,如果命中命中请求,求,则直接服直
11、接服务如果存在多个版本,如果存在多个版本,则返回返回顺序按照从最序按照从最新到最老新到最老区域服区域服务器合并器合并如果映射文件如果映射文件(Map File)数量超数量超过阈值,区,区域服域服务器会器会进行一次合并行一次合并(Compaction)合并操作也周期性合并操作也周期性进行行合并可与区域服合并可与区域服务器响器响应用用户的的读写写请求求并并发进行行如果如果读写写请求与合并区域相关,求与合并区域相关,读写操作写操作先挂起,直到合并操作完成先挂起,直到合并操作完成区域服区域服务器分割器分割当区域文件大当区域文件大过阈值后,区域文件会按照后,区域文件会按照行的方式行的方式对半半进行分割行
12、分割(Split)操作操作分割也作分割也作为一种一种请求被区域服求被区域服务器器处理理被分割区域先离被分割区域先离线区域服区域服务器在元信息表中生成子表元信息器在元信息表中生成子表元信息主服主服务器在得知分割操作器在得知分割操作进行后,将子表行后,将子表分配分配给新的区域服新的区域服务器器进行服行服务被分割区域通被分割区域通过垃圾回收机制回收垃圾回收机制回收区域服区域服务器分割器分割如果主服如果主服务器没能正确收到分割消息,主器没能正确收到分割消息,主服服务器可通器可通过定期定期检查MATA数据数据发现分割分割操作操作开始分割操作后,被分割区域离开始分割操作后,被分割区域离线,此,此时客客户端
13、能端能检测到并在分割后的区域上到并在分割后的区域上线后后重重发访问请求求失效恢复失效恢复由于由于检测没有心跳,主服没有心跳,主服务器能器能够探知区探知区域服域服务器的失效器的失效主服主服务器将失效服器将失效服务器所提供服器所提供服务的区域的区域重新分配重新分配给其它区域服其它区域服务器器原失效区域服原失效区域服务器的器的“预写写”日志由主服日志由主服务器器进行分割并派送行分割并派送给新的区域服新的区域服务器器客客户端端连接到接到ZooKeeper集群集群获取根区域数据和取根区域数据和元数据的位置元数据的位置在元数据中在元数据中查找需要找需要访问行所在的区域并行所在的区域并定位提供定位提供该区域
14、服区域服务的区域服的区域服务器器直接与区域服直接与区域服务器交互以器交互以获取数据取数据根区域数据、元数据以及用根区域数据、元数据以及用户区域信息都区域信息都被客被客户端端缓存以存以备下次下次访问使用使用系系统总体体结构构HDFSClusterZoo KeeperClusterRegionServerRegionServerRegionServerMasterServerHStoreMap FilesHStoreMap FilesRegionHBaseHBase安装安装需要需要ZooKeeper支持支持本身本身带zookeeper.jar包包步步骤解解压,并添加支撑的,并添加支撑的.jar包到
15、用包到用户CLASS_PATH修改修改conf下下hbase-env.sh,regionserversHbase-site.xml启启动Hbase:bin/start-hbase.shHBase ShellHBase Shell启启动bin/hbase shell主要命令主要命令create 创建表建表describe 描述表描述表enable/disable 表激活表激活/取消取消drop 删除表除表get/put 表表读写写HBase APIHBase APIHBaseConfigurationaddResource()HTableput()get()ResultScannernext()
16、HBaseHBase与与HDFSHDFS如果使用如果使用HDFS需要配置需要配置RegionServer,定,定位存位存储位置位置为HDFS服服务/conf/hbase-site.xml定定义义hbase.rootdir值值,指向,指向HDFS服服务务,如:如:hdfs:/hdfs_server:port/hbase_rootHBaseHBase与其它文件系与其它文件系统HBase可以使用其它分布式文件系可以使用其它分布式文件系统mount至挂至挂载点,如点,如/mnt/mydfs定定义义hbase.rootdir值值,指向挂,指向挂载载点,如点,如 file:/mnt/mydfs/hbase_root