【问题标题】:Apache Flume vs Apache Flink differenceApache Flume 与 Apache Flink 的区别
【发布时间】:2016-10-04 16:59:59
【问题描述】:

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

为此目的使用 FlumeFlink 有什么区别吗?

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

但我是 Flink 的新手,所以对我来说 Flink 会做同样的事情。

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

请帮忙!

【问题讨论】:

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


    【解决方案1】:

    免责声明:我是 Apache Flink 的提交者和 PMC 成员。我对 Apache Flume 没有详细的了解。

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

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

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

    如果您只需要简单的记录级转换,我会首先尝试使用 Flume 解决您的用例。我希望 Flume 具有一些您在选择 Flink 时需要自己实现的功能。如果你期望在未来做更高级的流处理,Flink 绝对值得一看。

    【讨论】:

      【解决方案2】:

      免责声明:我是 Apache Flume 的提交者。我对 Apache Flink 没有详细的了解。

      对于您描述的用例,Flume 可能是正确的选择。

      netcat UDP source 被提交到代码库之前,您可以使用Exec Source

      关于转型,很难提供建议,但您不妨看看Morphline Interceptor

      关于频道,我推荐Memory Channel,因为如果来源是UDP,一些可以忽略不计的数据丢失应该是可以接受的。

      在接收器方面,HDFS Sink 可能满足您的需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多