当前位置: 首页 > 知识库问答 >
问题:

使用Azkaban处理故障

公良鸿畅
2023-03-14

有一种方法可以控制作业失败后在Azkaban中发生的事情,我的意思是,如果特定的作业失败,就做特定的事情,假设一个对hive的加载失败了,我想向splank发送错误,这可能吗?或者我应该创建特定的作业来插入并像python那样处理失败

谢谢

共有1个答案

司马祖鹤
2023-03-14

我处理这一问题的方法是使用以下作业运行具有命令作业类型的脚本。我让我的脚本检查错误条件,然后只在发现错误时执行和操作。

#!/bin/bash
check=${./_check_script.sh $arg1 $arg2}
if [ -z $check ]; then 
  echo "ERROR FOUND"
  ./_error_action.sh $arg1 $arg2
fi

请注意,在运行任何脚本之前,必须允许Azkaban用户(chmod+x)执行脚本。由于使用.zip作为上载格式,它们不继承权限。

type=command
command=chmod +x _alert_for_error.sh
command.1=chmod +x _check_script.sh
command.2=chmod +x _error_action.sh
command.3=./_alert_for_error.sh
 类似资料:
  • Webpack 的配置比较复杂,很容出现错误,下面是一些通常的故障处理手段。 一般情况下,webpack 如果出问题,会打印一些简单的错误信息,比如模块没有找到。我们还可以通过参数 --display-error-details 来打印错误详情。 $ webpack --display-error-details Hash: a40fbc6d852c51fceadb Version: webpa

  • 问题内容: 我有一个用于捕获任何分段错误或ctrl- c的应用程序。使用下面的代码,我能够捕获分段错误,但是该处理程序一次又一次地被调用。我该如何阻止他们。供您参考,我不想退出我的申请。我只是可以小心释放所有损坏的缓冲区。 可能吗? 处理程序就是这样。 在这里,对于Segmentation故障信号,处理程序被多次调用,并且很明显MyfreeBuffers()给我释放已释放的内存的错误。我只想释放一

  • 我有一个应用程序,我用它来捕捉任何分割错误或ctrl-c。使用下面的代码,我能够捕获分段错误,但是处理程序被一次又一次地调用。我怎样才能阻止他们。告诉你,我不想退出我的申请。我只是可以小心释放所有损坏的缓冲区。 可能吗? handler是这样的。 这里的分段故障信号,处理程序被多次调用,因为明显的MyFreeBuffers()给我释放已经释放的内存的错误。我只想免费一次,但仍然不想退出应用程序。

  • 处理 new 故障的方法有多种。到目前为止,我们介绍过用宏 assert 测试 new 返回的值。如果返回值为0,则assert宏终止程序。这不是处理new故障的健壮机制,它不允许我们用任何方法从故障恢复。ANSI/ISO C++ 草案标准指定,出现 new 故障时抛出bad_alloc异常(在头文件<new>中定义)。但许多编译器目前还不支持草案标准,仍然在new故障时返回0。本节介绍三个new

  • 我试图找到一种通用的方法来处理测试中的错误,它使用TestNG作为框架,使用Rest Assured作为库来进行Rest调用。 对于每次迭代,我都有超过30个REST调用要进行,并且使用,因此一个没有自己的try/catch的REST确保失败,然后整个批次都失败。我必须将每一个都包含在try/catch中吗?或者有没有更好的方法来执行“软断言”,这样测试在不单独处理的情况下就不会在我身上爆炸?

  • 3.1 PG 无法达到 CLEAN 状态 创建一个新集群后,PG 的状态一直处于 active , active + remapped 或 active + degraded 状态, 而无法达到 active + clean 状态 ,那很可能是你的配置有问题。 你可能需要检查下集群中有关 Pool 、 PG 和 CRUSH 的配置项,做以适当的调整。 一般来说,你的集群中需要多于 1 个 OSD,