[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. 重新编译

时间: 2024-08-10 00:06:24

[Nutch]编译hadoop出现object[]无法转换为K[]问题解决的相关文章

CentOS 6.4 64位 源码编译hadoop 2.2.0

CentOS 6.4 64位 源码编译hadoop 2.2.0 搭建环境:Centos 6.4 64bit 1.安装JDK 参考这里2.安装mavenmaven官方下载地址,可以选择源码编码安装,这里就直接下载编译好的wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip解压文件后,同样在/etc/profie里配置环境变量vim /etc/profieexport

编译Hadoop

Apache Hadoop 生态圈软件下载地址:http://archive.apache.org/dist/hadoop/hadoop下载地址 http://archive.apache.org/dist/hadoop/common 安装环境 虚拟机中的 CentOS 64位 需要安装软件: jdk: jdk-7u45-linux-x64.rpm hadoop:hadoop-2.7.2-src.tar.gz maven:apache-maven-3.0.5-bin.tar.gz protobu

编译Hadoop源码

背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Maven编译源代码才会生成对应的java类,因此若其他类在源代码中引用这些类则暂时无法找到. 解决办法就是先对hadoop源码进行编译,再导入eclipse工程. 一.基础软件: 软件 下载地址 推荐版本 JDK http://www.oracle.com/technetwork/java/javas

自己动手一步一步安装hadoop(含编译hadoop的native本地包)

最近项目需要用到hadoop,边学习边应用,第一步无疑是安装hadoop,我安装的是hadoop-2.4.1,下面是详细步骤,做备忘以后查看 一.下载依赖软件 1.java hadoop官网说明只支持java 6和7 ,下载最新的java7 http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz 2.maven 从maven官网下载http://maven.apache.org/download

全文索引-lucene,solr,nutch,hadoop之nutch与hadoop

全文索引-lucene.solr.nutch,hadoop之lucene 全文索引-lucene.solr,nutch,hadoop之solr 我在去年的时候,就想把lucene,solr.nutch和hadoop这几个东东给具体的介绍下,但因为时间的关系.我还是仅仅写了两篇文章,分别介绍了一下lucene和solr,后来就没有在写了,但我心里还是期待的,尽管到如今我没有真正搞过nutch和hadoop实战项目,但公司立即就要做hadoop大数据的监控了.我一直都说,要做一个有准备的人,因此我从

全文索引之nutch与hadoop(转)

原文:http://blog.csdn.net/chaofanwei/article/details/39476535 全文索引-lucene,solr,nutch,hadoop之lucene 全文索引-lucene,solr,nutch,hadoop之solr 我在去年的时候,就想把lucene,solr,nutch和hadoop这几个东东给详细的介绍下,但由于时间的关系,我还是只写了两篇文章,分别介绍了一下lucene和solr,后来就没有在写了,但我心里还是期待的,虽然到现在我没有真正搞过

编译hadoop版的hello,world

cd ~/src mkdir classes javac -classpath ~/hadoop-0.20.2/hadoop-0.20.2-core.jar WordCount.java -d classes jar -cvf WordCount.jar -C classes/ . hadoop jar WordCount.jar com.codestyle.hadoop.WordCount input output hadoop fs -ls output hadoop fs -cat out

mac OS X Yosemite 上编译hadoop 2.6/2.7及TEZ 0.5.2/0.7 注意事项

1.jdk 1.7问题 hadoop 2.7.0必须要求jdk 1.7.0,而oracle官网已经声明,jdk 1.7 以后不准备再提供更新了,所以趁现在还能下载,赶紧去down一个mac版吧 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 应该选择mac ox 64位的版本 http://download.oracle.com/otn-pub/java/jdk/7u79-b1

64位centos 下编译 hadoop 2.6.0 源码

64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新的稳定版是2.6.0)地址  http://mirrors.hust.edu.cn/apache/hadoop/common/stable/hadoop-2.6.0-src.tar.gz b) 下载apache-ant (centos自带的ant版本太低,编译过程中会报错)地址: http://mi