当前位置: 首页 > 知识库问答 >
问题:

Apache Flume vs Apache Flink 的区别

段干博涉
2023-03-14

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

使用Flume或Flink有什么区别吗?

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

但我是 Flink 的新手,所以对我来说,看起来 Flink 也会这样做。

选哪个比较好?性能有区别吗?

拜托,救命啊!

共有2个答案

许嘉福
2023-03-14

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

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

在netcat UDP源代码提交到代码库之前,可以使用Exec Source。

对于转换,很难提供建议,但您可能想看看 Morphline 拦截器。

关于通道,我建议使用内存通道,因为如果源是UDP,一些可以忽略不计的数据丢失应该是可以接受的。

水槽方面,HDFS水槽可能满足你的需求。

吕新
2023-03-14

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

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

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

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

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

 类似资料:
  • 本文向大家介绍title与h1的区别、b与strong的区别、i与em的区别?相关面试题,主要包含被问及title与h1的区别、b与strong的区别、i与em的区别?时的应答技巧和注意事项,需要的朋友参考一下 title 是 网页标题标签 h1 是文本标签 默认与word的h1相似为最大的标题显示 b 为文本加粗标签 与word的加粗功能相似 strong 为强调语气, 也是为文本加粗 与b标签

  • 本文向大家介绍& 和 && 的区别?相关面试题,主要包含被问及& 和 && 的区别?时的应答技巧和注意事项,需要的朋友参考一下 &运算符是:逻辑与;&&运算符是:短路与。 &和&&在程序中最终的运算结果是完全一致的,只不过&&存在短路现象,当&&运算符左边的表达式结果为false的时候,右边的表达式不执行,此时就发生了短路现象。如果是&运算符,那么不管左边的表达式是true还是false,右边表达

  • 本文向大家介绍AdaBoost和GBDT的区别,AdaBoost和GBDT的区别?相关面试题,主要包含被问及AdaBoost和GBDT的区别,AdaBoost和GBDT的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: AdaBoost通过调整错分的数据点的权重来改进模型,而GBDT是从负梯度的方向去拟合改进模型。 AdaBoost改变了训练数据的权值,即样本的概率分布,减少上一轮被正

  • 本文向大家介绍Cookie和session的区别,localstorage和sessionstorage的区别相关面试题,主要包含被问及Cookie和session的区别,localstorage和sessionstorage的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Cookie和session都可用来存储用户信息,cookie存放于客户端,session存放于服务器端,因为c

  • 主要内容:区块链,数据库区块链 区块链是一种数据库或分类帐,它将信息存储在称为块的数据结构中。它基于分布式分类帐技术,可以在不相互信任的各方之间使用。当在区块链中添加任何内容时,它需要来自网络上所有其他用户的验证。 区块链将信息永久保存在统一大小的块中。每个块存储来自前一个块的散列信息以提供加密安全性。区块链哈希使用SHA256哈希算法,一种单向哈希函数。先前块的哈希值可以追溯到区块链中产生的第一个块,称为“生成块”。区

  • 本文向大家介绍mysql分表和分区的区别浅析,包括了mysql分表和分区的区别浅析的使用技巧和注意事项,需要的朋友参考一下 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。 一、什么是mysql分表和分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同

  • 问题内容: 从和从调用mapreduce作业有什么区别?当我们说主类说时,如果仅通过main方法对作业进行简单的操作,我们将获得哪些额外的特权呢?谢谢。 问题答案: 没有额外的特权,但是您的命令行选项是通过GenericOptionsParser运行的,它将允许您提取某些配置属性并从中配置Configuration对象: http://hadoop.apache.org/common/docs/r

  • 本文向大家介绍@synthesize @dynamic 的区别相关面试题,主要包含被问及@synthesize @dynamic 的区别时的应答技巧和注意事项,需要的朋友参考一下 @synthesize 是系统自动生成getter和setter属性声明 @dynamic 是开发者自已提供相应的属性声明 @dynamic 意思是由开发人员提供相应的代码:对于只读属性需要提供 setter,对于读写属