如何设计一个百亿级日志系统

日志

如何设计一个百亿级日志系统?

日志数据是最常见的一种海量数据

以淘宝天猫电商为例,双11活动期间,它可能每小时的日志数据量就达到了百亿级规模

海量的数据,随之而来的就是巨大的性能压力和存储压力,挑战非常的大。

要实现海量日志系统,需要从系统优化,部署,监控等等方面入手。

而且要尽可能的实现多种日志系统的架构设计,性能调优,横纵向扩展,集群搭建,分布式结构 数据分治,重写数据链路等多方面

日志采集系统flume和kafka有什么区别及联系?

Flume和Kafka有一部分功能是相同的,但是整体来看,两者的差别还是很大的;它们使用的场景有所不同,但是可以相互配合使用。

Flume

简单的说,Flume是分布式日志收集系统,它把各个服务器上的日志收集起来,传送到制定的地方,比如传送到HDFS中。

Kafka

Kafka的定位是分布式消息中间件,自带存储,提供push和pull存取数据功能。

使用场景

在实际应用中,系统实时产生的日志需要最后进入HDFS,但是生产上的日志数量会有波动,比如由于访问量的增加,导致突然之间产生大量的日志,这时候可能会导致日志写入HDFS失败,所以这时候可以先把日志数据写入到Kafka中,再由Kafka导入到HDFS中。

总结:在日志采集系统中,把Kafka当做日志缓存更加合适,Flume做数据采集,因为它可以定制很多数据源,减少开发量,所以Flume和Kafka可以配合起来一起工作。

整体的流程是这样的:

服务器上的日志<--Flume-->Kafka-->HDFS-->离线计算

服务器上的日志<--Flume-->Kafka-->Storm


希望我的回答能够帮助到你!

原文标题:如何设计一个百亿级日志系统

原文来源:"本站所有文章均来自于网络,如有侵犯到您的权益,请联系我们,即刻删除!"