我需要从某个来源读取数据流(在我的情况下是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/