我想使用org.apache.hadoop.mapreduce API在Hadoop 2.3.0中做一个简单的map reduce函数,但是当我尝试运行它时,出现以下错误
org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org.apache.hadoop.mapred.InputSplit.
由于我在mapreduce函数中使用的是这个
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
我不知道为什么它会继续使用旧的API,是否有一些我修改过的配置文件?
最佳答案
尝试使用hadoop dfsadmin -refreshNodes
命令刷新节点。这样它将获取新的API。
关于hadoop - Hadoop调用了错误的API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22758775/