以下是我需要建议的方案,
情景:
数据摄取通过Nifi进入Hive表。
Spark程序必须对Hive中的数据执行ETL操作和复杂连接。
由于从Nifi获取的数据是连续流式传输,我希望Spark工作每1或2分钟就可以运行一次。
哪种选择最好?
使用调度程序每1分钟触发一次火花提交作业? 我们如何减少递归提交作业到火花集群的头脑和时间滞后?是否有更好的方法递归运行单个程序?
运行火花流媒体作业? 火花流工作可以每1分钟自动触发并处理来自蜂巢的数据吗? [Spark-Streaming只能基于时间触发吗?]
还有其他有效的机制来处理这种情况吗?
先谢谢
答案 0 :(得分:1)
至于你的问题什么是更好的批/流。您可以将火花流视为每批“批处理间隔”运行的微批处理流程。
阅读本文:https://spark.apache.org/docs/latest/streaming-programming-guide.html