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

企业网站服务费怎么做记账凭证定制网站的好处

企业网站服务费怎么做记账凭证,定制网站的好处,没有网站可以做app吗,找素材的网站本文主要针对对HBase不了解的人。主要想基于个人的理解回答以下几个问题#xff1a;什么是HBase#xff1f;何时用HBase#xff1f;与Hive、Pig的区别#xff1f;HBase的结构为何HBase速度很快#xff1f;HBase常用的操作有哪些#xff1f;HBase的一些配置和监控解答(个人…本文主要针对对HBase不了解的人。主要想基于个人的理解回答以下几个问题什么是HBase何时用HBase与Hive、Pig的区别HBase的结构为何HBase速度很快HBase常用的操作有哪些HBase的一些配置和监控解答(个人理解)什么是HBaseHBase是Hadoop Database是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。使用HBase技术可以在廉价的PC服务器上搭建起大规模结构化的存储集群。它底层的文件系统使用HDFS使用Zookeeper来管理集群的HMaster和各Region server之间的通信监控各Region server的状态存储各Region的入口地址等。何时用HBase首先想想传统的关系型数据库都有哪些特点大概的特点有支持事务ACID(原子性、一致性、隔离性和持久性)特性行式存储SQL语句使用起来比较方便支持索引、视图等接下来我们考虑一个场景我们想要构建一个社交网站我们可能会选择易于操作的LAMP(Linux、Apache、Mysql、PHP)模型来快速的搭建一个原型。随着用户数的不断增加每天有越来越多的人开始访问这时候共享的数据库服务器压力会越来越大可以选择增加应用服务器但因为这些应用服务器共享中央数据库所以随着数据库的CPU和I/O负载升高这种方案势必不可长久。这时候我们可能会增加从服务器以便并行读取将读写分离。这样做是因为考虑到用户访问产生的读次数比写入次数更多但是如果用户数目增加很快产生的内容越来越多导致读写数目相差没那么大这种方案也就不能长久。接下来的常见做法就是增加缓存比如使用Memcached。这样读操作存入到内存中的数据库系统中但又没办法保证数据一致性因为用户更新数据到数据库而数据库不会主动更新缓存中的数据而且这种方案只能解决读请求的压力对于写请求还是没有解决。所以需要更多的服务器更快的磁盘会导致硬件成本快速升高。而且随着用户的增多网站功能势必增加业务功能都会使用sql语句进行查询而表数据过多会导致join操作变慢所以会不得不采用一些逆范式的方式来设计数据库这样导致无法使用存储过程。而且数据过大时索引的效果也没那么强了。因为索引也会变得很大。这时候应该怎么办有些人采用了数据库分区的方式将数据拆分。但是大规模的拆分将导致大量复制操作带来大量的I/O损耗。所以这种方式也不一定好。03年谷歌发表了一片论文叫做《The Google File System》这个文件系统简称GFS该文件系统中的数据在节点中冗余存储即使一台服务器发生故障也不会影响数据可用性。但是GFS只适合存储少量非常大的文件不适合存储数量众多的小文件因为文件的元信息存储在主节点的内存中文件越多主节点压力越大。经过Google的深入研究在06年发表了另外一篇重量级论文《BigTableA Distributed Storage System for Structed Data》。HBase就是BigTable的开源实现当然也建立在HDFS(GFS的开源实现)和Hadoop(MapReduce的开源实现)、Zookeeper(Chubby的开源实现)的基础上。何时用HBase呢在下面几种情况下可以考虑使用HBase替代关系数据库系统需要适应不同种类的数据格式和数据源不能预先严格定义模式需要处理大规模数据不强调数据之间的关系所要存储的数据是半结构化或非结构化的数据非常稀疏想要更好的进行扩展比如谷歌就将BigTable用来存储网页的索引数据索引数据就很好的满足了上面的几点要求。与Hive、Pig的区别HBase是低延迟、非结构化和面向编程的而Hive是高延迟、结构化和面向分析的Hive本身不存储和计算数据它完全依赖与HDFS和MapReduceHive中的表是逻辑表HBase通过组织起节点内所有机器的内存提供一个超大的内存Hash表它需要在磁盘和内存组织自己的数据结构HBase中的表是物理表如果是全表扫描就用HiveHadoop如果是索引访问就用HBaseHadoop。Hive主要用于静态的结构以及需要经常分析的工作Pig相比Hive相对轻量它主要的优势是相对比于直接使用Hadoop Java APIs可大幅消减代码量Hive和Pig都可以与HBase组合使用Hive和Pig还为HBase提供了高层语言支持使得在HBase上进行数据统计处理变得非常简单。HBase的结构1)表、行、列和单元格先做一个简单的总结最基本的单位是列(column)一列或者多列组成一行(row)并且由唯一的行键(row key)来确定存储。一个表中有很多行每一列可能有多个版本在每一个单元格(Cell)中存储了不同的值。HBase的行与行之间是有序的按照row key的字典序进行排序行键是唯一的在一个表里只出现一次否则就是在更新同一行行键可以是任意的字节数组。一行由若干列组成其中的某些列又可以构成一个列族(column family)一个列族的所有列存储在同一个底层的存储文件里这个文件称之为HFile。列族需要在创建表的时候就定义好数量也不宜过多。列族名必须由可打印字符组成创建表的时候不需要定义好列。对列的引用格式通常为familyqualifierqualifier也可以是任意的字节数组。同一个列族里qualifier的名称应该唯一否则就是在更新同一列列的数量没有限制可以有数百万个。列值也没有类型和长度限定。HBase会对row key的长度做检查默认应该小于65536。一个可视化的HBase表如下imestamp代表时间戳默认由系统指定用户也可以显示设置。使用不同的时间戳来区分不同的版本。一个单元格的不同版本的值按照时间戳降序排列在一起在读取的时候优先取最新的值。用户可以指定每个值能保存的最大版本数HBase-0.96版本默认的最大版本数为1。HBase的存取模式如下(表行键列族列时间戳)- 值。即一个表中的某一行键的某一列族的某一列的某一个版本的值唯一。行数据的存取操作是原子的可以读取任意数目的列。目前还不支持跨行事务和跨表事务。同一列族下的数据压缩在一起访问控制磁盘和内存都在列族层面进行。2)自动分区HBase中扩展和负载均衡的基本单元称作regionregion本质上是以行键排序的连续存储空间。如果region过大系统就会把它们动态拆分相反的就把多个region合并以减少存储文件数量。一个表最开始只有一个region用户开始向表中插入数据时系统会检查region大小确保不会超过配置的最大值如果超过会从region中行键的中间值一分为二将该region分为大小大致相等的两个region。注意每个region只能由一个region server加载每一台region服务器可以同时加载多个region。下图展示了一个表该表实际上是由很多region server加载的region集合组成的逻辑视图。每台服务器能加载的region数量和每个region的最佳大小取决于单台服务器的有效处理能力。3)HBase存储格式HFileHBase中KeyValue数据的存储格式。HFile是Hadoop的二进制格式文件。HLogHBase中WAL(Write-Ahead-Log预写式日志)文件的存储格式物理上是Hadoop的Sequence File。HFile的格式如下图HFile文件的长度可变唯一固定的是File Info和Trailer。Trailer存储指向其他块的指针它在持久化数据到文件结束时写入的写入后该文件就会变成不可变的数据存储文件。数据块(data blocks)中存储key-values可以看做是一个MapFile。当block关闭操作时第一个key会被写入index中index文件在hfile关闭操作时写入。KeyValue的具体格式如下图上图中keytype有四种类型分别是Put、Delete、 DeleteColumn和DeleteFamily。RowLength为2个字节Row长度不固定ColumnFamilyLength为2个字节ColumnFamily长度不固定ColumnQualifier长度不固定TimeStamp为4个字节KeyType为1个字节。之所以不记录ColumnQualifier的长度是因为可以通过其他字段计算得到。4)WAL(预写式日志)region server会将数据保存到内存直到积攒到足够多的数据再将其刷写到磁盘这样可避免很多小文件。但此时如果发生断电或其他故障存储在内存中的数据没来得及保存到磁盘就会出现数据丢失情况。WAL能解决这个问题。每次更新(编辑)都会写入日志只有日志写入成功后才会告知客户端写入成功然后服务器按需批量处理内存中的数据。如果服务器崩溃region server会回访日志使得服务器恢复到服务器崩溃前的状态。下图显示了写入过程所有的修改都会先保存到WAL然后再传给MemStore。整个过程是这样的客户端启动一个操作来修改数据比如Put。每次修改都封装到一个KeyValue对象实例中通过RPC调用发送出去。这些调用会发送给含有匹配region的Region ServerKeyValue实例到达后它们会被分配到管理对应行HRegion实例数据被写入WAL然后被放入实际拥有记录的MemStore中当MemStore达到一定大小或经历一个特定时间数据会异步的连续的写入到文件系统中(HFile)。如果写入过程出现问题WAL能保证数据不丢失因为WAL日志HLog存储在HDFS上。其他region server可以读取日志文件并回放修改恢复数据。5)HBase系统架构HBase架构包括HBase Client、Zookeeper、HMaster、HRegionServer、HStore存储几个部分。下面一一叙述。一个大体的架构图如下a)HBase ClientHBase Client使用HBase的RPC机制与HMaster和HRegionServer进行通信。对于管理类操作(如建表删表等)Client和HMaster进行RPC对于数据读写类操作Client和HRegionServer进行RPC。b)Zookeeper一个分布式的开放源码的分布式应用程序协调服务分布式应用程序可以基于它实现同步服务配置维护和命名服务等。它是Chubby的开源实现。Zookeeper Quorum中除了存储了-ROOT-表的地址和Master的地址RegionServer也会把自己注册到Zookeeper中使Master可以随时感知到各个RegionServer的健康状态。c)HMaster管理用户对Table的增、删、改、查操作管理HRegionServer的负载均衡调整Region分布在Region Split后负责新Region的分配在HRegionServer停机后负责失效HRegionServer上的Regions迁移。d)HRegionServer主要负责响应用户I/O请求向HDFS文件系统中读写数据是HBase中最核心的模块当用户更新数据的时候会被分配到对应的HRegion服务器上提交修改这些修改显示被写到MemStore写缓存和服务器的Hlog文件里面。在操作写入Hlog之后commit()调用才会将其返回给客户端在读取数据的时候HRegion服务器会先访问BlockCache读缓存如果缓存里没有改数据才会回到Hstores磁盘上面寻找每一个列族都会有一个HStore集合每一个HStore集合包含很多HstoreFile文件。e)特殊的表-ROOT- 表和.META.表是两个比较特殊的表。.META.记录了用户表的Region信息.META.可以有多个regoin。-ROOT-记录了.META.表的Region信息-ROOT-只有一个regionZookeeper中记录了-ROOT-表的location。具体如下为何HBase速度很快HBase能提供实时计算服务主要原因是由其架构和底层的数据结构决定的即由LSM-Tree(Log-Structured Merge-Tree) HTable(region分区) Cache决定——客户端可以直接定位到要查数据所在的HRegion server服务器然后直接在服务器的一个region上查找要匹配的数据并且这些数据部分是经过cache缓存的。前面说过HBase会将数据保存到内存中在内存中的数据是有序的如果内存空间满了会刷写到HFile中而在HFile中保存的内容也是有序的。当数据写入HFile后内存中的数据会被丢弃。HFile文件为磁盘顺序读取做了优化按页存储。下图展示了在内存中多个块存储并归并到磁盘的过程合并写入会产生新的结果块最终多个块被合并为更大块。多次刷写后会产生很多小文件后台线程会合并小文件组成大文件这样磁盘查找会限制在少数几个数据存储文件中。HBase的写入速度快是因为它其实并不是真的立即写入文件中而是先写入内存随后异步刷入HFile。所以在客户端看来写入速度很快。另外写入时候将随机写入转换成顺序写数据写入速度也很稳定。而读取速度快是因为它使用了LSM树型结构而不是B或B树。磁盘的顺序读取速度很快但是相比而言寻找磁道的速度就要慢很多。HBase的存储结构导致它需要磁盘寻道时间在可预测范围内并且读取与所要查询的rowkey连续的任意数量的记录都不会引发额外的寻道开销。比如有5个存储文件那么最多需要5次磁盘寻道就可以。而关系型数据库即使有索引也无法确定磁盘寻道次数。而且HBase读取首先会在缓存(BlockCache)中查找它采用了LRU(最近最少使用算法)如果缓存中没找到会从内存中的MemStore中查找只有这两个地方都找不到时才会加载HFile中的内容而上文也提到了读取HFile速度也会很快因为节省了寻道开销。HBase常用操作ListCreatePutScanGetDeleteDisableDrop
http://www.zqtcl.cn/news/963162/

