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);
}
}
您当前有:
reduce(Text_key,
Iterator<IntWritable>values,
OutputCollector<text,intWritable>output,
Reporter reporter)
应该是:
reduce(Text key,
Iterator<IntWritable> values,
OutputCollector<Text,IntWritable> output,
Reporter reporter)
主要区别是key
和text
之间需要一个空格,并且outputcollector<>
中的类型需要被大写化。
请看一下这段代码。最后一行出现了一个错误,因为我传递的是一个“索引”而不是一个资源。我以为是皮毛的问题,试图压制它。然后我注意到只有在构建发布时才会出现这个错误。它在构建调试时工作良好。我完全一无所知。谁能告诉我我做错了什么。
我需要发送Http请求到Hadoop群集与Kerberos授权,我想与Keytab进行身份验证。我发现一个库HttpClient的Apache和我写了这个代码来获得HttpClient: 但我只能在对KeyTab执行Kinit命令后进行身份验证。如何在httpclient中传递密钥表的路径?你知道其他图书馆也能做到这一点吗?
这是我的logcat: java.lang.runtimeException:无法启动活动ComponentInfo{com.example.murarilal.listview/com.example.murarilal.listview.mainactivity}:java.lang.securityException:权限拒绝:读取com.android.providers.media.me
如有任何帮助,我们将不胜感激。
问题内容: 我正在学习带有快速模板引擎的node.js,正在遵循udemy课程“通过构建10个项目来学习node.js”,而在讲座中,当教授开始运行时,我的弹出错误指示 app.use需要 我尝试过的 中间件功能 匹配的代码及其相同。请帮助我解决错误,我已经在这里停留了几个小时,尝试了许多修改,但对我不起作用。 当我尝试运行“ npm start”时,弹出以下错误 TypeError:app.us
在任何地方都找不到关于这个的文章。我基本上希望从程序中捕获“找不到模块”错误,并可以选择要求安装它,但即使使用try/catch语句,我似乎也无法捕获任何错误。这可能吗?我哪儿都没见过。 例如: 我想这可以通过一个独立的.js启动文件来完成,而无需任何第三方的要求,只需使用检查,然后从子进程运行,然后与另一个子进程一起运行。但感觉在单个app.js文件中执行此操作会更容易