Kat*_*ych 7 flume flume-ng apache-flink flink-streaming
我需要从某些源读取数据流(在我的例子中它是UDP流,但它应该无关紧要),转换每个记录并将其写入HDFS.
为此目的使用Flume或Flink有什么区别吗?
我知道我可以使用Flume和自定义拦截器来转换每个事件.
但我是Flink的新手,所以对我而言,Flink看起来也会如此.
哪一个更好选择?性能有差异吗?
请帮忙!
免责声明:我是 Apache Flume 的提交者。我没有关于 Apache Flink 的详细知识。
对于您描述的用例,Flume 可能是正确的选择。
您可以使用Exec 源,直到netcat UDP 源提交到代码库。
对于转换,很难提供建议,但您可能想看看Morphline Interceptor。
关于通道,我会推荐Memory Channel,因为如果源是 UDP,一些可以忽略不计的数据丢失应该是可以接受的。
Sink 方面,HDFS Sink可能满足您的需求。
免责声明:我是Apache Flink的提交者和PMC成员。我没有关于Apache Flume的详细知识。
据我所知,将流数据从各种来源转移到HDFS是Apache Flume的主要用例之一。它是一种专用工具,我认为它内置了许多相关功能。我无法评论Flume的性能。
Apache Flink是一个用于数据流处理的平台,比Flume更具通用性和功能(例如,对事件时间,高级窗口,高级API,容错和有状态的应用程序的支持等)。您可以使用Flink实施和执行许多不同类型的流处理应用程序,包括流分析和CEP。
Flink具有滚动文件接收器,可将数据流写入HDFS文件,并允许通过用户定义的函数实现各种自定义行为。但是,它不是用于将数据提取到HDFS的专用工具。不要期望此用例有很多内置功能。Flink提供了非常好的吞吐量和低延迟。
如果您只需要简单的记录级转换,那么我首先尝试使用Flume解决您的用例。我希望Flume具备一些功能,这些功能在选择Flink时需要实现。如果您希望将来进行更高级的流处理,那么Flink绝对值得一看。
| 归档时间: |
|
| 查看次数: |
2992 次 |
| 最近记录: |