[英]java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/ExtendedColor
[英]Oozie Java Action Error java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/XWPFDocument
我正在嘗試為Java操作運行oozie工作流程。 我的Java代碼可以從HDFS讀取Word文件,並在HDFS上寫回CSV文件。 我的工作流程.xml包含-
<?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包含以下代碼
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文件指定了路徑,但仍然無法找到它。 請幫助我解決此問題。 提前致謝。
您能檢查您提到的job.property配置嗎? 據我所知,“ ${workflowRoot}
”參數應在workflow.xml中被提及,而job.xml應被定義為
<property>
<name>workflowRoot</name>
<value>${workflowRoot}</value>
</property>
然后嘗試執行oozie工作,相信這些工作會順利進行。
...請注意,Oozie不支持Hadoop命令行支持的-libjars選項...
使用Oozie時,您應該在Action中添加一個<file>元素,以在運行時自動引用YARN容器的工作目錄中要下載的JAR。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.