将 Spark 流连接到流集输入
Connecting Spark streaming to streamsets input
我想知道是否可以为来自 StreamSet 的 spark 流提供输入。我注意到 StreamSets 连接器目标 https://streamsets.com/connectors/ 不支持 Spark 流。
我正在探索是否有其他方法将它们连接起来作为示例 POC。
在 Apache Spark Streaming 中处理来自 Streamsets Data Collector (SDC) 的数据的最佳方式是将数据写出到 Kafka 主题并从那里读取数据。这允许您将 Spark Streaming 与 SDC 分开,因此两者都可以按照自己的处理速度进行。
SDC 微批是定义的记录计数,而 Spark Streaming 微批是按时间规定的。这意味着每个 SDC 批次可能不会(也可能不会)对应一个 Spark Streaming 批次(最有可能的是,Spark Streaming 批次可能会包含来自多个 SDC 批次的数据)。 SDC "commits" 每个批次发送到目的地后 - 将批次写入 Spark Streaming 意味着每个 SDC 批次都需要对应一个 Spark Streaming 批次以避免数据丢失。
由于处理或节点故障,Spark Streaming "re-processes" 也可能已经提交了批处理。 SDC 无法重新处理已提交的批次——因此要从这种情况中恢复,您真的必须写入类似于 Kafka 的东西,以允许您重新处理批次。因此,使用从 SDC 写入 Spark Streaming 的直接连接器会很复杂,并且可能会出现数据丢失问题。
简而言之,您最好的选择是 SDC -> Kafka -> Spark Streaming。
我想知道是否可以为来自 StreamSet 的 spark 流提供输入。我注意到 StreamSets 连接器目标 https://streamsets.com/connectors/ 不支持 Spark 流。
我正在探索是否有其他方法将它们连接起来作为示例 POC。
在 Apache Spark Streaming 中处理来自 Streamsets Data Collector (SDC) 的数据的最佳方式是将数据写出到 Kafka 主题并从那里读取数据。这允许您将 Spark Streaming 与 SDC 分开,因此两者都可以按照自己的处理速度进行。
SDC 微批是定义的记录计数,而 Spark Streaming 微批是按时间规定的。这意味着每个 SDC 批次可能不会(也可能不会)对应一个 Spark Streaming 批次(最有可能的是,Spark Streaming 批次可能会包含来自多个 SDC 批次的数据)。 SDC "commits" 每个批次发送到目的地后 - 将批次写入 Spark Streaming 意味着每个 SDC 批次都需要对应一个 Spark Streaming 批次以避免数据丢失。 由于处理或节点故障,Spark Streaming "re-processes" 也可能已经提交了批处理。 SDC 无法重新处理已提交的批次——因此要从这种情况中恢复,您真的必须写入类似于 Kafka 的东西,以允许您重新处理批次。因此,使用从 SDC 写入 Spark Streaming 的直接连接器会很复杂,并且可能会出现数据丢失问题。
简而言之,您最好的选择是 SDC -> Kafka -> Spark Streaming。