实时计算之日志系统

1、日志系统(FLUME、kafka)
1.1 FLUME
概念: Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。

    特点  :flume具有高可用,分布式,配置工具,其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中

               a. Flume可以高效率的将多个网站服务器中收集的日志信息存入HDFS/HBase中

               b. 使用Flume,我们可以将从多个服务器中获取的数据迅速的移交给Hadoop中

               c. 除了日志信息,Flume同时也可以用来接入收集规模宏大的社交网络节点事件数据,比如facebook,twitter,电商网站如亚马逊,flipkart等

               d. 支持各种接入资源数据的类型以及接出数据类型

               e. 支持多路径流量,多管道接入流量,多管道接出流量,上下文路由等

               f. 可以被水平扩展

    优势:a.  Flume可以将应用产生的数据存储到任何集中存储器中,比如HDFS,HBase ; 

               b.  当收集数据的速度超过将写入数据的时候,也就是当收集信息遇到峰值时,这时候收集的信息非常大,甚至超过了系统的写入数据能力,这时候,Flume会在数据生产者和数据收容器间做出调整,保证其能够在两者之间提供一共平稳的数据.

               c.  提供上下文路由特征

               d.   Flume的管道是基于事务,保证了数据在传送和接收时的一致性.

               e.   Flume是可靠的,容错性高的,可升级的,易管理的,并且可定制的

Flume处理方式
flume日志处理流程

   1.2  kafka
    概念:是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统

    特点:可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等

               a. 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。

               b.可扩展性:kafka集群支持热扩展

               c.持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失

               d.容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)

               e.高并发:支持数千个客户端同时读写

    优势:a.  高吞吐的消息队列

               b. 系统间的解耦   

    相关链接:

https://blog.csdn.net/suilz/article/details/79999373(详细介绍Kafka概念、工作原理、结构)
https://blog.csdn.net/lingbo229/article/details/80761778(详细介绍了Kafka的原理、设计理念及优缺点,可从原理上了解Kafka的优缺点,更加全面,但更加难懂)

  1.3  综合对比           
         kafka和flume都是日志系统,kafka是分布式消息中间件,自带存储,提供push和pull存取数据功能。flume分为agent(数据采集器),collector(数据简单处理和写入),storage(存储器)三部分,每一部分都是可以定制的。

         kafka做日志缓存应该是更为合适的,但是 flume的数据采集部分做的很好,可以定制很多数据源,减少开发量。

         Flume :管道 ----个人认为比较适合有多个输入多输出场景,或者有写入Hbase、HDFS和kafka需求的场景。

Kafka :消息队列-----由于Kafka是Pull模式

结合目前技术和公司业务情况,建议采用两种方案结合的方法,目前也比较流行使用flume+kafka模式,为了利用flume写hdfs的能力,也可以采用kafka+flume的方式。

2.实时计算(spark streaming 、flink、storm)

总体对比,FLINK是一种流处理方案,对资源管理系统和日志系统的依赖比较强,各方面成熟度有待提高,但其实时性方面的性能是目前最优 的实时计算技术。

spark streaming并非真正的实时计算技术,而一种近似实时计算的技术,是将固定的数据块进行微切片,从而达到近似实时的效果,但也正是因为这种方式使其具备很好的容错能力。

相关推荐:https://www.iteblog.com/archives/2504.html,数仓的架构演变

https://www.cnblogs.com/suwy/p/9464352.html,spark本地构建

https://blog.csdn.net/oZuoLuo123/article/details/83588053,spark日志分析系统

https://www.2cto.com/net/201807/759651.html,实时计算框架对比

https://www.cnblogs.com/feiyudemeng/p/9157823.html,spark平台搭建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值