MapReduce java.lang.ArrayIndexOutOfBoundsException:0

2023-12-06

我尝试在 Java 中运行 MapReduce,但出现此错误。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at com.mapreduce.WordCount.run(WordCount.java:23)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
        at com.mapreduce.WordCount.main(WordCount.java:18)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

字数统计.java

package com.mapreduce;

import java.io.IOException;
import java.util.*;

import org.apache.hadoop.conf.*;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.*;
import org.apache.hadoop.mapreduce.lib.output.*;
import org.apache.hadoop.util.*;

public class WordCount extends Configured implements Tool {

    public static void main(String args[]) throws Exception {
        int res = ToolRunner.run(new WordCount(), args);
        System.exit(res);
    }

    public int run(String[] args) throws Exception {
        Path inputPath = new Path(args[0]);
        Path outputPath = new Path(args[1]);

        Configuration conf = getConf();
        Job job = new Job(conf, this.getClass().toString());

        FileInputFormat.setInputPaths(job, inputPath);
        FileOutputFormat.setOutputPath(job, outputPath);

        job.setJobName("WordCount");
        job.setJarByClass(WordCount.class);
        job.setInputFormatClass(TextInputFormat.class);
        job.setOutputFormatClass(TextOutputFormat.class);
        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        job.setMapperClass(Map.class);
        job.setCombinerClass(Reduce.class);
        job.setReducerClass(Reduce.class);

        return job.waitForCompletion(true) ? 0 : 1;
    }

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

        @Override
        public void map(LongWritable key, Text value,
                        Mapper.Context context) throws IOException, InterruptedException {
            String line = value.toString();
            StringTokenizer tokenizer = new StringTokenizer(line);
            while (tokenizer.hasMoreTokens()) {
                word.set(tokenizer.nextToken());
                context.write(word, one);
            }
        }
    }

    public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {

        @Override
        public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
            int sum = 0;
            for (IntWritable value : values) {
                sum += value.get();
            }

            context.write(key, new IntWritable(sum));
        }
    }

}

我不明白这意味着数组中没有元素,但是我需要做什么才能运行它?我正在使用 Maven 导入所有必需的库。我在 Windows 上运行它。该代码是一个示例http://www.macalester.edu/~shoop/sc13/hadoop/html/hadoop/wc-detail.html


您需要启动您的程序有参数对应于输入路径和输出路径,因此您的启动命令应采用以下格式:

java -cp <my-classpath-here> com.mapreduce.WordCount <input-path> <output-path>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MapReduce java.lang.ArrayIndexOutOfBoundsException:0 的相关文章

