我运行长作业(+ 3小时)在一个大型星团纱模式。运行spark的VM工作人员托管在上,其中大多数都可以在执行过程中销毁(成本较低的可抢占VM)。
当发生这种情况时,作业会失败,因为在失败的工人的容器日志中有此错误的任务正在被破坏的工人上失败:
Executor is not registered
我尝试过将spark.task.maxFailures设置为1000,但这似乎不太有效:即使任务完成,任务似乎也不会自动重新分配,分配给该特定员工的任务的计算似乎回到了初始阶段。
会不会有一种更容错的配置,简单地排除没有响应的执行者并重新分配他们的任务?
如果被问到,我可以包括ressourceman
我使用org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil从Hbase表中删除数据。编写了一个主类(RollbackHandler)并从那里开始作业:
def main(args: Array[String]) {
val config = HBaseConfiguration.create()
val job = new Job(config, "RollbackHandler")
job.setJarByClass(classOf[RollBackMapper])
//doing some