2012-08-22 50 views
0

在我們的集羣上,即使是最簡單的作業「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發行版。

+0

如果這有幫助,我有更多的細節。顯然,我們正在本地提交工作。 Hadoop未配置爲運行本地提交的作業。所以工作追蹤者沒有運行這些工作。所以我們可能需要在job conf中更改以下參數。 mapred.job.tracker = :8021; fs.default.name = hdfs:// :8020; hadoop.job.ugi「,」hdfs:hadoop 在我們的代碼中使用conf.set。我想保持代碼不變,而不是硬編碼的東西,而寧願選擇修改hadoop conf文件的解決方案。任何幫助是極大的讚賞。 – Sumod

回答

0

這聽起來像是他們使用不同的配置。我首先確定你正在運行的所有東西都使用相同的HADOOP_HOME。

0

經過多次重試後,我們現在切換到BigInsights。我個人認爲CDH是一個很棒的Hadoop風格。但是由於我們還沒有完成最初的安裝,因此依賴的開銷對我們的項目來說太多了。正如我們之前使用BigInsights取得成功一樣,我們希望能夠複製它。

相關問題