奢望Reduce处理结果放入对象中
我的map和reduce代码:
我曾经设想要是把reduce的结果放入对象countMap就好了,不用回写到HDFS,而直接put到一个countMap返回给调用者。但认真一想,每台机子做reduce时都会把结果put进本台机子维护的内存里面,当所有机子reduce完以后怎样把每台机子内存里的countMap对象聚集到一起返回给调用者呢?这个功能hadoop可以实现吗,如果要实现此功能,有其他解决方案吗?
public static class MyMapper extends TableMapper<Text,IntWritable>{
private final IntWritable one = new IntWritable(1);
@Override
public void map(ImmutableBytesWritable row, Result value, Context context)
throws IOException,InterruptedException{
for(KeyValue kv : value.list()){
context.write(new Text(kv.getKey()), one);
}
}
}
public static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
private static Map<String,Integer> countMap = new HashMap<String,Integer>();
public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
int i = 0;
for (IntWritable val : values) {
i += val.get();
}
countMap.put(key.toString(),i);
}
}我曾经设想要是把reduce的结果放入对象countMap就好了,不用回写到HDFS,而直接put到一个countMap返回给调用者。但认真一想,每台机子做reduce时都会把结果put进本台机子维护的内存里面,当所有机子reduce完以后怎样把每台机子内存里的countMap对象聚集到一起返回给调用者呢?这个功能hadoop可以实现吗,如果要实现此功能,有其他解决方案吗?
...全文
相关推荐
大数据Hadoop,数据处理的前沿技术探秘
Hadoop的不变分布式存储的核心思想(分块+副本);分布式计算的核心思想(分而治之);解决“大数据问题”的初心。Hadoop的变从“单一工具”到“生态系统”;从“批处理”到“批流一体”;从“自建集群”到“云原生”。
《模式识别与数据挖掘》配套PPT课件
《模式识别与数据挖掘》配套PPT课件
科技成果转化项目进场交易前,评估备案环节需要准备哪些材料?_8.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
人工智能通识教育(中职版)课程标准+PPT课件+部分素材+电子活页+在线考核
人工智能通识教育(中职版)课程标准+PPT课件+部分素材+电子活页+在线考核
跨境电商供应链管理(AIGC版)课件+教案+参考答案
跨境电商供应链管理(AIGC版)课件+教案+参考答案


