是否可以将数据从 Nifi 直接发送到 Spark Structured Streaming/Storm 而不会丢失数据?
Is possible send data from Nifi to Spark Structured Streaming/Storm directly without loss data?
在我目前的情况下; Nifi 收集数据,然后发送给 Kafka。然后任何流媒体引擎使用来自 kafka 的数据,并分析它。在这种情况下; 我不想在 Nifi 和 Streaming Engine 之间使用 Kafka。所以,我想直接从 Nifi 发送数据到流媒体引擎。但是,我不知道这里的一些细节。
例如 Spark 结构化流;假设我直接从 Nifi 向 Spark Structured Streaming 发送数据,Spark 收到了这个数据,但随后 spark 的节点关闭了。 Spark 节点中的数据会发生什么变化? (Spark Structured Streaming 有没有Nifi receiver?),另外,这种情况下Spark Structured Streaming 的数据保证是什么?
例如风暴; Storm 有 Nifi Bolt。但是,假设 Storm 已从 Nifi 接收到数据,但节点已关闭。数据会怎样?另外,这种情况下,Storm上的数据保证是什么?
不久,我想直接从Nifi发送数据到SparkStructuredStreaming/Storm(我更倾向于使用Spark。)。但是,如果流引擎集群中的任何节点宕机,我不想丢失数据。
这对 Spark Structured Streaming 来说可行吗?
spark 有一个 NifiReceiver。
与 apache-spark documentatation 的实现相比,此接收器是容错的,因为它应该 重放未传递的数据。
与 NiFi 的所有流式集成都是使用站点到站点协议完成的,该协议最初是为两个 NiFi 实例传输数据而设计的。
据我所知,目前有与 Storm、Spark streaming 和 Flink 的集成。我不熟悉 Spark 结构化流式传输,但我想您可以构建与其他类似的集成。
https://github.com/apache/nifi/tree/master/nifi-external/nifi-spark-receiver
https://github.com/apache/nifi/tree/master/nifi-external/nifi-storm-spout
https://github.com/apache/flink/tree/master/flink-connectors/flink-connector-nifi
虽然 NiFi 不是可重放的数据源。数据在交易中从 NiFi 传输到流系统,以确保在目的地确认交易之前不会从 NiFi 端删除数据。但是,如果提交后流系统出现故障,则数据不再位于 NiFi 中,这是流系统的问题。
我不确定您不想使用 Kafka 的原因,但 NiFi -> Kafka -> Streaming 是一种更标准且经过验证的方法。
在我目前的情况下; Nifi 收集数据,然后发送给 Kafka。然后任何流媒体引擎使用来自 kafka 的数据,并分析它。在这种情况下; 我不想在 Nifi 和 Streaming Engine 之间使用 Kafka。所以,我想直接从 Nifi 发送数据到流媒体引擎。但是,我不知道这里的一些细节。
例如 Spark 结构化流;假设我直接从 Nifi 向 Spark Structured Streaming 发送数据,Spark 收到了这个数据,但随后 spark 的节点关闭了。 Spark 节点中的数据会发生什么变化? (Spark Structured Streaming 有没有Nifi receiver?),另外,这种情况下Spark Structured Streaming 的数据保证是什么?
例如风暴; Storm 有 Nifi Bolt。但是,假设 Storm 已从 Nifi 接收到数据,但节点已关闭。数据会怎样?另外,这种情况下,Storm上的数据保证是什么?
不久,我想直接从Nifi发送数据到SparkStructuredStreaming/Storm(我更倾向于使用Spark。)。但是,如果流引擎集群中的任何节点宕机,我不想丢失数据。
这对 Spark Structured Streaming 来说可行吗?
spark 有一个 NifiReceiver。
与 apache-spark documentatation 的实现相比,此接收器是容错的,因为它应该 重放未传递的数据。
与 NiFi 的所有流式集成都是使用站点到站点协议完成的,该协议最初是为两个 NiFi 实例传输数据而设计的。
据我所知,目前有与 Storm、Spark streaming 和 Flink 的集成。我不熟悉 Spark 结构化流式传输,但我想您可以构建与其他类似的集成。
https://github.com/apache/nifi/tree/master/nifi-external/nifi-spark-receiver
https://github.com/apache/nifi/tree/master/nifi-external/nifi-storm-spout
https://github.com/apache/flink/tree/master/flink-connectors/flink-connector-nifi
虽然 NiFi 不是可重放的数据源。数据在交易中从 NiFi 传输到流系统,以确保在目的地确认交易之前不会从 NiFi 端删除数据。但是,如果提交后流系统出现故障,则数据不再位于 NiFi 中,这是流系统的问题。
我不确定您不想使用 Kafka 的原因,但 NiFi -> Kafka -> Streaming 是一种更标准且经过验证的方法。