flume - Apache Flume与Apache Flink的区别

标签 flume apache-flink flume-ng flink-streaming

我需要从某个来源读取数据流(在我的情况下是UDP流,但这没关系),转换每个记录并将其写入HDFS。

为此目的,使用 Flume Flink 有什么区别吗?

我知道我可以将Flume与自定义拦截器一起使用来转换每个事件。

但是我对Flink还是陌生的,所以对我来说Flink会做同样的事情。

哪个更好选择?性能上有区别吗?

请帮忙!

最佳答案

免责声明:我是Apache Flink的提交者和PMC成员。我没有关于Apache Flume的详细知识。

据我所知,将流数据从各种来源转移到HDFS是Apache Flume的主要用例之一。它是一种专用工具,我认为它内置了许多相关功能。我无法评论Flume的性能。

Apache Flink是一个用于数据流处理的平台,比Flume更通用且功能更丰富(例如,支持事件时间,高级窗口,高级API,容错和有状态的应用程序...)。您可以使用Flink实现和执行许多不同类型的流处理应用程序,包括流分析和CEP。

Flink具有滚动文件接收器,可将数据流写入HDFS文件,并允许通过用户定义的函数实现各种自定义行为。但是,它不是用于将数据提取到HDFS的专用工具。不要期望此用例有很多内置功能。 Flink提供了非常好的吞吐量和低延迟。

如果您只需要简单的记录级转换,那么我首先尝试使用Flume解决您的用例。我希望Flume带有一些在选择Flink时需要实现的功能。如果您希望将来进行更高级的流处理,那么Flink绝对值得一看。

关于flume - Apache Flume与Apache Flink的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39857922/

相关文章:

log4j2- ERROR Appenders 包含无效的元素或属性 "Flume"

apache - 使用 Flume 将推文写入 HDFS 对 Agent 不起作用

hadoop - 在 Ubuntu 上安装 Flume

logging - 命令行 Flume 抛出错误

java - Apache 弗林克 : can't use writeAsCsv() with a datastream of subclass tuple

hadoop - 用于写入文件的水槽配置 ~100mb(接近 120mb hdfs 文件大小)

stream - 检查点上的 Flume NullPointerExceptions

apache-flink - 为什么独立HA Flink集群不将检查点保存到 `state.backend.fs.checkpointdir`目录?

java - 对 FLINK task slot 的困惑

hadoop - 如果输入文件有任何更改,Flume 将日志写入 hdfs