文档章节

【采集层】Kafka 与 Flume 如何选择

 天下杰论
发布于 2015/11/05 16:19
字数 631
阅读 124
收藏 4

采集层 主要可以使用Flume, Kafka两种技术。

FlumeFlume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API.

KafkaKafka是一个可持久化的分布式的消息队列。

  • Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题Topics。相比之下,Flume是一个专用工具被设计为旨在往HDFS,HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性。所以,Cloudera 建议如果数据被多个系统消费的话,使用kafka;如果数据被设计给Hadoop使用,使用Flume

 

  • 正如你们所知Flume内置很多的sourcesink组件。然而,Kafka明显有一个更小的生产消费者生态系统,并且Kafka的社区支持不好。希望将来这种情况会得到改善,但是目前:使用Kafka意味着你准备好了编写你自己的生产者和消费者代码。如果已经存在的Flume SourcesSinks满足你的需求,并且你更喜欢不需要任何开发的系统,请使用Flume

 

  • Flume可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。Kafka需要外部的流处理系统才能做到。

 

  • KafkaFlume都是可靠的系统,通过适当的配置能保证零数据丢失。然而,Flume不支持副本事件。于是,如果Flume代理的一个节点奔溃了,即使使用了可靠的文件管道方式,你也将丢失这些事件直到你恢复这些磁盘。如果你需要一个高可靠行的管道,那么使用Kafka是个更好的选择。

 

  • FlumeKafka可以很好地结合起来使用。如果你的设计需要从KafkaHadoop的流数据,使用Flume代理并配置KafkaSource读取数据也是可行的:你没有必要实现自己的消费者。你可以直接利用FlumeHDFSHBase的结合的所有好处。你可以使用Cloudera Manager对消费者的监控,并且你甚至可以添加拦截器进行一些流处理。

FlumeKafka可以结合起来使用。通常会使用Flume + Kafka的方式。其实如果为了利用Flume已有的写HDFS功能,也可以使用Kafka + Flume的方式。

本文转载自:http://my.oschina.net/frankwu/blog/355298

共有 人打赏支持
粉丝 54
博文 450
码字总数 24615
作品 0
沈阳
项目经理
私信 提问
Apache Flume 1.7.0 发布,日志服务器

Apache Flume 1.7.0 发布了,Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 本次更新如...

局长
2016/10/19
2K
3
Apache Flume 1.6.0 发布,日志服务器

Apache Flume 1.6.0 发布,此版本现已提供下载: http://flume.apache.org/download.html 更新内容: ** Bug 修复 [FLUME-1793] - Unit test TestElasticSearchLogStashEventSerializer fail......

oschina
2015/06/03
3.1K
2
Apache Flume 1.9.0 发布,日志服务器

Apache Flume 1.9.0 发布了,Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 本次更新如...

程六金
01/10
0
0
Kafka实战-Flume到Kafka

1.概述   前面给大家介绍了整个Kafka项目的开发流程,今天给大家分享Kafka如何获取数据源,即Kafka生产数据。下面是今天要分享的目录: 数据来源 Flume到Kafka 数据源加载 预览   下面开...

smartloli
2015/07/02
0
0
【Kafka】Kafka的代码实现及与Flume的集成

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/gongxifacai_believe/article/details/86547209 1、Kafka API Kafka分别提供了基于Java和Scala的API,由于Kafka不仅...

魏晓蕾
01/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EFCore DbFirst 生成实体类

1、Nuget引用: Install-package Microsoft.EntityFrameworkCore.Tools Install-package Microsoft.EntityFrameworkCore.Design Install-package Microsoft.EntityFrameworkCore.SqlServer 2......

万邦科技-Anthony
43分钟前
2
0
OSChina 周三乱弹 —— 哽住

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蓝瞳 :分享高橋広樹的单曲《銀河沿線'05<Vo>》:一直暗恋却无法表白的女孩在电车上疲倦不堪累得靠在他的肩上,播磨拳儿终于忍不住流下了眼泪...

小小编辑
今天
472
7
shell输入内容时不显示内容

简介 大家都知道当我们ssh登录linux服务器的时候输入密码密码是不显示在屏幕上的,同样在我们写shell脚本的时候在获取用户密码的时候,有时候也希望不显示密码,这个是怎么做的呢 实例脚本 ...

bboysoulcn
今天
3
0
第11章 多线程

程序、进程、线程 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 **进程(process)**是程序的一次执行过程或是正在运行的一个程序。动...

流小文
今天
10
0
SpringBoot引入第三方jar包或本地jar包的处理方式

在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 - 第一种是将本地jar包安装在本地maven库 - 第二种是将本地j...

独钓渔
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部