有 2 个问题的 Spark 流作业,最佳实践是什么
Spark stream job with 2 concerns, what is the best practise
如果 Spark Steaming 作业有 2 个问题,我正在寻找在此场景中的最佳实践。
此流媒体作业正在监听 3 个 kafka 主题。
信号主题
推文主题
Instagram 主题
流作业为推文使用 kafka 主题
或者
流作业为 instagram 消息使用 kafka 主题。
因此,基于 "signal topic",流将使用 Tweets 或 Instagram kafka 主题上的消息。
首先,Spark stream作业是否可以这样交替?
这个使用场景的最佳实践是什么?
如果我用 2 个 spark stream 作业执行此操作,我将不得不以某种方式暂停其中一个作业,因为一次只能 运行 一个。
这是不可能的。 DStreams
一旦创建就不能暂停或修改。我会说你有 2 个选择:
保持应用程序不变并忽略基于 "signal" 的一个流。它涉及并且需要低级别 API 以避免不必要的数据加载。如果您对天真的解决方案感到满意,您可以尝试:
var readTwitter: Boolean = ??? // Varies from batch to batch
val twitterStream = twitterSource.filter(_ => readTwitter)
val instagramStream = instagramSource.filter(_ => !readTwitter)
上游的备用进程根据 "signal" 将消息重定向到单个流,并让应用程序不知道正在发生什么。
在我看来,任何 Streaming 作业都应该只由事件触发。您不应该妨碍流媒体作业的触发方式。
而且,在你的情况下,你为什么不能分离关注点's.Let你的信号主题由 Job1 流式传输,这决定了要触发哪个作业。
为此,如果需要触发 Job2,则让 Job1 将消息推送到主题 2,如果需要触发 Job3,则让它将消息推送到主题 3。
Job2、Job3 可以是非流作业,完全取决于 Job1 生成的事件。我希望这能让你从另一个角度看待正在思考的事情。
如果 Spark Steaming 作业有 2 个问题,我正在寻找在此场景中的最佳实践。
此流媒体作业正在监听 3 个 kafka 主题。 信号主题 推文主题 Instagram 主题
流作业为推文使用 kafka 主题 或者 流作业为 instagram 消息使用 kafka 主题。
因此,基于 "signal topic",流将使用 Tweets 或 Instagram kafka 主题上的消息。
首先,Spark stream作业是否可以这样交替?
这个使用场景的最佳实践是什么?
如果我用 2 个 spark stream 作业执行此操作,我将不得不以某种方式暂停其中一个作业,因为一次只能 运行 一个。
这是不可能的。 DStreams
一旦创建就不能暂停或修改。我会说你有 2 个选择:
保持应用程序不变并忽略基于 "signal" 的一个流。它涉及并且需要低级别 API 以避免不必要的数据加载。如果您对天真的解决方案感到满意,您可以尝试:
var readTwitter: Boolean = ??? // Varies from batch to batch val twitterStream = twitterSource.filter(_ => readTwitter) val instagramStream = instagramSource.filter(_ => !readTwitter)
上游的备用进程根据 "signal" 将消息重定向到单个流,并让应用程序不知道正在发生什么。
在我看来,任何 Streaming 作业都应该只由事件触发。您不应该妨碍流媒体作业的触发方式。
而且,在你的情况下,你为什么不能分离关注点's.Let你的信号主题由 Job1 流式传输,这决定了要触发哪个作业。
为此,如果需要触发 Job2,则让 Job1 将消息推送到主题 2,如果需要触发 Job3,则让它将消息推送到主题 3。
Job2、Job3 可以是非流作业,完全取决于 Job1 生成的事件。我希望这能让你从另一个角度看待正在思考的事情。