日志采集系统flume和kafka有什么区别及联系,它们分别在什么时候
答案:3 悬赏:80 手机版
解决时间 2021-03-17 18:06
- 提问者网友:黑米和小志
- 2021-03-16 23:13
日志采集系统flume和kafka有什么区别及联系,它们分别在什么时候
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-03-16 23:48
前面应该还有个数据生产者,比如flume. flume负责生产数据,发送至kafka。 spark streaming作为消费者,实时的从kafka中获取数据进行计算。 计算结果保存至redis,供实时推荐使用。 flume+kafka+spark+redis是实时数据收集与计算的一套经典架构...
全部回答
- 1楼网友:鸽屿
- 2021-03-17 01:37
kafka是分布式消息队列或者叫分布式消息中间件,有时候会叫做一种MQ产品(Message Queue),同类型的有RabbitMQ,ActiveMQ等等。
MQTT是一种即时消息传输协议,Message Queuing Telemetry Transport,也就是一种即时信息传输的一种格式约定,与其类似的有XMPP等,是用来做IM的。
kafka是不支持MQTT协议的,如果非要把它们集成在一起,你要不自己分析,要不去Github上找找,说不定有人做过这样的项目。
两个M的意思,是完全不一样的,kafka的M是指各个服务器或各个进程间传输的消息,而MQTT的M,是指类似MSN,QQ那种IM中那种大家交流的那种消息。
- 2楼网友:骨子里都是戏
- 2021-03-17 00:52
采集层 主要可以使用flume, kafka两种技术。
flume:flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展api.
kafka:kafka是一个可持久化的分布式的消息队列。
kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题topics。相比之下,flume是一个专用工具被设计为旨在往hdfs,hbase发送数据。它对hdfs有特殊的优化,并且集成了hadoop的安全特性。所以,cloudera 建议如果数据被多个系统消费的话,使用kafka;如果数据被设计给hadoop使用,使用flume。
正如你们所知flume内置很多的source和sink组件。然而,kafka明显有一个更小的生产消费者生态系统,并且kafka的社区支持不好。希望将来这种情况会得到改善,但是目前:使用kafka意味着你准备好了编写你自己的生产者和消费者代码。如果已经存在的flume sources和sinks满足你的需求,并且你更喜欢不需要任何开发的系统,请使用flume。
flume可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。kafka需要外部的流处理系统才能做到。
kafka和flume都是可靠的系统,通过适当的配置能保证零数据丢失。然而,flume不支持副本事件。于是,如果flume代理的一个节点奔溃了,即使使用了可靠的文件管道方式,你也将丢失这些事件直到你恢复这些磁盘。如果你需要一个高可靠行的管道,那么使用kafka是个更好的选择。
flume和kafka可以很好地结合起来使用。如果你的设计需要从kafka到hadoop的流数据,使用flume代理并配置kafka的source读取数据也是可行的:你没有必要实现自己的消费者。你可以直接利用flume与hdfs及hbase的结合的所有好处。你可以使用cloudera manager对消费者的监控,并且你甚至可以添加拦截器进行一些流处理。
flume和kafka可以结合起来使用。通常会使用flume + kafka的方式。其实如果为了利用flume已有的写hdfs功能,也可以使用kafka + flume的方式。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