代码之家  ›  专栏  ›  技术社区  ›  Doraemon

在Twitter API中使用Nifi+Kafka有什么好处?

  •  0
  • Doraemon  · 技术社区  · 3 年前

    我在寻找用Spark流媒体进行情感分析的架构,我遇到了这个架构。

    enter image description here

    我想知道,在Twitter API中使用Nifi+Kafka,而不是直接将Spark连接到它,有什么好处,我想这样会更容错,但我真的不知道。

    0 回复  |  直到 3 年前
        1
  •  1
  •   Sdairs    3 年前

    NiFi是一种数据集成工具,它可以移动数据。它非常适合从源(如Twitter)获取数据并将其写入目的地(如卡夫卡)。

    总的来说,NiFi擅长连续不断的学习 从源头和 到达目的地(但你也可以 推动 尼菲,还有 退出 通过在流中创建端点实现NiFi)。

    就你而言,你是 从Twitter上——你将如何获取它,然后如何将这些数据传递给Spark?一般来说,Spark希望 来源。

    NiFi有很多内置功能,可以与数据源集成,包括从Twitter上获取数据。通过使用NiFi,您不必自己编写该功能。

    NiFi没有一个众所周知的协议来将数据推送到或从中提取数据,因为这不是NiFi的目的。您可以自己在NiFi中构建该功能,例如通过在NiFi流中创建HTTP端点,或者使用NiFi的站点到站点协议,但现在您进入的路径不太常见,并且为自己添加了大量工作。

    然而,卡夫卡有一个众所周知的协议,Spark与卡夫卡作为流媒体源有很好的集成。你可以很容易地将二者连接起来,只需很少的定制工作。

    NiFi还与卡夫卡作为数据目的地进行了很好的集成。

    因此,NiFi开箱即用可以处理Twitter->卡夫卡,而Spark可以处理来自卡夫卡的开箱即用的消费。你不需要编写太多(如果有的话)自定义代码来处理获取Twitter数据的问题。

    当然,Kafka还为这个用例添加了它的所有充分了解的好处,其中许多好处在NiFi中没有出现(因为NiFi不是消息代理,也不试图提供相同的功能)。