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

在hadoop字数统计示例中,为什么不让文本也是静态的呢

冷宏茂
2023-03-14

在Hadoop字数统计示例中,IntWritable被设置为静态,以便可以在同一JVM中重用,而不是创建新的。我的问题是为什么不让文本也保持静态?我做到了,而且工作得很好,但从未在任何例子中看到过。我遗漏了什么吗?

    private ***static*** Text word = new Text();
    private final static IntWritable intWritable = new IntWritable(1);

原字数统计示例。

public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
  private final static IntWritable one = new IntWritable(1);
  private Text word = new Text();

  public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {
    String line = value.toString();
    StringTokenizer tokenizer = new StringTokenizer(line);
    while (tokenizer.hasMoreTokens()) {
      word.set(tokenizer.nextToken());
      output.collect(word, one);
    }
  }

共有1个答案

宇文良骏
2023-03-14

OutputCollector API,收集映射器和还原器输出的对,为了程序正常工作,根据您的逻辑和试图解决的应用程序逻辑类型,决定变量是否必须是全局的,在WordCount程序的情况下,程序正常工作,因为映射器对象没有在多个线程之间共享其状态

 类似资料:
  • 我得到两个错误: Java:不兼容类型:无法推断类型变量R(参数不匹配;方法引用无效) 对toString的引用是不明确的,java.lang.Integer中的方法toString(int)和java.lang.Integer中的方法toString()都是不明确的 并且编译器无法推断所需的方法引用。 但是关于第二个,编译器引用的静态上下文在哪里? 这个错误与Integer类的方法toStrin

  • 谁能告诉我为什么函数参数不能是?这是函数参数在上声明并在函数返回时被取消分配的原因吗?没有办法保留参数值?只是糊涂了。请澄清。 多谢了。

  • 问题内容: 在Java中,外部类可以是public,final,default或abstract。为什么不像静态 问题答案: 外部类已经是隐式静态的。 非静态嵌套类(=内部类)意味着内部类隐式对其父类具有引用。 这就是为什么对于嵌套类,您可以区分静态和非静态。对于外部类来说,这是没有意义的。 这是一个了解静态/非静态嵌套类之间的区别的示例。您应该了解为什么在外部类中它没有意义。

  • 在代码 A1 中,我使用了 语句,因此我认为它不会与 但是我得到以下错误,为什么? 智能转换为“文件”是不可能的,因为“文件名视频”是一个可变属性,此时可能已被更改 此时此刻,我必须使用代码 A2。 代码A1 代码A2 此外,我发现代码B1和代码B2都是正确的。为什么代码B1是正确的,代码A1是错误的? 代码B1 代码B2 添加内容: 1:在Code C中,var aa可能在?. let调用中访问

  • 我是hadoop的新手,刚刚安装了Hadoop2.6。 hadoop jar./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep/user/yoni/input/user/yoni/output101“dfs[a-z.]+” 以及在伪分布式模式下的设置,就像在所有的基本tutilies中一样