Oozie运行ExampleClassNotFound异常

Oozie运行ExampleClassNotFound异常:

Oozie运行ExampleClassNotFound异常_第1张图片
Oozie运行ExampleClassNotFound异常_第2张图片

原因:
    Jar包未找到问题
解决方法:
1. 把hadoop下的jar包上传到hdfs上
2. 再在job的job.properties中设置jar包文件夹路径,如下:

这里写图片描述

设置访问jar的方法:
1. 在每一个workflow文件夹下建lib文件夹,把需要的jar放在里面, job会将需要的jar自动加载到workflow的classpath去
2. 设置libpath,就是上图的解决方法,建立一个统一存放jar文件的文件夹,将所有jar存放在一起,再在job.properties中设置路径 
3. 创建ShareLib,和设置libpath相似,在ShareLib文件夹下创建不同的workflow所需的jar文件夹,因为每个workflow所需的相同的jar的版本可能不同,这样可以避免版本冲突

注:
job.properties中设置oozie.use.system.libpath=true指定oozie使用系统的共享目录即ShareLib,在oozie-site.xml里面的 oozie.service.WorkflowAppService.system.libpath可以指定ShareLib的位置,默认是/user/${user.name}/share/lib,其中${user.name}就是运行oozie服务的用户。
最开始我在网上直接查报的这个类的信息,但是一无所获, 折磨了我三四天, 濒临崩溃的之后我不管什么类对应什么jar文件, 把hadoop下所有的jar都传到hdfs上了, job才success,心情才舒畅了一些

你可能感兴趣的:(hadoop,oozie)