当前位置: 首页 > 知识库问答 >
问题:

Hadoop WordCount代码,显示以下错误

樊奇思
2023-03-14
import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.Mapper;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reporter;

public class WordCountMapper extends MapReduceBase    // Here WordCountMapper was underlined as error source by Eclipse
implements Mapper<LongWritable, Text, Text, IntWritable> {

  private final IntWritable one = new IntWritable(1);
  private Text word = new Text();

  public void map(WritableComparable key, Writable value,
  OutputCollector output, Reporter reporter) throws IOException {

    String line = value.toString();
    StringTokenizer itr = new StringTokenizer(line.toLowerCase());
    while(itr.hasMoreTokens()) {
      word.set(itr.nextToken());
      output.collect(word, one);
    }
  }
}
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;

public class WordCount {

public static void main(String[] args) {
JobClient client = new JobClient();
JobConf conf = new JobConf(WordCount.class);

// specify output types
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);

// specify input and output dirs
  FileInputPath.addInputPath(conf, new Path("input"));       //////////FileInputPath was underlined
  FileOutputPath.addOutputPath(conf, new Path("output")); ////////FileOutputPath as underlined

// specify a mapper
conf.setMapperClass(WordCountMapper.class);

// specify a reducer
conf.setReducerClass(WordCountReducer.class);
conf.setCombinerClass(WordCountReducer.class);

client.setConf(conf);
try {
  JobClient.runJob(conf);
  } catch (Exception e) {
  e.printStackTrace();
     }
 }
 }

错误是:

  1. 无法解析FileInputPath
  2. 无法解析FileOutputPath

共有1个答案

漆雕昊天
2023-03-14

使用这个

FileInputFormat.addInputPath(conf, new Path(args[0]));
        FileOutputFormat.setOutputPath(conf,new Path(args[1]));
                or
        FileInputFormat.addInputPath(conf, new Path("inputfile.txt"));
        FileOutputFormat.setOutputPath(conf,new Path("outputfile.txt"));

而不是这样

// specify input and output dirs
          FileInputPath.addInputPath(conf, new Path("input"));       //////////FileInputPath was underlined
          FileOutputPath.addOutputPath(conf, new Path("output")); ////////FileOutputPath as underlined

在这种情况下,这应该是要导入的

import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
 类似资料:
  • 错误 *--unhandled-rejections=strict`(请参见https://nodejs.org/api/CLI.html#CLI_unhandled_rejections_mode)。(拒绝ID:1)(节点:1616)[DEP0018]拒绝警告:不推荐未处理得承诺拒绝.将来,未处理的承诺拒绝将以非零退出代码终止node.js进程。 app.js文件 database.js文件

  • 问题内容: 我以前曾将Netbeans与Subversion(SVN)一起使用过,我喜欢它如何显示自上次提交以来我所做的更改,并使用了左边距的颜色。 Eclipse可以做同样的事情吗?我已经安装了Subclipse。 问题答案: 访问窗口->首选项->常规->编辑器->文本编辑器->快速差异,然后启用 启用快速差异 显示概览标尺的差异

  • 错误:无法找到或加载主类MyGridLayout.MyGridLayout C:\users\home\AppData\local\netbeans\cache\8.2\executor-snippets\run.xml:53:Java返回:1构建失败(总时间:0秒)

  • 它将我带到图库以选择图像,但未显示在应用程序中,当单击上传按钮时,它只是一个空白图像视图 < li >我的Java代码 < li>XML代码 运行时显示此错误 java.lang.IllegalArgumentException:uri不能为空 以下两处给出错误的行显示了uri错误

  • 我的一个视图返回了一个字符串,如下所示: 我试图用刀片显示它: 但是,输出是原始字符串,而不是呈现的超文本标记语言。如何在Laravel中使用Blade显示超文本标记语言? PS.PHP正确显示HTML。

  • 如果我注释掉“%matplotlib inline”,代码运行正常,但如果我不注释“%matplotlib inline”,则“fig,axes=plt.subplot(nrows=x_p,ncols=y_p)”开始创建空白绘图,下面的代码会触发如下错误。知道为什么吗?