Spark+Hbase 亿级流量分析实战(日志存储设计)

双子孤狼 2019-04-25 21:43:50 ⋅ 765 阅读

接着上篇文章 Spark+Hbase 亿级流量分析实战(数据结构设计) 我们已经设计好了日志的结构,接下来我们就准备要开始撸代码了,我最喜欢这部分的环节了,可是一个上来连就撸代码的程序肯定不是好程序员,要不先设计设计流程图?那来吧!!!

  1. 用户发起文章操作,发起请求日志

  2. 日志将由SLB服务器进行负载到日志打点服务器。

  3. NSA将作为日志收集中心进行存储,也可以使用Rsync把节点上的日志同步到日志中心。

  4. 作为核心的ETL程序,将要对日志中心上所有节点的数据进行抽取转换加载。

  5. 上图中出现的Hbase比较好理解,但是为什么要出现Mysql?因为我们要更细粒度地控制日志的写入时间点,主要用来记录日志时间的offset,后续会有详细的介绍。

  1. 用户发起文章操作,发起请求日志

  2. 日志将由SLB服务器进行负载到日志打点服务器。

  3. Filebeat 收集节点日志 到Kafka,主要是用来日志削峰使用。
    或者:使用nginx直接将日志写入kafka,因为nginx也是生产级别的。

  4. ETL 将消费Kafka 数据并写到Hbase。

  5. 与设计一相同

日志中心的存储会是下面这样

├── log│ ├── 2019-03-21│ │ ├── 111.12.32.11│ │ │ ├── 10_01.log│ │ │ └── 10_02.log│ │ ├── 222.22.123.123│ │ │ ├── 0_01.log│ │ │ ├── 0_02.log│ │ │ └── 0_03.log│ │ └── 33.44.55.11│ ├── 2019-03-22│ └── 2019-03-23


  1. 每分钟每节点会生成一个文件。

  2. 一天一个文件夹。

  3. 这样子的设计可以方便查错。

日志内容如下

{"time":1553269361115,"data":{"type": "read","aid":"10000","uid":"4229d691b07b13341da53f17ab9f2416","tid": "49f68a5c8493ec2c0bf489821c21fc3b","ip": "22.22.22.22"}}{"time":1553269371115,"data":{"type": "comment","content":"666,支持一下","aid":"10000","uid":"4229d691b07b13341da53f17ab9f2416","tid": "49f68a5c8493ec2c0bf489821c21fc3b","ip": "22.22.22.22"}}


选择设计一

因为我们就看上了第5点,在线上业务稳定了一年的使用情况来看,这种方案是可行的。

在下篇文章中,我们将真实开始撸我们的黄金代码了,所有程序将使用scala进行实现,你想问我什么吗?四个字:

心明眼亮的你、从此刻开始。

   


作者:大猪大猪
链接:https://www.jianshu.com/p/24a6daf93746


---------------END----------------

后续的内容同样精彩

长按关注“IT实战联盟”哦





全部评论: 0

    我有话说:

    Apache HBase 2.3.2 发布,分布式存储系统

    Apache HBase 2.3.2 已经发布。HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用 HBase 技术可在廉价 PC

    「轻阅读」亿用户的分布式数据存储解决方案

    分布式数据库和分布式存储是分布式系统中难度最大、挑战最大,也是最容易出问题的地方。互联网公司只有解决分布式数据存储的问题,才能支撑更多次亿用户的涌入。

    为什么说作为程序员分库分表的必要性一定要掌握?

      互联网大厂程序员必须掌握海量数据和高并发问题处理技能,期望进入大厂的程序员一定要仔细看这篇! MySQL 分库分表是做什么的? 相信很多程序员对 MySQL 都比较熟悉了,目前国内

    「轻阅读」聊一聊6种常用的架构设计模式(上)

      许多现代应用都需要在企业规模上进行构建,有时甚至需要在互联网规模上进行构建。这些应用都需要满足可扩展性、可用性、安全性、可靠性和弹性需求。 在本文中,我将谈论一些设计模式,这些模式

    「转载」微服务分布式架构中,如何实现日志链路跟踪?

    背景 开发排查系统问题用得最多的手段就是查看系统日志,在分布式环境中一般使用ELK来统一收集日志,但是在并发大时使用日志定位问题还是比较麻烦,我们来看下面的图     上图

    实战解析】基于HBase的大数据存储在京东的应用场景

    作者就职于京东商城京麦平台组,从事京东商家开放平台的相关开发工作。热爱技术,熟悉各种常用开源框架,有丰富的大型分布式系统、高并发系统的开发经验。热衷于对大数据的研究,对Hadoop、HBase以及

    「转载」使用DDD指导业务设计的一点思考

    领域驱动设计(DDD) 是 Eric Evans 提出的一种软件设计方法和思想,主要解决业务系统的设计和建模。DDD 有大量难以理解的概念,尤其是翻译的原因,某些词汇非常生涩,例如:模型、限界上下文

    58技术:基于Elastic Stack的海量日志分析平台实践

    背景 随着58集团业务的飞速发展,日志数量也呈现指数增长。传统的日志处理方案,已不再适用,此时急需一套功能强大、稳定可靠的日志处理系统。 ​为解集团燃眉之急,DB部门自2018年初着手调研解决方案

    GoAccess 1.4.4 发布,日志分析工具

    GoAccess 1.4.4 发布了。GoAccess 是一个基于终端的快速日志分析器。其核心思想是实时快速分析和查看 Web 服务器统计信息,而无需使用浏览器,适合希望通过 SSH 快速分析访问日

    京东技术:如何实现百万TPS?详解JMQ4的存储设计

    JMQ是京东中间件团队自研的消息中间件,诞生于2014年,服务京东近万个应用,2018年11.11大促期间的峰值流量超过5000亿条消息

    电商实战篇:商品模型分析设计(超级实用

    最近在设计电商平台,那么在整个电商系统中商品模型是非常重要的模块,也可以说是整个电商的核心,那么接下来我们一起分析一下,设计出一个完整的商品模型。

    关于MySQL 通用查询日志和慢查询日志分析

    MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。

    【开源资讯】Ant Design 4.0.1 发布,企业 UI 设计语言

    Ant Design 是阿里开源的一套企业的 UI 设计语言和 React 实现,使用 TypeScript 构建。

    打造千万流量秒杀系统

    背景介绍服务器成本高?经常遇见宕机?网站流量一大就出 bug ?...... 面对大流量的业务需求,任何一家大厂和高速扩张的企业,都非常需要可以掌握高可用、高性能、高并发 “三高”系统架构设计能力的

    打造千万流量秒杀系统

    讲师:易乐天 前小米国际电商技术负责人 10 年软件开发经验。多年 Linux 系统编程、高性能和高并发编程经验。参与过亿用户、千万日活、百万并发系统开发,曾经将 IM 云 WebSocket

    Git特性分支工作流程

    Git特性分支工作流程

    SpringBoot+kafka+ELK分布式日志收集

    Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速、实时存储、搜索和分析大量数据。

    Apache Spark 3.0 发布,包含3400 多个补丁,TPC-DS 性能提升2倍。

    Spark 是用于大数据处理,数据科学,机器学习和数据分析等领域的统一引擎。