首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oozie Java Action Error java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/XWPFDocument

Oozie Java Action Error java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/XWPFDocument
EN

Stack Overflow用户
提问于 2015-07-22 13:53:15
回答 2查看 775关注 0票数 0

我正在尝试为java action运行一个oozie工作流。我的Java代码可以从HDFS读取Word文件,并在HDFS上写回CSV文件。我的workflow.xml包含-

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<workflow-app xmlns="uri:oozie:workflow:0.4" name="Word-Processing">
<start to="PathologyReport-Processing"/>
<action name="PathologyReport-Processing">
<java>
  <job-tracker>${jobTracker}</job-tracker>
  <name-node>${nameNode}</name-node>
 <configuration>
  <property>
   <name>mapred.job.queue.name</name>
   <value>${queueName}</value>
  </property>
  <property>
   <name>oozie.libpath</name>
   <value>${JarPath}</value>
  </property>
 </configuration>
 <main-class>${MainClass}</main-class>
 <arg>-libjars</arg>
 <arg>${JarPath}</arg>
 <arg>${in}</arg>
 <arg>${out}</arg>
</java>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Java Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>

我的job.properties包含以下代码

代码语言:javascript
复制
nameNode=hdfs://CTSC00385700501:8020
jobTracker=CTSC00385700501:8032
workflowRoot=PathologyReport
queueName=default
MainClass=SampleUnstructured
JarPath=hdfs://localhost:8020/user/oozie/${workflowRoot}/lib/poi-3.9.jar
in=hdfs://localhost:8020/user/oozie/${workflowRoot}/SampleWord.docx
out=hdfs://localhost:8020/user/oozie/${workflowRoot}/output
oozie.use.system.libpath=true
oozie.libpath=hdfs://localhost:8020/user/oozie/share/lib/lib_20150513153121/
oozie.wf.application.path=hdfs://localhost:8020/user/oozie/${workflowRoot}

我已经为Apache POI jar文件指定了路径,但它仍然无法找到它。请帮我解决这个问题。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-08-04 17:55:09

你能检查一下你提到的job.property配置吗?据我所知,workflow.xml中的"${workflowRoot}“参数应该是mentnion,而job.xml应该定义为

代码语言:javascript
复制
<property> 
<name>workflowRoot</name>
<value>${workflowRoot}</value> 
</property>

然后试着运行oozie作业,相信它们会顺利工作。

票数 0
EN

Stack Overflow用户

发布于 2015-08-06 06:35:26

来自Oozie MapReduce cookbook

...Please注意到,Oozie不支持Hadoop命令行支持的-libjars选项...

对于Oozie,您应该在操作中添加一个引用JAR-to-be-downloaded-automagically-in-the-working-dir-of-the-YARN-container-at-run-time.的元素

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31554881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档