如何每 15 分钟自动在 Spark SQL 或 Scala Shell 上运行命令?

Posted

技术标签:

【中文标题】如何每 15 分钟自动在 Spark SQL 或 Scala Shell 上运行命令?【英文标题】:How to automate running a command on Spark SQL or Scala Shell every 15 mins? 【发布时间】:2014-12-18 08:57:55 【问题描述】:

我在 Cassandra 中有一些动态数据,并且正在 Spark 分析模式下运行 DSE 4.5。

如果我缓存的话,我无法让我的 RDD 与底层数据库保持同步,我需要有一些后台进程来持续生成我的 RDD 并从数据库中收集最新的数据。

如何实现自动化,以便在 Scala Shell 中每 15 分钟运行一次以下命令? (我是 scala 的新手)

    从 cassandra 表 A 创建一个 RDD 转换它 保存到 Cassandra 表 B

或者,我如何实现自动化,以便我可以每 15 分钟在 Shark/spark sql 中连续运行我的“使用 select 插入”命令?

【问题讨论】:

Spark Shell 是一个交互式环境。我不认为这是保持后台进程运行的正确位置。为什么有这个要求? 【参考方案1】:

您可以编写一个应用程序并运行一个 cron 作业以每 15 分钟触发一次。如果你在 mesos 上,chronos 可能会很有趣。另一种选择是有一个火花流应用程序,要么a)向它发送一条消息,并将其插入两个表中,要么b)通过一些消息系统(kafka / rabbit等)向它发送通知并触发工作作为响应.这确实占用了聆听的核心,我会看看简单的 cron 作业是否可以工作。

【讨论】:

我认为从 “我正在使用 spark-shell”“编写应用程序” 的步骤可能有点陡峭。也许您可以为此提供一些建议。 相反,它非常简单:) 你熟悉scala吗?即使不是,它也相当简单——你不需要对 scala 有太多了解就可以使用 cassandra。看看:github.com/datastax/spark-cassandra-connector。这可能是获得所需内容的最简单方法。您甚至可以将 Spark SQL 与连接器一起使用。 这看起来很简单,因为你已经做了这么多。我们将看看它是否对 OP 来说很简单。他可能是也可能不是程序员 这是一种鼓励。在我编写的各种程序中,让 spark + cassandra + scala 运行起来非常容易。而且当我这样做时,我根本不是来自 jvm 世界。

以上是关于如何每 15 分钟自动在 Spark SQL 或 Scala Shell 上运行命令?的主要内容,如果未能解决你的问题,请参考以下文章

spark sql日期间隔sql查询不起作用

每15分钟重复一次函数c# [关闭]

定时器自动刷新浏览器中的 HTML 页面 - 每 15 分钟

每15分钟安排R脚本(cronR)

如何在 Spark SQL(DataFrame)的 UDF 中使用常量值

替代递归运行Spark-submit作业