Uploaded image for project: 'Nutch'
  1. Nutch
  2. NUTCH-2357

Index metadata throw Exception because writable object cannot be cast to Text

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.12
    • Fix Version/s: 1.13
    • Component/s: indexer
    • Labels:
      None
    • Environment:

      It was detected using Linux mint 18.

    • Patch Info:
      Patch Available
    • Flags:
      Patch

      Description

      Index Metadata plugin use this property(see below), to take keys from Datum and index it.

      <property>
      <name>index.db.md</name>
      <value></value>
      <description>
      ...
      </description>
      </property>
      Using any value from this property one Exception is thrown.
      The problem occurs because Writable object can not be cast to Text see this line.
      https://github.com/apache/nutch/blob/master/src/plugin/index-metadata/src/java/org/apache/nutch/indexer/metadata/MetadataIndexer.java#L58

      A little change will fix it.

      This is the Exception:
      **********************************
      2017-02-06 18:18:29,969 INFO solr.SolrMappingReader - source: digest dest: digest
      2017-02-06 18:18:29,969 INFO solr.SolrMappingReader - source: tstamp dest: tstamp
      2017-02-06 18:18:29,969 INFO solr.SolrMappingReader - source: metatag.description dest: description
      2017-02-06 18:18:29,969 INFO solr.SolrMappingReader - source: metatag.keywords dest: keywords
      2017-02-06 18:18:30,134 WARN mapred.LocalJobRunner - job_local15168888_0001
      java.lang.Exception: java.lang.ClassCastException: org.apache.hadoop.io.IntWritable cannot be cast to org.apache.hadoop.io.Text
      at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
      at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:529)
      Caused by: java.lang.ClassCastException: org.apache.hadoop.io.IntWritable cannot be cast to org.apache.hadoop.io.Text
      at org.apache.nutch.indexer.metadata.MetadataIndexer.filter(MetadataIndexer.java:58)
      at org.apache.nutch.indexer.IndexingFilters.filter(IndexingFilters.java:51)
      at org.apache.nutch.indexer.IndexerMapReduce.reduce(IndexerMapReduce.java:330)
      at org.apache.nutch.indexer.IndexerMapReduce.reduce(IndexerMapReduce.java:56)
      at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:444)
      at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392)
      at org.apache.hadoop.mapred.LocalJobRunner$Job$ReduceTaskRunnable.run(LocalJobRunner.java:319)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
      2017-02-06 18:18:30,777 ERROR indexer.IndexingJob - Indexer: java.io.IOException: Job failed!
      at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:836)
      at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:145)
      at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:228)
      at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
      at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:237)
      ******************************************

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                chrismattmann Chris A. Mattmann
                Reporter:
                eyeris Eyeris Rodriguez Rueda
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: