Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop oozie wofklow因烫伤而在java操作上间歇性失败_Hadoop_Oozie_Scalding - Fatal编程技术网

Hadoop oozie wofklow因烫伤而在java操作上间歇性失败

Hadoop oozie wofklow因烫伤而在java操作上间歇性失败,hadoop,oozie,scalding,Hadoop,Oozie,Scalding,我使用的是CDH(ClouderaHadoop)版本5.12.0(使用:Hadoop 2.6.0 Oozie 4.1.0)和Burning 2.11 我正在使用一个带有内置依赖项的着色jar 我可以使用hadoop jar命令正确运行所有作业,不会出现任何错误,如下所示: hadoop jar /<path>/<to>/<my>/<project>.jar com.twitter.scalding.Tool -libjars <co

我使用的是CDH(ClouderaHadoop)版本5.12.0(使用:Hadoop 2.6.0 Oozie 4.1.0)和Burning 2.11

我正在使用一个带有内置依赖项的着色jar

我可以使用hadoop jar命令正确运行所有作业,不会出现任何错误,如下所示:

hadoop jar /<path>/<to>/<my>/<project>.jar com.twitter.scalding.Tool 
    -libjars <comma>,<separated>,<list>,<of>,<dependencies>
    -D mapreduce.framework.name=yarn 
    -D yarn.app.mapreduce.am.staging-dir=/<path>/<to>/<staging>/<dir>
    -D mapreduce.map.output.compress=True 
    <my>.<scalding>.<job> --hdfs --input <my>/<input> --output <output>/<dir>
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917)位于org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) 原因:java.lang.ClassNotFoundException:Class cascading.tap.hadoop.io.MultiInputSplit未在中找到

org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2108)位于org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:361)。。。还有7个

这种情况的发生是不一致的,因为如果我只在工作流中执行一个操作,那么工作流有时会完成,有时会失败。如果我在工作流中放置了多个操作,它最终肯定会在某些操作上失败,不总是相同的操作,但总是有相同的错误

我相信问题来自于操作获取其依赖项的方式,有时它以正确的顺序加载它们,然后首先获得我想要的,有时它没有,并且缺少它需要的依赖项。但我对oozie是新手,谁知道呢

我认为我可以增加oozie采取的每个动作的最大尝试次数,但我觉得这并不是一个真正的解决方案,有点类似于对集群掷骰子

我看到有人不久前发布了这个问题,然后又回到了CDH(4.1)的旧版本,但这不是我的选择


建议?

你有没有找到解决方案?很遗憾,我没有。相反,我搬到了Spark
<action name="myAction">
<java>
  <job-tracker>${jobTracker}</job-tracker>
  <name-node>${nameNode}</name-node>
  <prepare>
    <delete path="<output>/<dir>"/>
  </prepare>
  <configuration>
    <property>
      <name>oozie.action.sharelib.for.java</name>
      <value>scalding</value>
    </property>
    <property>

   <name>oozie.launcher.mapreduce.task.classpath.user.precedence</name>
      <value>true</value>
    </property>
    <property>
      <name>oozie.launcher.mapreduce.task.classpath.first</name>
      <value>true</value>
    </property>
    <property>
      <name>oozie.launcher.mapreduce.job.user.classpath.first</name>
      <value>true</value>
    </property>
    <property>
      <name>mapreduce.job.user.classpath.first</name>
      <value>true</value>
    </property>
    <property>
      <name>mapreduce.task.classpath.user.precedence</name>
      <value>true</value>
    </property>
    <property>
      <name>mapreduce.task.classpath.first</name>
      <value>true</value>
    </property>
    <property>
      <name>mapreduce.map.log.level</name>
      <value>DEBUG</value>
    </property>
    <property>
      <name>mapreduce.reduce.log.level</name>
      <value>DEBUG</value>
    </property>

    <property>
      <name>mapreduce.job.log4j-properties-file</name>
      <value>${appLocation}/conf</value>
    </property>

    <property>
      <name>mapreduce.task.files.preserve.failedtasks</name>
      <value>true</value>
    </property>

    <property>
      <name>mapreduce.job.jvm.numtasks</name>
      <value>-1</value>
    </property>

    <property>
      <name>oozie.mapreduce.uber.jar</name>
      <value>/<path>/<to>/<my>/<class>.jar</value>
    </property>


  </configuration>
  <main-class>com.twitter.scalding.Tool</main-class>
  <java-opts>-Xms2G -Xmx3G</java-opts>
  <arg><my>.<scalding>.<job></arg>
  <arg>--hdfs</arg>
  <arg>--input</arg>
  <arg><my>/<input></arg>
  <arg>--output</arg>
  <arg><output>/<dir></arg>
  <file>/<path>/<to>/<my>/<project>.jar</file>
</java>

<ok to="end" />
<error to="sendEmailFailure" />
oozie.libpath=<path>/<to>/<lib>/<directory>
oozie.use.system.libpath=true
Error: java.io.IOException: Split class cascading.tap.hadoop.io.MultiInputSplit not found at 
org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:363) at 
org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:432) at 
org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) at 
org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) at 
java.security.AccessController.doPrivileged(Native Method) at 
javax.security.auth.Subject.doAs(Subject.java:422) at