您当前的位置:首页 > 互联网百科 > 大数据

实战:如何实时采集上亿级别数据?

时间:2020-11-13 10:02:46  来源:  作者:

背景介绍

公司业务系统做优化改造,同时为了能够实现全链路监控,需收集所有业务系统之间的调用日志。

数据情况:每天20亿+

机器成本:3台kafka集群,2台logstash采集机器

技术:JAVA,MQ,MLSQL,Logstash

下图为最终结果图

实战:如何实时采集上亿级别数据?

 

采集流程

实战:如何实时采集上亿级别数据?

 

流程分解

流程一:MLSQL 消费MQ

原始日志产生侧通过protobuf进行序列化推送至mq,然后通过MLSQL进行反序列化并进行简单的etl处理后,再推送至MQ

流程二:通过Logstash进行消费MQ

通过logstash消费经过MLSQL处理后的数据,并在这里通过ruby进行再次的加工处理,最后写入es和hdfs

注意:这里一部分流程推送到es是业务侧使用,而另一部分写入hdfs是提供给数仓使用

流程三: 数仓建模

这里通过数仓建模,将最后的指标结果推送至es提供给业务侧使用

注意:本篇主要是借鉴这个需求讲解Logstash在实际场景中的使用以及优化,其他两个部分流程不做详细讲解

为什么这样设计

原因一:

首先这个需求属于日志采集的范畴,但Logstash本身不支持反序列化功能,需要自定义开发ruby插件来支持,但这样一来开发成本较高,且不好维护,所以使用了MLSQL结合UDF的方式进行流式处理

原因二:

大家在对最后的输出流程可能会有疑惑,为什么不直接通过MLSQL来写入到hdfs和es呢,这里有两点:

1.MLSQL写入hdfs会产生大量的小文件,需要单独开发合并文件的功能

2.最后写入es的数据是需要数仓结合其他业务数据进行建模的,而MLSQL在这点做的不太好,所以这里走的是离线处理的方式

说到这里,具体的场景需要结合公司的实际情况来进行决策的,有些同学或许会想为什么不用flume进行日志采集呢?那这里就不做过多的解释了,白菜萝卜各有所爱,适合自己的才是最好的!废话不多说,接下来进入正题,结合该需求场景,如何使用较少的成本完成大数据量的采集呢?以及如何优化呢?

Logstash开发流程

1.确定日志格式

首先呢,一个日志文件里肯定是不止一种日志格式,也有可能是标准化的格式,这里需要跟日志产生侧进行确认格式

2.调试grok

确定好日志格式后,编写grok语法,然后进行调试,本人是通过kibana6自带的grok debug进行调试。结合该需求背景,最后经过logstash采集的时候,其实已经通过MLSQL进行了处理,最后Logstash消费的是格式就是一个json字符串,所以不需要grok语法,但是这里还是简单举个例子来说明一下

实战:如何实时采集上亿级别数据?

 

3.调试ruby

结合该需求,使用ruby进行一些清洗逻辑

实战:如何实时采集上亿级别数据?

 

4.优化

这里优化的工作在整个需求开发周期的比例较大,因为数据量较大,且资源比较少,具体优化思路如下:

1.MLSQL优化

这部分的优化工作主要是在反序化这块,剔除了一部分无用字段,以及提前过滤了一部分数据量,这里给出一部分注册UDF的代码

实战:如何实时采集上亿级别数据?

 

2.Kafka端优化

因kafka集群是集团共用,所以kafka端的优化其实只涉及到消费端的优化。这里只调节了两个参数

一:数据压缩

二:消费者线程数

3.hdfs优化

logstash写入hdfs的部分不用使用自带的webhdfs插件,而是自定义的插件。

因自定义插件中涉及到文件锁的问题,会通过比对前后两次文件是否一致来进行文件最后的刷写,所以这里只能通过减少文件的更新频率来减少上下文的切换以及刷写操作

4.ES优化

es部分的优化也只是涉及到写优化,比如批量写入、调大线程数、增加refresh间隔、禁止swApping交换内存、禁止refresh和replica操作,调大index buffer等操作



