替代递归运行Spark-submit作业

时间:2017-12-23 01:00:22

标签: apache-spark apache-spark-sql spark-dataframe spark-streaming

以下是我需要建议的方案,

情景:

数据摄取通过Nifi进入Hive表。

Spark程序必须对Hive中的数据执行ETL操作和复杂连接。

由于从Nifi获取的数据是连续流式传输,我希望Spark工作每1或2分钟就可以运行一次。

哪种选择最好?

使用调度程序每1分钟触发一次火花提交作业? 我们如何减少递归提交作业到火花集群的头脑和时间滞后?是否有更好的方法递归运行单个程序?

运行火花流媒体作业? 火花流工作可以每1分钟自动触发并处理来自蜂巢的数据吗? [Spark-Streaming只能基于时间触发吗?]

还有其他有效的机制来处理这种情况吗?

先谢谢

1 个答案:

答案 0 :(得分:1)

  1. 如果你需要每分钟运行的东西,你最好使用spark-streaming而不是批处理。
  2. 您可能希望直接从kafka获取数据,而不是从hive表获取数据,因为它更快。
  3. 至于你的问题什么是更好的批/流。您可以将火花流视为每批“批处理间隔”运行的微批处理流程。

    阅读本文:https://spark.apache.org/docs/latest/streaming-programming-guide.html

相关问题