网站性能检测评分
注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。
大数据分析架构
大数据之Hadoop的数据库HBase的架构的详细讲解 流量视频课程
HBase
HBase即Hadoop DataBase,Hadoop的数据库,HBase是一种 "NoSQL" 数据库,即不是RDBMS ,不支持SQL作为主要访问手段。
Hbase它是基于hadoop的一个分布式数据库,即HBase是利用HDFS作为文件存储系统
特点
高可靠:因为是基于Hadoop的,Hadoop就具有高可靠,故HBase也具有高可靠性。
高性能:高写高读性能。
面向列:单独对列进行各种操作。
海量数据存储:单表可有上百亿行、上百万的列。也就是对列没有限制。
实时读写
多版本:Timestamp可以将cell中的数据存储好几个版本
准实时查询:查询上亿数据量低延迟 百毫秒级别
扩展性:因为是基于Hadoop的,Hadoop就具有扩展性,故HBase也具有扩展性。
HBase的架构
Master
它为Region Server分配region,并且负责Region Server的负载均衡,如果它发现失效的Region Server,它会重新分配失效Region Server上的Region,它还管理用户对表的增删改操作。
Region Server
它是用来维护region,并且处理对region的IO请求,还负责切分过大的Region。
Zookeeper
它是为了高可用行,即HA,在任何时候,可以保证集群中有且只有一个Master处于active状态,其他是standby状态,它还存储所有Region的寻址入口,并且实时监控Region Server的信息,实时通知Master存储HBase的schema和table元数据信息。
Memstore和storefile
region是由多个store组成,而一个store对应一个Column Famliy,store包括内存中的memstore和位于磁盘的storefile,如果有数据写入,那么会先写入memstore,当memstore中的数据达到设定的阈值时,regionserver会启动flushcache进程将数据写入到storefile,当storefile文件数量到了设定的阈值时,系统会进行minor、major compaction(即大合并和小合并),在合并过程中会进行版本合并和删除工作,形成更大的storefile,如果一个region的所有storefile的大小和数量超过设定的阈值时,会把当前的region分割为两个,并由master分配到相应的regionserver上,实现负载均衡,如果客户端要检索数据,它会先在memstore上找,如果找不到就会去storefile中找,直到找到。
Region是HBase中分布式存储和负载均衡的最小单元。最小单元就表示不同Region可以分布在不同Region Server上面
Minor Compaction
即小合并,将会选取一些小的、相邻的storefile,然后合并成更大的StoreFile,在这个过程不会处理Delete或者失效的Cell
Major Compaction
即大合并 这个过程会消耗大量的系统资源。将所有的StoreFile合并成一个StoreFile,它会清理三类数据:被删除的数据,TTL(TIME TO LIVE)生命周期过期的数据,版本号超过设定版本的数据。
Compaction就是使用短时间的IO消耗以及带宽消耗换取后续查询的低延迟
喜欢就关注小编,小编天天写,你也可以进步一点点
经典:一个大数据项目的架构设计与实施方案 流量视频课程
从菜鸟到架构师,不仅需要的是时间的磨练,更需要的是机会和平台。对于大数据技术的应用,不管是传统行业还是互联网行业,已经开始大范围的应用。很多人也轰轰烈烈的加入到大数据技术学习的行列中来,但大多数是三分钟热情高涨但又无法坚持到底。原因不是不想学,而是太复杂,坑太多。
对于接触过大数据技术的人应该比较清楚,大数据技术框架都是开源的,一个项目的完成需要众多技术的整合,包括安装、部署、开发、集成等。开源的也就免费,免费的东西有好的一方面,也有不好的一方面,好的一面就是企业应用不用花钱,尽管用。不好的一面也是学习者都感同身受,比较苦恼,就是坑太多,不是这个版本有bug,就是那个版本不兼容。在企业应用中对框架补漏修改是常有的事。也正因为这个,成就了行业很多的技术高手。当然,这也是为啥大数据人才稀缺并且薪水高的原因。
所以本篇我们为大家分享一套完整的大数据项目架构设计与实施方案,也是希望有基础的学习者能通过这个课程,一点画面,系统的学习,并且能彻彻底底的感受学习大数据技术所带来的成就感。体验自己如何根据零碎的基础知识能快速的架构设计大数据项目,并且完整的得以实施。
先来谈谈我们的需求,我们要对某新闻网做用户行为分析,需要达到以下几个要求:
实时捕获用户浏览日志信息并且存储(TB级别)实时分析前20名流量最高的新闻话题实时统计当前线上已曝光的新闻话题量离线分析统计哪个时段用户浏览量最高报表对外发布数据
针对以上的需求,如果是你该如何架构设计满足用户需求的系统呢?
先来看看卡弗卡大数据对以上需求实现的需求结果:
以上图描述的很清晰,基本完成了我们三个需求。接下来就是我们要分享的核心:系统架构设计。这个是非常重要的,他是在你完全熟练掌握技术基础之上,根据业务需求的理解而进行的设计工作。我们来看第一张图:
系统架构设计
架构设计中的所有技术框架在我们的系统实施过程中都得到了应用,当然,如何没用,我们也不会放在架构图中。哈哈。如果你能看懂这张图,那得恭喜你,你快入行了,如果看不懂,那说明你还只是个菜鸟,继续努力吧。
系统数据流程设计
在需求中我们提的很明确,有三个要点:第一是数据实时获取并存储;第二是数据实时在线分析;第三数据批量离线分析。所以在流程图上会有两个不同颜色的流程分支,一个是代表实时数据处理,一个是代表离线批量数据处理。如果你想学点什么,你应该会仔细的看这张图,因为图上的每一个标识,不管图标大小所描述的都是核心,都是重点。切记!
集群服务节点规划
大数据项目,玩的都是集群。没有一个企业会在单节点机器上玩大数据应用。除非你自己学习之用。上图是我们对此系统的服务节点规划,一个机器上放什么节点服务,这都是有原因的。不是你想放什么节点就放什么节点。所以架构设计中的机器规划部署也是非常重要的,在业务需求的基础上要做好资源的合理规划,包括扩展性和稳定性。
说了这么多,该如何实施呢?
一个完整项目的全流程实施,从架构设计、技术选型、环境配置、安装部署、研发、整合集成、数据可视化交互等各个方面所要求的知识点很多,如果是新手或者初学者,不是几篇文章能说的清楚的,也不是一朝一夕你能的搞明白的。当然这不是个人能力的问题,而是大数据技术框架本身的坑很多,如果没有系统完整案例的指导,你可能得自己一个一个的去填坑才有可能到达你想要的结果。我说的一点也不严重,不信你可以去试试,呵呵。
如果你想尽快的掌握一个完整的大数据项目架构与实施,请参加我们的线上直播课,没有别的,只是让我们的经验有价值的得到分享。