相关文章:

  • 帮人做图挣外快的网站seo优化教学视频
  • 做房产中介需要有内部网站吗烟台开发区网站建设
  • 网站资质优化网站备案密码使用
  • 廊坊营销网站团队网站推广报告
  • 商品网站模板多语言企业网站模板
  • 佛山网页制作设计东莞seo推广机构帖子
  • 公司网站开发费用如何入账网站开发与设计实训总结两千字
  • 生物网站模板在线crm厂商
  • 在线制作动画网站ps切图做网站
  • 西安企业网站建设公司虚拟主机可以做视频网站嘛
  • 做淘客网站用什么程序今天杭州新闻最新消息
  • 东莞专业建网站网站制作方案相信乐云seo
  • 网站分页符素材怎么解决
  • 行远金华网站建设公司合肥公司做网站
  • 餐厅类网站模板中国电建市政建设集团有限公司网站
  • 格力网站建设首页六盘水遵义网站建设怎么做
  • 建设工程企业资质工作网站创建网站怎么赚钱的
  • 三水网站建设流感吃什么药最好
  • 洛阳市住房和城乡建设局网站怎么查询企业注册信息
  • 商业摄影网站源码wordpress文章作者
  • 昆明企业网站模板建站漳浦建设局网站更新
  • 企业网站建设策划书微信开发者工具是干嘛的
  • 泵 品牌网站建设WordPress头像不能本地化
  • vue快速建站网站开发法律
  • 家居行业网站开发百度竞价推广账户
  • 粉色大气妇科医院网站源码百度网址大全网址
  • wordpress 留言墙插件优化网站搭建
  • 优秀设计师网站芯片设计公司
  • 铜陵网站建设公司wordpress密码访问插件
  • 一个公司做2个产品网站怎么做的wordpress网站怎么百度的到