我有一个工作流程,它有两个动作 - java和spark。 在lib目录中如果我保留两个Jars,则Java操作完成,但spark操作会抛出错误
2017-12-01 03:50:02,612 ERROR [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster
java.lang.NoSuchMethodError: org.apache.hadoop.mapred.TaskLog.createLogSyncer()
有两个lib路径会导致java动作无法触发。 如何在同一工作流程中保留java jar和spark jar。
答案 0 :(得分:0)
您应首先尝试使用spark正在使用的lib版本来解决此问题。发生的事情是你的java和spark动作使用的是一个普通的lib但是有不同的版本。 Java能够以“最有可能”的方式运行java操作所需的lib jar版本。
如果您想使用脏解决方案,请遮盖您的java动作jar并重新定位冲突的包名称。 (使用着色插件重新定位包)