如何在MAP/REDUCE中不检查输出路径?

前言

如果在REDUCE中并没有涉及到生成HDFS文件,比如只是将一些数据写入REDIS,那么每次都要提供一个不存在的OUTPUT,真是挺麻烦的,有没有机制可以让MAP/REDUCE作业不要检查输出路径?

检查输出路径的机制


经常,我们的输出格式是这样的:

job.setOutputFormatClass(TextOutputFormat.class);

跟踪下TextOutputFormat,扫描下其中的方法,发现没有检查输出路径的方法。

向上检查TextOutputFormat的父类FileOutputFormat其中的方法,发现如下:

可以发现我们熟悉的提示文字“Output directory XXX already exists”

那么如果我们提供一个类MyTextOutputFormat extends TextOutFormat 并覆盖这个方法,就可以达到不用检查输出路径了:

然后,设置下:

job.setOutputFormatClass(MyTextOutputFormat.class);即可。

时间: 2024-08-25 13:18:59

如何在MAP/REDUCE中不检查输出路径?的相关文章

Map/Reduce中分区和分组的问题

全篇结论 [分在同一组的<key,value>一定同属一个分区.在一个分区的<key,value>可重载"job.setGroupingComparatorClass(a.class);"中的a类的 compare方法重新定义分组规则,同一组的value做为reduce的输入.] 一.为什么写 分区和分组在排序中的作用是不一样的,今天早上看书,又有点心得体会,记录一下. 二.什么是分区 1.还是举书上的例子,在8.2.4章节的二次排序过程中,用气温举例,所以这里

一步一步跟我学习hadoop(5)----hadoop Map/Reduce教程(2)

Map/Reduce用户界面 本节为用户採用框架要面对的各个环节提供了具体的描写叙述,旨在与帮助用户对实现.配置和调优进行具体的设置.然而,开发时候还是要相应着API进行相关操作. 首先我们须要了解Mapper和Reducer接口,应用通常须要提供map和reduce方法以实现他们. 接着我们须要对JobConf, JobClient,Partitioner,OutputCollector,Reporter,InputFormat,OutputFormat,OutputCommitter等进行讨

Map Reduce和流处理

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由@从流域到海域翻译,发表于腾讯云+社区 map()和reduce()是在集群式设备上用来做大规模数据处理的方法,用户定义一个特定的映射,函数将使用该映射对一系列键值对进行处理,直接产生出一系列键值对. Map Reduce和流处理 Hadoop的Map / Reduce模型在并行处理大量数据方面非常出色.它提供了一个通用的分区机制(基于数据的关键)来分配不同机器上的聚合式工作负载.基本上, map / reduce的算法设计都是关

Python中常用内置函数介绍(filter,map,reduce,apply,zip)

Python是一门很简洁,很优雅的语言,其很多内置函数结合起来使用,可以使用很少的代码来实现很多复杂的功能,如果同样的功能要让C/C++/Java来实现的话,可能会头大,其实Python是将复杂的数据结构隐藏在内置函数中,只要写出自己的业务逻辑Python会自动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的好处是: 1. 速度快,使用内置函数,比普通的PYTHON实现,速度要快一倍左

python中filter, map, reduce, lambda

python 中内置的几个函数filter, map, reduce, lambda简单的例子. #!/usr/bin/env python #_*_coding:utf-8_*_ #filter(function, sequence): #对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回. #可以看作是过滤函数. tasks = [ { 'id': 1, 'title

在YARN中,如何控制和监控map/reduce的并发数

配置建议: 1.     In MR1, the mapred.tasktracker.map.tasks.maximum and mapred.tasktracker.reduce.tasks.maximum properties dictated how many map and reduce slots each TaskTracker had. These properties no longer exist in YARN. Instead, YARN uses yarn.nodema

如何在 javascript / js 中 建立一个map

建立map的方式(其实用的是json实现方式) var a = {}; a["key1"] = "value1"; a["key2"] = "value2"; 既然是个map就有检索某个键是否存在的方法,这样写 if ("key1" in a) { // something } else { // something else } 简单的一句话声明map里面的key和value的方式: var a = {'

Python中的Map/Reduce

MapReduce是一种函数式编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性.它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上. Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组. 然而在python中,ma

python中的map&amp;reduce

Map --映射 Reduce -- 归纳 将大数据标准化的处理 Map 拆封任务,Reduce将结果合并 这样是不是能够将很多计算机组成一台超级计算机呢? 一些问题:如果任务本身就很复杂,那么拆解任务本身就是一个很打的难题. python 在2.6 的时候 增加了 map reduce函数 例如我们可以这样写 import urllib2 urls = [ 'https://www.baidu.com', 'http://www.douban.com' ] resurt = map(urlli