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

错误:java hadoop中需要

长孙骏
2023-03-14
public class CountBook
{
    public static class EMapper extends MapReducebase implements
    Mapper<LongWritable,Text,Text,IntWritable>
    {
        private final static Intwritable one = new Intwritable(1);
        public void map(LongWritable key,Text value,OutputCollector<Text,IntWritable>output,Reporter reporter)throws IOException
        {
            String line = value.toString();
            String[] Data = line.split("\";\"");
            output.collect(new text(Data[0]),one);

        }
    }


public static class EReduce extends MapReduceBase implements
Reducer<Text,IntWritable,Text,IntWritable>
{
    public void reduce(Text_key,Iterator<IntWritable>values,OutputCollector<text,intWritable>output,Reporter reporter)throws IOException
    {
        Text key=_key;
        int authid=0;
        while(values.hasNext())
        {
            IntWritable value = (IntWritable)values.next();
            authid+=value.get();
        }
        output.collect(key,new intWritable(authid));
    }
}


public static void main(String args[])throws Exception
{
    JobConf conf = new JbConf(CountBook.class);
    conf.setjobName("CountBookByAuthor");
    conf.setOutputkeyClass(Text.class);
    conf.setOutputValueClass(IntWritable.class);
    conf.setMapperClass(EMapper.class);
    conf.setCombinerClass(EReduce.class);
    conf.setReducerClass(EReducer.class);
    conf.setOutputFormat(TextOutputFormat.class);
    FileInputFormat.setInputPaths(conf,new path(args[0]));
    FileOutputFormat.setOutputPath(conf,new Path(args[1]));
    JobCLient.runJob(conf);
}
}

共有1个答案

汪兴旺
2023-03-14

您当前有:

reduce(Text_key, 
       Iterator<IntWritable>values,
       OutputCollector<text,intWritable>output, 
       Reporter reporter)

应该是:

reduce(Text key, 
       Iterator<IntWritable> values,
       OutputCollector<Text,IntWritable> output, 
       Reporter reporter)

主要区别是keytext之间需要一个空格,并且outputcollector<>中的类型需要被大写化。

 类似资料:
  • 请看一下这段代码。最后一行出现了一个错误,因为我传递的是一个“索引”而不是一个资源。我以为是皮毛的问题,试图压制它。然后我注意到只有在构建发布时才会出现这个错误。它在构建调试时工作良好。我完全一无所知。谁能告诉我我做错了什么。

  • 这是我的logcat: java.lang.runtimeException:无法启动活动ComponentInfo{com.example.murarilal.listview/com.example.murarilal.listview.mainactivity}:java.lang.securityException:权限拒绝:读取com.android.providers.media.me

  • 如有任何帮助,我们将不胜感激。

  • 我需要发送Http请求到Hadoop群集与Kerberos授权,我想与Keytab进行身份验证。我发现一个库HttpClient的Apache和我写了这个代码来获得HttpClient: 但我只能在对KeyTab执行Kinit命令后进行身份验证。如何在httpclient中传递密钥表的路径?你知道其他图书馆也能做到这一点吗?

  • 问题内容: 我正在学习带有快速模板引擎的node.js,正在遵循udemy课程“通过构建10个项目来学习node.js”,而在讲座中,当教授开始运行时,我的弹出错误指示 app.use需要 我尝试过的 中间件功能 匹配的代码及其相同。请帮助我解决错误,我已经在这里停留了几个小时,尝试了许多修改,但对我不起作用。 当我尝试运行“ npm start”时,弹出以下错误 TypeError:app.us

  • 在任何地方都找不到关于这个的文章。我基本上希望从程序中捕获“找不到模块”错误,并可以选择要求安装它,但即使使用try/catch语句,我似乎也无法捕获任何错误。这可能吗?我哪儿都没见过。 例如: 我想这可以通过一个独立的.js启动文件来完成,而无需任何第三方的要求,只需使用检查,然后从子进程运行,然后与另一个子进程一起运行。但感觉在单个app.js文件中执行此操作会更容易