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

基于hadoop+spark的大规模日志的一种处理方案

概述:

      CDN服务平台上有为客户提供访问日志下载的功能,主要是为了满足在给CDN客户提供服务的过程中,要对所有的记录访问日志,按照客户定制的格式化需求以小时为粒度(或者其他任意时间粒度)进行排序、压缩、打包,供客户进行下载,以便进行后续的核对和分析的诉求。而且CDN上的访问日志一般都非常大,需要用大数据处理架构来进行处理,本文描述了一种利用hadoop+spark来处理大量CDN日志的方法,当然本方案不局限于CDN日志处理,完全可以应用到其他日志处理的应用需求上面。

        本方案是一种对大数据量的日志进行打包处理的优化方法。首先,可以充分利用HDFS+SPARK大数据系统的分布式处理能力,让整个系统尽可能地连续进行工作,来处理实时上传上来的大量应用服务日志,而不至于因为业务规定的打包粒度的要求而等到一个相对较大的时间粒度(譬如1小时或者1天)的开始之后才能对日志进行处理,从而大幅度提升的日志处理的及时性和处理的效率;其次,采用本方案的方法,因为采用了比业务需求规定的更细的粒度对日志文件进行处理,一旦发现某个时间点的日志处理有问题,可以精确定位到那个时间点(1分钟级)的文件,进行细粒度追溯和回滚处理,避免在大粒度上面进行处理,大幅度减少了需要追溯或回滚的数据的处理量,提升了系统的可维护性;最后,利用HDFS+SPARK大数据系统处理平台的弹性架构,能够为整个日志处理系统提供长期的弹性扩容能力,满足未来长期运行的需求。

实现说明:

以下对具体实现方式进行说明。

首先,先描述一下整个日志打包系统的部署架构,如下图:

  1. 图的左侧,多个应用服务器在应用服务系统运行的过程中,在不断的产生各种日志,通过一些实时采集工具将应用服务器的日志发送到异步队列kafka 中(这个环节的内容不是本方案的重点)。
  2. 图的中间,HDFS+SPARK集群进行分布式运算,来进行日志文件的格式化、排序、压缩、打包操作,最终生成打包好的分片(譬如以1分钟为粒度)日志文件存储到HDFS的指定目录中。
  3. 图的右侧,日志下载网关为查看和下载日志的用户提供虚拟视图,按照业务所要求的更大的时间粒度(譬如1小时或者1天粒度)提供日志的查看和下载。

下面,对HDFS+SPARK集群进行日志的处理过程进行详细描述

        由于存在众多的应用服务器&#x


http://www.kler.cn/a/228149.html

相关文章:

  • 模块初阶学习
  • C++ list 容器用法
  • 链式存储结构
  • 为AI聊天工具添加一个知识系统 之69 详细设计 之10 三种中台和时间度量 之2
  • 计算机网络-网络层
  • http和https分别是什么?区别是什么?
  • 数据安全加密系统的核心目的是什么
  • 从0开始搭建、上传npm包
  • 美敦力呼吸机PB560硬件分析
  • 后端程序员入门react笔记——react的生命周期(二)
  • Qt程序设计-自定义QLineEdit控件添加鼠标单击事件
  • JS第二天、原型、原型链、正则
  • iPhone搞机记录
  • 视频美颜SDK开发指南:从入门到精通的技术实践
  • 机器学习系列——(六)数据降维
  • 一次Kubernetes Pod内存异常导致的测试环境耗时异常问题排查过程
  • android.MediaMuxer时间裁剪
  • 用通俗易懂的方式讲解:12 个大模型 RAG 痛点及解决方案
  • 开源计算机视觉库OpenCV详解和实际运用案例
  • MongoDB 聚合:$listSessions
  • 【HarmonyOS应用开发】APP应用的通知(十五)
  • 【5G SA流程】5G SA下终端完整注册流程介绍
  • 4、SHAP值理论
  • Docker进阶篇-compose容器编排
  • MacOS Mojavev10.14.6
  • vim 常用命令