背景

spark处理的原始日志路径修改了,导致原有的报表处理的源数据找不到路径

需要重新启动oozie任务,并把过去几天丢失的数据补回来

 

# 第一个参数是每个模块的文件夹名

sh -x start_oozie_module.sh detail_report 2019-01-10T15:00 2111-01-01T00:00

今天是14号,从20190110 14:00之后的数据都需要追溯

那我启动oozie时的启动时间就选用这个

 

操作步骤如下:

在job.properties.template中修改日志路径,这个是全局有效的

然后在target建立detail_report目录,将jar包扔进去

启动oozie

spark每处理五分钟的数据大概需要五分钟,所以oozie的concurency可以设置高一些,相当于多线程执行

相当于在控制台开了多个窗口,同时提交spark任务

 

同事之前在oozie上传之后的hdfs目录下直接修改配置文件,类似给飞行中飞机换发动机

他说这样是可行的,但我这次修改concurency,新启动的任务也没有使用到这个新参数

最后还是用oozie命令重启了

注意重启之前,把原来的先杀掉,命令如下

oozie job -oozie http://ip:12000/oozie/ -kill 0130294-181213175815402-oozie-hado-C

 

另外对于同一个模块,也可以用oozie命令启动多个

比如线上正在运行一个oozie调度,在实时处理五分钟的数据

但我突然发现20190101-05有五天的数据没有,我想追溯这部分数据

执行命令如下

sh -x start_oozie_module.sh detail_report 2019-01-01T00:00 2019-01-01T23:55

这样可以在不影响线上调度的情况下,直接追溯数据

 

用oozie命令启动模块之前,注意先从线上拉一份配置文件,因为有同学修改oozie配置文件,

并不是改掉本地文件之后重启,而是直接在oozie远程目录下修改,导致本地和远程的不一致

如果直接启动命令,就会把本地的覆盖远程线上的,但是本地的可能是错的

下面是具体拉的步骤

1.确定oozie线上远程目录路径

oozie任务失败后如何重新运行

Oozie启动命令的本质就是把本地的配置文件复制到集群上去

 

2.在本地工程目录下执行hdfs dfs -get hfs://xx 将远程模块目录拉下来,然后进去把lib目录删除掉,lib里面是spark运行用到的jar包

 

3.启动oozie任务

sh -x start_oozie_module.sh detail_report 2019-01-01T00:00 2019-01-01T23:55

start_oozie_module.sh 里面的代码这里就不粘贴了,原理就是在远程hdfs目录下将oozie配置文件,target下的jar包都上传上去

所以正式启动oozie命令之前要注意两点:

1.target下的jar包是不是最新的

2.配置文件是不是最新的,是不是和线上保持一致

相关文章:

  • 2022-01-10
  • 2021-08-29
  • 2021-11-17
  • 2021-11-04
  • 2021-11-15
  • 2022-12-23
  • 2021-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-24
  • 2021-07-16
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案