Tags:数据   点击:()  评论:()
声明:本站部分内容来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
背景介绍公司业务系统做优化改造,同时为了能够实现全链路监控,需收集所有业务系统之间的调用日志。数据情况:每天20亿+机器成本:3台kafka集群,2台logstash采集机器技术:Java,MQ...【详细内容】
2020-11-13   数据  点击:(0)  评论:(0)  加入收藏
今天这篇文章,给大家讲述一下数据仓库的架构模式,作为我们一起探讨的内容。希望大家留言、评论,我们一起学习。一 说到数据仓库,那么我们先来了解一下数据仓库的基本概念。数据...【详细内容】
2020-11-13   数据  点击:(0)  评论:(0)  加入收藏
我们都知道现在mysql开源数据库是我们现在小型网站使用较多的免费数据库,我们在创建数据表时容易出现表名出现有问题需要修改,今天在这里教大家利用Sql语句来修改表名的方法:本...【详细内容】
2020-11-12   数据  点击:(3)  评论:(0)  加入收藏
MGR简介MySQL Group Replication,简称MGR,它是MySQL官方推出的基于paxos分布式一致性协议的状态机复制,实现了分布式下数据的最终一致性。同时MGR提供了高可用、高扩展、高可靠...【详细内容】
2020-11-12   数据  点击:(4)  评论:(0)  加入收藏
什么是数据科学数据科学通常被描述为统计和编程的交集。在本文中,我们讲介绍如何在你的电脑上设置立专业数据科学环境,这样你就可以开始动手实践与流行的数据科学库!什么是...【详细内容】
2020-11-12   数据  点击:(1)  评论:(0)  加入收藏
很多人在做数据分析的时候,不知道怎么去开展,或者怀疑自己做出的分析报告是否合理、是否全面,这是因为你对这一套标准化流程没有真正的理解。 如何通过科学的流程,来得出有价值...【详细内容】
2020-11-12   数据  点击:(2)  评论:(0)  加入收藏
相信很多人都在工作当中听到过不少次数据分析这一词,而数据分析这个词近几年来随着互联网的快速发展,成为商业世界中的流行语。很多具有远见卓识的公司很早就已经开始去“智能...【详细内容】
2020-11-11   数据  点击:(14)  评论:(0)  加入收藏
如何做好业务分析(数据分析)?上周我们分析关键是头脑中要有一个业务管理的“理想模型”。那么如何构建这样的一个理想模型(知识图谱)?这里介绍5种方法。——黄迪祺 在...【详细内容】
2020-11-11   数据  点击:(3)  评论:(0)  加入收藏
交换机(Switch):构建局域网不可或缺的设备 0x01 交换机的功能连接计算机,网络摄像头,服务器等终端设备,实现与其他交换机、防护墙、路由器等网络设备的互连,从而构建局域网络,实...【详细内容】
2020-11-11   数据  点击:(3)  评论:(0)  加入收藏
前言首发公众号:bigsai 头条号:程序员bigsai 还请关注、一键三连!对于Web来说,用户量和访问量在一定程度上推动项目技术和架构的更迭和进步。可能会有以下的一些状况: 页面并发量...【详细内容】
2020-11-10   数据  点击:(2)  评论:(0)  加入收藏
导读:《终于有人把数据中台讲明白了》一文讲到数据中台的定义和价值,本文将介绍数据中台到底包括什么内容。企业建设数据中台的过程中哪些能力是必选项,哪些是可选的,将在本文一...【详细内容】
2020-11-10   数据  点击:(1)  评论:(0)  加入收藏
1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- ---------...【详细内容】
2020-11-06   数据  点击:(5)  评论:(0)  加入收藏
前言HashMap是怎么实现地?为什么JDK8之后要换成红黑树?Mysql的索引为什么要用B+树?这些问题在面试中是经常被问到的。今天抽空把这些数据结构进行总结。其实每种数据结构都是为...【详细内容】
2020-11-06   数据  点击:(7)  评论:(0)  加入收藏
本文针对.net core开发环境,如何在winform和wpf等应用程序下配置数据库连接。关于如何在Core下使用DB First方式生成EF数据库代码,点击跳转原文链接。生成了数据库代码后,默认...【详细内容】
2020-11-06   数据  点击:(4)  评论:(0)  加入收藏
作者 | Roberto Vitillo译者 | 弯月,责编 | 屠敏头图 | CSDN 下载自视觉中国出品 | CSDN(ID:CSDNnews)以下为译文:想象一下,给变量赋值,然后立即读取,却发现刚刚的写入根本不起作用,...【详细内容】
2020-11-05   数据  点击:(9)  评论:(0)  加入收藏
> Photo by Tomas Martinez on Unsplash 介绍本文基于我之前的文章"一文了解大数据管道",我试图快速概述大数据世界的所有方面。本文的目标是重点介绍大数据 ETL 管道的"T",该...【详细内容】
2020-11-05   数据  点击:(7)  评论:(0)  加入收藏
到2024年底,75%的企业机构将从AI试点转为AI运营近日,Gartner发布了数据与分析领域的十大技术趋势,为数据和分析领导者的新冠疫情(COVID-19)响应和恢复工作提供指导,并为疫情后的重...【详细内容】
2020-11-04   数据  点击:(2)  评论:(0)  加入收藏
随着SSD应用的越来越广,我们的台式机、笔记本甚至服务器都被SSD占领。你有没有想过一个很细思极恐的问题:红旗到底能打多久——SSD硬盘能用多久?我们的数据安全吗?生...【详细内容】
2020-11-04   数据  点击:(4)  评论:(0)  加入收藏
导语:知识和数据被视为驱动人工智能迈向3.0时代的重要要素。如何把分散在不同的行业或领域里的数据和知识,充分地利用起来?同盾科技人工智能研究院创造性地提出了数据安全交换(F...【详细内容】
2020-11-02   数据  点击:(5)  评论:(0)  加入收藏
看了很多介绍数据可视化的文章,但是解释的可能都比较片面,数据可视化的用途在于辅助数据分析,那么数据可视化和可视化分析又具体是什么?在一个日益以数据为主导的世界中,各种各样...【详细内容】
2020-10-31   数据  点击:(4)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条