我正在寻找架构来做情感分析,在流与火花,我偶然发现了这个架构。

我想知道,在Twitter API中使用Nifi + Kafka而不是直接将Spark连接到它有什么好处,我想它会像这样更容错,但我真的不知道。
发布于 2022-01-08 18:54:20
NiFi是一种数据集成工具,它可以移动数据。这对于从源(如Twitter)获取数据并将其写入目的地(例如Kafka)是很棒的。
通常,NiFi擅长于不断地将从源中提取,并将推送到目的地(但您也可以通过在流中创建端点从NiFi推送到NiFi )。
在您的例子中,您是从Twitter中提取--您将如何从Twitter中提取数据,然后如何将这些数据传递给火花?一般来说,斯派克想要从一个源中提取。
NiFi有许多内置的特性用于集成数据源,包括从Twitter中提取数据。通过使用NiFi,您不必自己编写该功能。
NiFi没有一个众所周知的协议来将数据推送/提取数据,因为这不是NiFi的目的。您可以在NiFi中自己构建该功能,例如,通过在NiFi流中创建HTTP端点,或者使用NiFi的站点到站点协议,但是现在您将进入不太成熟的路径,并为自己添加大量的工作。
然而,卡夫卡有一个众所周知的协议,星火有很好的集成卡夫卡作为一个流媒体源。你可以很容易地将两者连接起来,只需很少的定制工作。
NiFi也很好地集成了卡夫卡作为数据的目的地。
因此,开箱即用的NiFi可以处理推特上的->卡夫卡,而火花则可以处理掉卡夫卡的消费。您不必编写大量的自定义代码来处理获取Twitter数据的问题。
当然,卡夫卡也为这个用例增加了它所有的好处,其中许多在NiFi中并不存在(因为NiFi不是一个消息代理,并且不试图提供相同的特性)。
https://stackoverflow.com/questions/70634659
复制相似问题