我有一个spark应用程序,它应该在收到关于某个主题的kafka消息时运行。
我每天不会收到超过5-6条消息,所以我不想采取spark流媒体方式。相反,我尝试使用 SparkLauncher
但我不喜欢这种方法,因为我必须在代码中以编程方式设置spark和java类路径,以及所有必要的spark属性,比如executor核、executor内存等。
如何触发spark应用程序从中运行 spark-submit
但是让它等到收到消息?
任何提示都非常有用。
我有一个spark应用程序,它应该在收到关于某个主题的kafka消息时运行。
我每天不会收到超过5-6条消息,所以我不想采取spark流媒体方式。相反,我尝试使用 SparkLauncher
但我不喜欢这种方法,因为我必须在代码中以编程方式设置spark和java类路径,以及所有必要的spark属性,比如executor核、executor内存等。
如何触发spark应用程序从中运行 spark-submit
但是让它等到收到消息?
任何提示都非常有用。
1条答案
按热度按时间ia2d9nvy1#
您可以将shell脚本方法用于
nohup
命令提交这样的作业。。。"
nohup spark-submit shell script <parameters> 2>&1 < /dev/null &
"每当您收到消息时,就可以轮询该事件并调用此shell脚本。
下面是执行此操作的代码段。。。再看一看https://en.wikipedia.org/wiki/nohup
-使用运行时
-使用processbuilder-另一种方法
-第三条路:jsch
使用jsch在ssh上运行命令
-雅恩克利特班-第四路
我最喜欢的一本书数据算法使用这种方法