当前位置: 首页 > news >正文

湄洲岛网站建设登录自己网站的后台 wordpress

湄洲岛网站建设,登录自己网站的后台 wordpress,河南住房和城乡建设部网站首页,建设信用购物网站HBase 结构 HRegion 概述 在HBase中#xff0c;会从行键方向上对表来进行切分#xff0c;切分出来的每一个结构称之为是一个HRegion 切分之后#xff0c;每一个HRegion会交给某一个HRegionServer来进行管理。HRegionServer是HBase的从节点#xff0c;每一个HRegionServ…HBase 结构 HRegion 概述 在HBase中会从行键方向上对表来进行切分切分出来的每一个结构称之为是一个HRegion 切分之后每一个HRegion会交给某一个HRegionServer来进行管理。HRegionServer是HBase的从节点每一个HRegionServer可以管理多个HRegion 如果新建了一个表那么这个表中只包含1个HRegion 在HBase中因为行键是有序(字典序)的所以切分出来的每一个HRegion之间的数据是不交叉的因此HBase可以将接收到的不同的请求分发到不同的HRegionServer来进行处理从而能够有效的避免请求集中到一个节点上 随着运行时间的推移每一个HRegion中管理的数据都会越来越多当HRegion管理的数据达到指定大小的时候会进行分裂分裂为两个HRegion 刚分裂完成之后两个HRegion还暂时处于同一个HRegionServer上。但是HBase为了节点之间的负载均衡可能会将其中一个HRegion转移给其他的HRegionServer来进行管理。注意此时不会发生大量的数据迁移HBase的数据是存储在HDFS上的HRegion只是HBase提供的一个用于管理数据的结构 每一个HRegion中会包含至少1个HStore可以包含多个HStore。HStore的数量是由列族的数量来决定 - 每一个列队都对应了一个HStore 每一个HStore中会包含1个memStore以及0到多个StoreFile/HFile 分裂策略 在HBase2.x中支持7中分裂策略ConstantSizeRegionSplitPolicyIncreasingToUpperBoundRegionSplitPolicyKeyPrefixRegionSplitPolicyDelimitedKeyPrefixRegionSplitPolicySteppingSplitPolicyBusyRegionSplitPolicyDisabledRegionSplitPolicy ConstantSizeRegionSplitPolicy固定大小分裂默认情况下这个策略下当HRegion的大小达到10G的时候会均分为两个HRegion。可以通过属性hbase.hregion.max.filesize来调节单位是字节默认值是10737418240 IncreasingToUpperBoundRegionSplitPolicyHBase1.2及之前版本默认采用的就是这个策略。这个策略的特点前几次分裂不是固定的数据而是需要通过计算来获取 如果HRegion的数量超过了100那么就按照hbase.hregion.max.filesize(默认值是10G)大小来分裂 如果HRegion的数量在1-100之间那么按照min(hbase.hregion.max.filesize, regionCount^3 * initialSize)来计算其中regionCount表示HRegion的个数initialSize是HRegion的大小initialSize的默认值是2 * hbase.hregion.memstreo.flush.size(默认值是134217728B) initialSize的值可以通过属性hbase.increasing.policy.initial.size来指定单位是字节 KeyPrefixRegionSplitPolicyIncreasingToUpperBoundRegionSplitPolicy的子类在IncreasingToUpperBoundRegionSplitPolicy的基础上添加了行键的判断会将行键前缀相同(默认读取行键的前五个字节)的数据拆分到同一个HRegion中。这种分裂策略会导致拆分之后的两个HRegion之间不等大 DelimitedKeyPrefixRegionSplitPolicy例如当行键是video_001、txt_001log_003等此时希望行键是以_作为拆分单位那么此时就需要使用DelimitedKeyPrefixRegionSplitPolicy SteppingSplitPolicyHBase2.X默认使用的就是这个策略 如果这个表中只有1个HRegion那么按照2 * hbase.hregion.memstreo.flush.size来进行分裂 如果这个表中HRegion的个数超过1个那么按照hbase.hregion.max.filesize来进行分类 BusyRegionSplitPolicy这个策略只有在HBase2.x中可以使用是IncreasingToUpperBoundRegionSplitPolicy的子类 在IncreasingToUpperBoundRegionSplitPolicy的基础上添加了热点策略。热点指的是在一段时间内被频繁访问的数据。如果某一个写数据是热点数据那么HRegion会将这些数据拆分到同一个HRegion中 判断一个HRegion是否是热点的HRegion计算方式 判断条件当前时间-上一次检测时间≥hbase.busy.policy.aggWindow这样做的目的是为了控制后续计算的频率 计算请求的被阻塞率aggBlockedRate 一段时间内被阻塞的请求数 / 总的请求数量 判断条件如果aggBlockedRate hbase.busy.policy.blockedRequests且该HRegion的繁忙时间 ≥ hbase.busy.policy.minAge那么判定这个HRegion就是一个热点HRegion hbase.busy.policy.aggWindow的值默认是300000单位是毫秒即5minhbase.busy.policy.blockedRequests的值默认是0.2fhbase.busy.policy.minAge的默认值是600000单位是毫秒即10min 默认情况下每隔5min进行一次检测计算如果该HRegion被频繁访问了10min且该HRegion的阻塞率超过了20%那么此时就认为这个HRegion是一个热点HRegion DisabledRegionSplitPolicy禁用分裂策略禁止HRegion的自动分裂。实际过程中较少使用除非能够预估数据量 HBase的结构 Zookeeper的作用 Zookeeper在HBase中充当了注册中心即HBase集群中每一个节点启动之后都会在Zookeeper来注册节点 HBase集群启动之后会在Zookeeper上来注册一个/hbase节点 当Active HMaster启动之后会自动的在Zookeeper上注册一个临时节点/hbase/master 当Backup HMaster启动之后会自动的在Zookeeper上的/hbase/backup-masters下来注册临时子节点。例如hadoop02上启动Backup HMaster那么在Zookeeper上注册的节点/hbase/backup-masters/hadoop02,16000,1712459407965 当HRegionServer启动之后会自动的在Zookeeper上的/hbase/rs下来注册临时子节点。例如hadoop01上启动HRegionServer那么在Zookeeper上注册的节点/hbase/rs/hadoop01,16020,1712459960698 HMaster HBase是一个典型的主从结构主节点是HMaster从节点是HRegionServer。在HBase中并不限制HMaster的个数可以在任意一台安装了HBase的节点上来启动HMaster hbase-daemon.sh start master 因此HBase不限制HMaster的个数所以理论上而言HMaster不存在单点故障 当HBase集群中存在多个HMaster的时候此时多个HMaster之间会存在Active和Backup状态 为了保证数据的一致性Active HMaster在接收到请求之后会将信息同步给其他的Backup HMasters同步的节点数量越多效率会越低。也因此虽然HBase中不限制HMaster的个数 但是实际过程中HMaster的数量一般不超过3个(1个Active HMaster 2个Backup HMaster) Active HMaster会实时监控Zookeeper上/hbase/backup-masters下的子节点变化以确定下一次需要将数据同步给哪些节点 当Zookeeper发现/hbase/master节点消失的时候意味着Active HMaster宕机那么此时Zookeeper会从/hbase/backup-masters的子节点中挑选一个切换为Active状态 HMaster的作用 管理HRegionServer但是不同于NameNode对于DataNode的掌控HMaster主要是负责HRegion在HRegionServer之间的分布和转移即HRegion交给HRegionServer来管理由HMaster决定 记录和管理元数据。HBase中的元数据包含namespace的信息表信息列族信息等。也因此凡是产生元数据的操作(DDLcreatedropalterlistenabledisable等)会经过HMaster凡是不产生元数据的操作(DML例如putappendgetscandeletedeleteall等)不会经过HMaster HBase架构的读写流程 客户端先访问Zookeeper从Zookeeper中获取hbase:meta文件的存储位置 客户端获取到hbase:meta文件的位置之后访问HRegionServer读取hbase:meta文件 客户端会从hbase:meta文件中获取到要操作的HRegion所在的位置 客户端获取到HRegion的位置之后会访问对应的HRegionServer来试着操作这个HRegion 注意HBase为了提高访问效率还大量的应用了缓存机制 在客户端第一次访问Zookeeper之后会缓存hbase:meta文件的位置那么后续这个客户端在发起请求的时候就可以不用访问Zookeeper 客户端在获取到HRegion的位置之后还会缓存这个HRegion的位置那么后续如果操作的是同一个HRegion还可以减少对元数据的读取 如果这个过程中发生了内存崩溃或者HRegion的分裂或者转移会导致缓存失效 HRegionServer HRegionServer是HBase的从节点负责管理HRegion。根据官方文档给定每一个HRegionServer大约可以管理1000个HRegion 每一个HRegionServer中包含1到多个WAL1个BlockCache以及0到多个HRegion WAL(Write Ahead Log)发生在写操作之前的日志在早期的版本中也称之为HLog WAL类似于HDFS中的edits文件。当HRegionServer接收到写操作之后会先将这个命令记录到WAL中然后再将数据更新到对应的HRegion的HStore的memStore中 在HBase0.94版本之前WAL采用的是串行写机制。从HBase0.94开始引入了NIO中的Channel从而支持了并行写机制因此能够提高WAL的写入效率从而提升HBase的并发量 通过WAL机制能够有效的保证数据不会产生丢失因为WAL是落地到的磁盘上的因此会一定程度上降低写入效率。实际过程中如果能够接收一定程度的数据丢失那么可以关闭WAL 当WAL写满之后会产生一个新的WAL。单个WAL文件的大小由属性hbase.regionserver.hlog.blocksize * hbase.regionserver.logroll.multiplier来决定 早期的时候hbase.regionserver.hlog.blocksize的值默认和HDFS的Block等大从HBase2.5开始hbase.regionserver.hlog.blocksize的值默认是HDFS Block的2倍大 早期的时候hbase.regionserver.logroll.multiplier的默认值是0.95从HBase2.5开始hbase.regionserver.logroll.multiplier的值是0.5 随着运行时间的推移WAL的数量会越来越多占用的磁盘会越来越多。因此当WAL文件的个数超过指定数量的时候按照时间顺序将产生的比较早的WAL清理掉。早期的时候WAL的数量由hbase.regionserver.max.logs来决定默认值是32从HBase2.x开始这个属性被废弃掉固定值就是32 BlockCache数据块缓存 本质上就是一个读缓存维系在内存中。早期的时候BlockCache的大小是128M从HBase2.x开始是通过属性hfile.block.cache.size来调节默认值是0.4即最多占用服务器内存的40% 需要注意的是如果hbase.regionserver.global.memstore.size hfile.block.cache.size 0.8即这个HRegionServer上所有的memStore所占内存之和 BlockCache占用的内存大小 服务器内存 * 0.8那么HRegionServer就会报错 当从HRegionServer来读取数据的时候数据会先缓存到BlockCache中然后再返回给客户端客户端下一次读取的时候可以直接从BlockCache中获取数据 BlockCache在进行缓存的时候还会采用局部性原理。所谓的局部性原理本质上就是根据时间或者空间规律来提高猜测的命中率 时间局部性当一条数据被读取之后HRegionServer会认为这条数据被再次读取的概率要高于其他没有被读取过的数据那么此时HRegionServer就会将这条数据放入BlockCache中 空间局部性当一条数据被读取之后HRegionServer会认为与这条数据相邻的数据被读取的概率要高于其他的数据那么此时HRegionServer会将与这条数据相邻的数据也放入BlockCache中 BlockCache还采用了LRU(Least Recently Used最近最少使用)策略。除了LRUBlockCache以外HBase还支持SlabBlockCache和BucketBlockCache HRegionHBase中分布式存储和管理的基本单位 每一个HRegion中包含1个到多个HStoreHStore的数量由列族数量来决定 每一个HStore中会包含1个memStore以及0到多个HFile/StoreFile memStore本质上是一个写缓存 HStore在接收到数据之后会将数据临时存储到memStore中 memStore是维系在内存中由属性hbase.regionserver.memstore.flush.size来决定默认值是134217728B 当达到一定条件的时候HRegionServer会将memStore中的数据进行flush(冲刷)操作每次冲刷都会产生一个新的HFile HFile最终会以Block形式落地到HDFS上 memStore的flush条件 当某一个memStore被用满之后这个memStore所在的HRegion中的所有的memStore都会进行冲刷 当HRegionServer上所有memStore所占内存之和 ≥ java_heapsize * hbase.regionserver.global.memstore.size * hbase.regionserver.global.memstore.upperLimit按照memStore的大小来依次冲刷直到不满足上述条件为止。 java_heapsizejava的堆内存大小 hbase.regionserver.global.memstore.size所有的memStore所能占用的内存比例默认是0.4 hbase.regionserver.global.memstore.upperLimit上限默认是0.95 假设服务器内存是128G如果所有的memStore所占内存之和≥128G*0.4*0.95将memStore从大到小依次冲刷直到不满足条件为止 如果WAL的数量达到指定值由于WAL会被清理掉所以为了保证数据不丢失那么会按照时间顺序将memStore来依次冲刷 当距离上一次冲刷达到指定的时间间隔(可以通过属性hbase.regionserver.optionalflushinterval来指定单位是毫秒默认值是3600000)的时候也会自动的触发memStore的冲刷
http://www.pierceye.com/news/986665/

