[Nutch]編譯hadoop出現object[]無法轉換爲K[]問題解決

1. 問題描述

在使用JDK8編譯hadoop 1.2.1的時候會出現object[]無法轉換爲K[]的問題,如下:
這裏寫圖片描述

2. 問題解決

(1)打開hadoop目錄下的InputSampler.java文件,路徑如下:
hadoop-1.2.1\src\mapred\org\apache\hadoop\mapreduce\lib\partition\InputSampler.java

(2)大概319行找到如下內容:

    final InputFormat inf = 
        ReflectionUtils.newInstance(job.getInputFormatClass(), conf);
    int numPartitions = job.getNumReduceTasks();
    K[] samples = sampler.getSample(inf, job);
    LOG.info("Using " + samples.length + " samples");
    RawComparator<K> comparator =
      (RawComparator<K>) job.getSortComparator();

將其修改爲:

    final InputFormat inf = 
        ReflectionUtils.newInstance(job.getInputFormatClass(), conf);
    int numPartitions = job.getNumReduceTasks();
    K[] samples = (K[])sampler.getSample(inf, job);
    LOG.info("Using " + samples.length + " samples");
    RawComparator<K> comparator =
      (RawComparator<K>) job.getSortComparator();

如下圖:
這裏寫圖片描述

3. 重新編譯

這裏寫圖片描述

發佈了77 篇原創文章 · 獲贊 85 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章