我有一个每分钟运行一次的流式传输作业,在处理完数据之后将其放在hdfs上,并将结果的简化形式放入数据库中。
在某些情况下(罕见)我注意到我的datanode出现故障或数据库由于某种原因停止响应。在这种情况下,工作人员会抛出很多错误,但工作仍在继续。我想建立一个系统,一旦出现IO或网络错误,我的工作就应该停止。 (可能然后触发邮件,以便我可以查看出错的地方并重新启动它。)
火花工作能否从工人内部停止? (sys.exit
显然不起作用)
答案 0 :(得分:0)
似乎没有反馈渠道。我认为最好的办法是使用基于消息的方法(例如使用消息传递框架)并在应用程序中监听它,这将启动您的Spark应用程序并相应地停止Spark作业。