0590-6.1.0-C6升级过程中Oozie共享库的问题分析

2019-04-28 18:10:35 浏览数 (1)

作者:余枫

1

问题现象

升级CDH6.1至CDH6.2的过程中,当升级过程执行到安装Oozie共享库时,在成功创建Oozie ShareLib根目录之后上载Oozei共享库的过程中报错了,报错信息如下:

代码语言:javascript复制
异常提示:“java.lang.ClassNotFoundException:org.cloudera.log4j.redactor.RedactorAppender”找不到类。

2

问题分析

异常日志信息显示” org.cloudera.log4j.redactor.RedactorAppender”类找不到,通过安装Oozie共享库脚本“/opt/cloudera/cm-agent/service/oozie/oozie.sh”找到,安装Oozie共享库是启动了一个Java进程操作的,代码片段如下:

那启动Java进程则需要加载一些java依赖包,通过如下脚本片段可以找到:

主要加载了${OOZIE_HOME}下的libtools和libext两个目录下的依赖包。

由于上述异常抛出找不到类,那可能是由于缺少jar包导致,通过对比${OOZIE_HOME}下的lib和libtools目录下的*log*.jar相关的jar包时,发现

在${OOZIE_HOME}/libtools目录下查看包含log的jar包

在${OOZIE_HOME}/lib,同样是存放的jar包的目录下查看包含log的jar包

通过对上述两个目录下列出log相关jar包对比发现,lib目录下比libtools目录下多了logredactor-2.0.7.jar这个jar包,通过查看该jar包发现,里面有报错时缺少的那个类RedactorAppender

3

问题解决

经过上述问题分析后,在${OOZIE_HOME}/libtools创建logredactor-2.0.7.jar包的软连

代码语言:javascript复制
cd /opt/cloudera/parcels/CDH/lib/oozie/libtools
ln -s logredactor-2.0.7.jar ../../../jars/logredactor-2.0.7.jar

再去重新执行安装oozie共享库命令,命令成功执行,问题解决

4

总结

1.通过分析安装Oozie共享库脚本,找到安装Oozie共享库的最终方式

2.定位出使用java进程进行Oozie共享库的安装,与找不到类异常结合最终定位出缺少jar包导致

0 人点赞