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是可靠的,容错性高的,可升级的,易管理的,并且可定制的
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平台搭建