Flume日志采集应用架构升级与重构

转眼新的一年又来了,趁着这段时间总结下2017这一年的工作经验,避免重复踩坑。MOB数据采集平台升级也快经历了半年时间,目前重构后线上运行稳定,在这过程中挖过坑,填过坑,为后续业务的实时计算需求打下了很好的基础。

一、升级与重构的原因

旧有架构

上图为旧有架构,主要服务于Hadoop2.x离线计算(T+1)以及Spark的实时计算(T+0),但在数据采集、数据流动、作业调度以及平台监控等几个环节存在的一些问题和不足。

数据采集:

数据采集平台与数据统计分析系统分离,不能统一管理数据流向,并且消耗服务资源

数据收集接口众多,数据格式杂乱:基本每个业务都有自己的上报接口,存在较大的重复开发成本,不能汇总上报,消耗客户端资源,以及网络流量,每个接口收集数据项和格式不统一,加大后期数据统计分析难度。

Flume采集单一channel的使用,可能导致高峰期队列堵塞,数据丢失的问题

平台监控:

只有系统层面的监控,数据平台方面的监控等于空白

针对以上问题,结合在大数据中,数据的时效性越高,数据越有价值的理念,因此,开始大重构数据采集平台架构。

二、升级后的架构设计

这张图是升级后的数据采集架构图,从图中可以了解到大数据采集过程以及数据走向:数据源,数据缓存,存储计算等环节。

将原来数据采集与数据计算架构进行聚合解耦,节省了服务资源,加强了数据采集的数据流的监管,对文件传输及数据完整性监控都有所补充,有利于后期离线或实时运算的可插拔接入。

Flume channel升级

数据传输上,将Flume Memory channel改为Kafka channel,可以缓存数据的同时,弥补日志高峰期,原来Memory channel队列不够的问题,减少重启Flume带来的数据丢失问题

三、监控

- 文件传输监控

Flume: 定制的zabbix监控,在flume里添加了zabbix监控模块

Kafka: 通过监控kafka consumer消费状态,当Lag达到一定值时,进行告警

数据完整监控

比如源数据与目标数据之差,相差超过1%,告警针对告警信息,采取数据补偿措施

四、参数优化

根据业务场景做节点参数调优

调大FlumeServer MemoryChannel的capacity,尽量利用MemoryChannel快速的处理能力;

调大HdfsSink的batchSize,增加吞吐量,减少hdfs的flush次数;

适当调大HdfsSink的callTimeout,避免不必要的超时错误(当然Hdfs也要做配合)

接收消息参数调优

内存调优

修改conf/flume-env.sh文件

五、结语

一个健壮强大的分布式日志采集系统无疑是整个大数据业务的重要枢纽,在实践中的一些关键的设计和思想,希望能抛砖引玉,在未来之路越走越好。

文/Mob开发者平台 Java高级工程师 恒恒

本文来自企鹅号 - Mob开发者服务平台媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏哲学驱动设计

微服务(Microservices)——Martin Flower【翻译】

原文是 Martin Flower 于 2014 年 3 月 25 日写的《Microservices》。 本文内容 微服务 微服务风格的特性 组...

23380
来自专栏云计算D1net

更快的网络+成本更低的消息=>微服务=>函数=>边缘计算

在德国柏林举办的microXchg 2017大会上,亚马逊公司技术专家Adrian Cockroft发表了一个前瞻性的演讲。Adrian Cockroft是Cl...

38340
来自专栏JAVA高级架构

对软件架构的一些思维脑图整理

65820
来自专栏LiveEdu在线科技教育平台

工作流程,编程,调试,性能:Unity游戏开发者应该学习的20个改进技巧

Unity 是一个备受欢迎的游戏开发平台。它的功能令人印象深刻,同时也迎合了不同的游戏开发需求。游戏开发者可以使用 Unity 创建任何类型的游戏,从世界级的 ...

40990
来自专栏JAVA烂猪皮

Java后端技术栈,到底如何深入学习?

很多人做Java开发2,3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理...

13020
来自专栏携程技术中心

干货 | 携程机票无线测试技术与效能提升

作者简介 罗昭君,携程机票无线高级测试经理,负责机票移动端功能测试、自动化测试、平台开发等。从事开发、测试工作近12年,先后在阿里巴巴、携程任职。 一、敏捷下移...

31550
来自专栏EAWorld

数字化企业云平台的Cloud Native12原则(上)

本文作者介绍了未来云原生应用建设的方法论,开发Cloud Native App的理想实践标准——12要素原则的前6个原则,并围绕数字化企业云平台讲述了具体实践方...

34060
来自专栏一个爱吃西瓜的程序员

【考研资料】送给有需要的人

我偶然在网上找到一些考研复习的视频资料,内容比较丰富。于是想着分享出来,送给有需要的朋友。 1 19考研(文都考研资料) 链接:https://pan.bai...

39990
来自专栏Java架构

架构的演进, 阿里资深Java工程师表述架构的腐化之谜

21250
来自专栏程序员同行者

初识微服务架构

14620

扫码关注云+社区

领取腾讯云代金券