##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.getInputFor

在使用JDK8编译hadoop 1.2.1时遇到object[]无法转换为K[]的问题。通过修改hadoop源码InputSampler.java中319行左右的代码,将`object[] samples = split.sample();`改为`K[] samples = (K[]) Array.newInstance(split.getValueClass(), numSamples);`,解决了该问题。随后重新编译hadoop即可。"
78827791,6683367,深入理解KMP算法:原理与实现,"['算法', '字符串处理', '编程']
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



