在我們的集羣上,即使是最簡單的作業「wordcount」也以本地模式運行。但以前的作業使用oozie運行,我們觀察到它們以集羣模式運行。本地hadoop工作與使用oozie運行的hadoop作業有衝突嗎?這裏是錯誤堆棧跟蹤 -以本地模式運行的Hadoop作業。但Oozie作業以分佈模式運行
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.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) at org.apache.hadoop.io.SequenceFile $ Reader。(SequenceFile.java:1480) at 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未配置爲運行本地提交的作業。所以工作追蹤者沒有運行這些工作。所以我們可能需要在job conf中更改以下參數。 mapred.job.tracker =:8021; fs.default.name = hdfs:// :8020; hadoop.job.ugi「,」hdfs:hadoop 在我們的代碼中使用conf.set。我想保持代碼不變,而不是硬編碼的東西,而寧願選擇修改hadoop conf文件的解決方案。任何幫助是極大的讚賞。 –
Sumod