相关文章:

  • 网站建设服务费怎么记账维护一个网站一年多少钱
  • 电子商务网站建设定位设想我的网站为什么打不开
  • 旅游网站开发方案ppt移动商城积分和积分区别
  • 如何做网站推广自己的产品WordPress+百度+主动
  • 商丘网站建设推广公司赣州seo唐三
  • 产品网站设计计算机专业做网站运营
  • 做平台网站怎么做的wordpress获取当前分类下的子分类
  • 广州网站建设性价比长安高端装备网站设计公司
  • 电子商务网站推广计划沈阳建设工程造价
  • 网站备案接入商是什么网站语言版本
  • 个人做网站做什么样的话网站站点连接不安全
  • 响应式网站 外贸平顶山 网站设计
  • 手袋 东莞网站建设成都哪里好玩适合情侣
  • 苏州哪个公司做门户网站给学校建网站那个系统好
  • 现在网站都是拿什么软件做的wordpress 自动alt
  • 山东省住房和城乡建设部网站首页网站中的自助报价系统
  • 如何 网站收录软件开发大概需要多少钱
  • 网站建设微信端简洁型网页
  • 一般的网站开发语言用什么《网站开发实践》 实训报告
  • php企业网站开发实验总结服务器
  • 织梦网站文章内容模板荣耀商城
  • seo 网站太小平面设计师招聘广告文案
  • 凡科网站建设桂林网站开发m0773
  • 做跨境都有哪些网站做电影类网站
  • 琼海商城网站建设东莞网站建设价位
  • 装饰网站建设重要性云服务器 多个网站
  • 邯郸市城乡建设管理局网站小米商城wordpress
  • 河北中石化建设网站html用户登录注册页面代码
  • 如何在网站后台备份数据库表设计本家装
  • 网站开发绑定qq企业域名注册