随机推荐

  • 动态添加节点到 d3.js 力向图

    我在动态添加节点到 d3 js 强制定向图时遇到问题 我想知道这里是否有人可以阐明这个主题 我遇到的问题是我希望刻度函数进行转换all图上的节点而不仅仅是新添加的节点 以下是我用于添加节点和处理转换的函数 Function to handl
  • Google App Engine“没有名为请求的模块”PyDev

    我下载并安装了requestsPython 2 7 的库 使用 shell 我可以发出 导入请求 并实际使用它 不会出现任何问题 问题是 运行 Google App Engine 时找不到它并提示错误 导入错误 没有名为请求的模块 我使用
  • Swing JTabbedPane 在填充时抛出 IndexOutOfBoundsException

    我有一个包含多个组件的应用程序 其中之一是JTabbedPane里面还有其他东西 显然 我访问此窗格only通过这个吸气剂 public JTabbedPane getPlotTabbedPane if plotTabs null plot
  • Gulp、html 模板和片段加载

    当我通过 gulp 任务运行生成的 html 文件时 我想在生成的 html 文件中的各个位置导入 html 片段 以下是我的 gulp 任务 gulp task build html function gulp src resources
  • protobuf-net 使用 DynamicType 序列化 System.Object 会引发异常

    在我的应用程序中 我正在序列化消息以使用 protobuf net 通过网络发送 每条消息都有一个用于标头信息的键值对列表 但是 我遇到了一个异常 并且我已经能够用一个非常简单的示例来重现它 TestFixture public class
  • LibGDX:粒子尺度

    在我的游戏中我使用 static final float FRUSTUM WIDTH 10 static final float FRUSTUM HEIGHT 15 所以当我绘制粒子时 它们占据了整个屏幕并且非常巨大 那么我如何缩小它们以满
  • Neo4j:使用可选关系实现软删除

    我正在尝试在 Neo4j 中实现软删除 从 Alice 的角度来看 Cypher 中描述的图是这样的 clyde User lt FOLLOWS alice User LIKES gt bob User 我没有实际删除节点及其关系 而是 更
  • Java中删除字符串的一部分

    我想从一个字符中删除字符串的一部分 即 源字符串 manchester united with nice players 目标字符串 manchester united 有多种方法可以做到这一点 如果您有要替换的字符串 可以使用replac
  • Spring Data 查询方法中的可选参数

    我想在存储库层编写一些查询方法 此方法必须忽略空参数 例如 List
  • 检查文件是否可执行

    我想知道检查程序是否可以用 bash 执行而不执行它的最简单方法是什么 它至少应该检查该文件是否具有执行权限 并且与当前系统具有相同的体系结构 例如 不是 Windows 可执行文件或其他不支持的体系结构 如果系统是 32 位 则不是 64
  • 在 ListActivity 上使用 setEmptyView 时出现问题

    我有以下设置 并且空视图文本不会显示 protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState getListView setEm
  • gh - 页面上的 SvelteKit 部署不起作用。仅显示 HTML,不加载 CSS 和 JS

    如果我在本地构建项目并查看预览 则一切正常 如果我将其部署到 gh pages 则仅显示 HTML 并且无法加载 JS 和 CSS 这是为什么 我不知道我做错了什么 我也在官方 svelte Discord 服务器上询问过 我用的是 框架
  • 使用 poi 从 excel 文件读取图像和数据

    我知道如何从 Excel xls xlxs 读取数据 现在我的要求是我必须使用 POI 3 8 从 Excel 文件读取图像和数据 你能指导我该怎么做吗 使用 poi 从一个 excel 文件中读取图像和数据 提前致谢 直接来自开发者指南
  • 您能否/如何在运行时为 PropertyGrid(对于 PCL)指定编辑器?

    我在那里编写了一个带有自定义对象的 PCL 然后创建了一个 GUI 来处理来自 PCL 的对象 并且我尝试使用 PropertyGrid 来编辑属性 我已经阅读了该内容以便网格要知道如何处理该对象 我需要指定 EditorAttribute
  • 查找文本条件的 WebElement 基础

    我有一个自动完成功能list当我在文本字段中输入一些文本时 该窗口将打开 并且列表中的每个元素如下所示 div class tt dataset span class tt suggestions style display block d
  • 如何使用 Xcode Storyboards 协作开发项目?

    对于我正在为 iOS 开发的项目 我想与一些自由职业者合作 为了在 纯 代码上进行协作 我想使用 GitHub 但工作的很大一部分将集中在故事板以及与代码的连接上 这里有什么好的做法 我如何与他们共享 Xcode 项目 以便他们可以处理某些
  • LUIS 的使用是否受到限制?

    我在我的申请中收到异常消息 Exception Response status code does not indicate success 403 Quota Exceeded 这是否意味着 LUIS 上每个应用程序每月仅允许 1000
  • Java:检查命令行参数是否为空

    我希望对我的命令行参数进行一些错误检查 public static void main String args if args 0 null System out println Proper Usage is java program f
  • 在 MASM 中调用 C++ 函数

    我正在开发一个程序 该程序将使用 MASM 调用一些 C 函数 我在一个单独的文件中定义了对 2 个整数求和并显示输出 目前 我无法运行 main cpp asmMain 从 main cpp 调用函数 code asm promptFir
  • MapReduce java.lang.ArrayIndexOutOfBoundsException:0

    我尝试在 Java 中运行 MapReduce 但出现此错误 Exception in thread main java lang ArrayIndexOutOfBoundsException 0 at com mapreduce Word