Hadoop作业在本地模式下运行。但是Oozie作业在分布式模式下运行

Hadoop作业在本地模式下运行。但是Oozie作业在分布式模式下运行,hadoop,cloudera,oozie,Hadoop,Cloudera,Oozie,在我们的集群上,即使是最简单的作业“wordcount”也在本地模式下运行。但是以前有一些作业是使用oozie运行的,我们观察到它们是在集群模式下运行的。本机hadoop作业与使用oozie运行的hadoop作业是否存在冲突?这是错误堆栈跟踪- java.lang.IllegalArgumentException: Can't read partitions file at org.apache.hadoop.hbase.mapreduce.hadoopbackport.TotalOrd

在我们的集群上,即使是最简单的作业“wordcount”也在本地模式下运行。但是以前有一些作业是使用oozie运行的,我们观察到它们是在集群模式下运行的。本机hadoop作业与使用oozie运行的hadoop作业是否存在冲突?这是错误堆栈跟踪-

java.lang.IllegalArgumentException: Can't read partitions file
    at org.apache.hadoop.hbase.mapreduce.hadoopbackport.TotalOrderPartitioner.setConf(TotalOrderPartitioner.java:111)
    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
    at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:560)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:639)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:210)
java.lang.IllegalArgumentException:无法读取分区文件
位于org.apache.hadoop.hbase.mapreduce.hadoopbackport.TotalOrderPartitioner.setConf(TotalOrderPartitioner.java:111)
位于org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
位于org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
位于org.apache.hadoop.mapred.MapTask$NewOutputCollector。(MapTask.java:560)
位于org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:639)
位于org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
在org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:210)上
原因:java.io.FileNotFoundException:文件_partition.lst不存在。 位于org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:408) 位于org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:251) 位于org.apache.hadoop.fs.FileSystem.getLength(FileSystem.java:825) 位于org.apache.hadoop.io.SequenceFile$Reader。(SequenceFile.java:1480) 位于org.apache.hadoop.io.SequenceFile$Reader。(SequenceFile.java:1475) 位于org.apache.hadoop.hbase.mapreduce.hadoopbackport.TotalOrderPartitioner.readPartitions(TotalOrderPartitioner.java:296) 位于org.apache.hadoop.hbase.mapreduce.hadoopbackport.TotalOrderPartitioner.setConf(TotalOrderPartitioner.java:82)

我们的工作在没有安装Oozie的测试集群上运行良好。因此,不确定这两件事是否相关。 提前谢谢


我们正在使用Cloudera发行版。

听起来他们好像在使用不同的配置。首先,我要确保您运行的所有东西都使用相同的HADOOP\u HOME。

经过多次尝试,我们现在已切换到BigInsights。我个人认为CDH是一种很棒的Hadoop风格。但是由于我们没有完成最初的安装,依赖的开销对于我们的项目来说太大了。由于我们之前在BigInsights方面取得了成功,我们希望复制它。

如果这有帮助,我将提供更多详细信息。显然,我们正在本地提交工作。Hadoop未配置为运行本地提交的作业。因此,作业跟踪器没有运行作业。因此,我们可能需要在job conf.mapred.job.tracker=:8021中更改以下参数;fs.default.name=hdfs://:8020;hdfs:hadoop在代码中使用conf.set。我希望代码保持不变,而不是硬编码,而是更喜欢修改hadoop conf文件的解决方案。非常感谢您的帮助。