老mr程序中map中conf的map.input.file参数只能获取获取CombineTextInputFormat的第一个输入文件,而新版mr程序则连第一个输入文件也无法获取,这是因为createRecordReader中的TaskAttemptContext context参数与map中的context参数不是一个对象。

解决方案:

如果需要动态获取Combine的输入文件,可以扩展CombineTextInputFormat,重写createRecordReader方法,从中获取context的Configuration对象。

示例:

 public class MyCombineTextInputFormat extends CombineTextInputFormat {
private static Configuration conf; public static Configuration conf() {
return conf;
} @Override
public RecordReader<LongWritable, Text> createRecordReader(InputSplit split, TaskAttemptContext context) throws IOException,InterruptedException{
conf = context.getConfiguration();
return super.createRecordReader(split, context);
}
} class MyMapper extends Mapper<LongWritable, Text, Text, Text>{
@Override
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException{
Configuration conf = MyCombineTextInputFormat.conf();
String path_str = conf.get("map.input.file", "");
}
}

map阶段动态获取CombineTextInputFormat各输入文件路径的更多相关文章

  1. jstl删除session,choose,动态获取request当前工程路径

    1.jstl标签c:remove删除session request.getSession().setAttribute("ssmsg", "修改成功"); &l ...

  2. 动态获取jar文件的路径

    下面专门封装了一个类来处理: import  java.io.File; /** * 获取打包后jar的路径信息 * @author Administrator *  2011-01-16 13:53 ...

  3. 使用os模块动态获取目录或文件路径

    在接口自动化测试框架中,我们的代码除了能在本地运行,也能在不在修改代码的前提下在其他的环境下能够运行,这样才能达到高复用性和低维护成本,我们在接口测试的模块调用中,会定义很多相关路径,而这些路径必须使 ...

  4. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容

    1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...

  5. Java中动态获取项目根目录的绝对路径

    https://www.cnblogs.com/zhouqing/archive/2012/11/10/2757774.html 序言 在开发过程中经常会用到读写文件,其中就必然涉及路径问题.使用固定 ...

  6. web应用路径问题(相对路径,绝对路径,动态获取路径)

    1.相对路径和绝对路径 绝对路径:以 “ / ” 开头的路径,是完整的路径. 相对路径:不以 “ / ” 开头的路径,是相对于当前web资源目录的路径. 在绝对路径中, “ / ” 的含义有两种解释: ...

  7. java最全的获取某个接口或者某个类所有对应的所有实现类和继承类的工具类--反射动态获取、非动态获取、按照路径获取等总结

    我们直接上代码吧,代码中有注释说明. //直接看代码吧 import java.io.File; import java.lang.reflect.Field; import java.net.URL ...

  8. (转载)Hadoop map reduce 过程获取环境变量

    来源:http://www.linuxidc.com/Linux/2012-07/66337.htm   作者: lmc_wy Hadoop任务执行过程中,在每一个map节点或者reduce节点能获取 ...

  9. SpringMVC——使用RequestDispatcher.include()和HttpServletResponseWrapper动态获取jsp输出内容

    介绍本篇内容前,先抛出我遇到的问题或者说是需求!(精读阅读本篇可能花费您15分钟,略读需5分钟左右) 一:需求说明 有一个Controller有两个方法 第一个方法通过指定的路径和参数去渲染jsp内容 ...

随机推荐

  1. eclipse:不能在tomcat里添加一个项目的解决方法

    Cannot add a project to a tomcat server in eclipse You didn't create your project as "Dynamic W ...

  2. 转载:log4j.properties log4j.xml 路径问题

    自动加载配置文件: (1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解.log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找lo ...

  3. typeahead.js 使用记录

    github地址:https://github.com/twitter/typeahead.js 在aceAdmin界面模板中,有typeahead这一控件,版本号为0.10.2 , 这个版本对 mi ...

  4. python之路-Day5

    1.列表生成式,迭代器&生成器 列表生成式 我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我要求你把列表里的每个值加1. 普通版 a = [0,1,2,3 ...

  5. AJAX - onreadystatechange

    [AJAX - onreadystatechange] 参考:http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_onreadystatechang ...

  6. 处理数组的forEach map filter的兼容性

    处理数组的forEach //forEach处理 if(!Array.prototype.forEach) { Array.prototype.forEach = function (callback ...

  7. [转载] python 计算字符串长度

    本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...

  8. Content is not allowed in prolog ---UTF-8 无bom

  9. 转:Unknown module(s) in QT: multimedia

    在编写串口时遇到了以下问题:Unknown module(s) in QT: multimedia 在ubuntu中解决方法如下: qtmultimedia5-de sudo apt-get inst ...

  10. java写入和写出EXCEL(含源代码)

    这两天帮老师做一个数据库,将所有实验交易的数据导入到数据库中,但是不想天天在实验室里面待着,气氛太压抑,就想着先把数据读进EXCEL中,哪天带到实验室导进去 数据原来是这样的,不同的实验有一个专门的文 ...