• 大型分布式站点的技术需求


             HBase是Apache Hadoop项目下的一个子项目,它以GoogleBigTabale为原型,设计实现了高可靠性、高可扩展性、实现读写的列存储数据库。他的本质实际上是一张稀疏的大表。用来存储粗粒度的结构化数据,而且可以通过简单地添加节点来实现系统的线性扩展。

             HBase执行在分布式文件系统HDFS之上,利用它能够在便宜PC Server上搭建。HBase集群中通常包括两种角色。HMaster和HRegion server,当表随着记录条数的添加而不断变大后,将会分成一个个Region。

    每一个Region能够由(startey,endkey)来表示,它包括一个startkey道endkey的半闭区间,一个HRegionServer能够管理多个Region,并由HMaster来负责HRegionServer的调度及集群状态的监管。

    因为Region可分散并由不同的HRegionServer来管理。因此,理论上再大的表都能够通过集群来管理。从感觉上来看,这个HBase数据库和MySql数据库中的分表有类似的功能,仅仅只是这里天生支持将一个大表切割成更小的表。

     HDFS天生就有容错能力,假设使用默认设置,都有三分备份。一个是在本机,一个是在同一个机架上的别的电脑上,还有一个是在别的机架上的电脑上。

             对于MySQL来说,提高其性能的方法很多其它是通过分表或者分库的方法。对于一个非常大的表来说,依据一定的规则将一个更加大的表来进行划分,划分最常见的算法就是HASH,通过对于某一个表的訪问达到一定的上限,这样能够採用分库的方法。

             对于MySql中的并发訪问,能够考虑使用多个server。Master和Slava之间的数据同步。假设Master中变化,生成Binary log,然后slave通过Binary log 推导出SQL语句来更改本地的数据信息

             一种新的存储方案,非关系型数据库,NoSQL HBase 和Redis

    HBase有更好的伸缩能力。更适合于海量数据的存储和处理,而且HBase可以支持多个Region Server同一时候写入,并发写入性能十分出色。

    但HBase本身支持的查询维度有限,难以支持复杂的条件查询。如group by order by join等。

    这些特点使它的应用场景收到限制。对于Redis来说,它拥有更好的读写吞吐能力。可以支撑更高的并发数,而相较与其它的key-value类型的数据库,Redis可以提供更为丰富的数据类型支持。能更灵活地满足业务需求。

    在一个大型分布式站点中所须要使用的技术,比方分布式缓存(memcache)、持久化存储(比方数据库,关系型数据库和非关系型数据库 同一时候对于关系型数据库中的优化,并发訪问过高的处理等)、分布式消息系统(ACTIVEMQ等系统通信机制)、搜索引擎(垂直化搜索引擎)。

    除了这些还有非常多其它的技术支撑,比方实时计算。离线计算,分布式文件系统,日志收集系统。监控系统,数据仓库,CDN系统,负载均衡系统。消息推送系统,自己主动化运维系统,当然还有非常重要的安全问题。

  • 相关阅读:
    20210603
    20210602
    20210601
    20210531-已编辑
    2021053101
    操作系统笔记(一)
    尘埃落定,扬帆起航
    RTL级低功耗设计
    关于毛刺
    电路级拾珍
  • 原文地址:https://www.cnblogs.com/llguanli/p/6912391.html
Copyright © 2020-2023  润新知