对于在一个MR-Job中使用多路径作为输入文件,一般有三种方法:

1).多次调用,加载不同路径:

import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;//输入路径in01 in02
String in01 = "hdfs://RS5-112:9000/cs01/path01";
String in02 = "hdfs://RS5-112:9000/cs02/path02";//多次调用addInputPath()方法
FileInputFormat.addInputPath(job,new Path(in0));
FileInputFormat.addInputPath(job,new Path(in1));

2).一次调用,同时加载多路径(字符串用逗号隔开):

//这种方式的第二个参数只能是:将路径以逗号拼接的字符串
FileInputFormat.addInputPaths(job,"hdfs://RS5-112:9000/cs01/path1,hdfs://RS5-112:9000/cs02/path2");

3).使用MultipleInputs类的方法

addInputPath(Job job, Path path,Class<? extends InputFormat> inputFormatClass);

addInputPath(Job job, Path path,Class<? extends InputFormat> inputFormatClass,Class<? extends Mapper> mapperClass);

MultipleInputs类的强大之处在于不仅可以多次调用addInputPath()方法加载路径,而且可以根据路径的不同指定不同的输入格式,更有甚者还可以根据输入格式的不同指定不同的Mapper函数进行处理。详见 MR案例:倒排索引 && MultipleInputs 和 MR案例:CombineFileInputFormat

DEMO1:

MultipleInputs.addInputPath(job, new Path("hdfs://RS5-112:9000/cs01/path01"), TextInputFormat.class);
MultipleInputs.addInputPath(job, new Path("hdfs://RS5-112:9000/cs02/path2"), KeyValueInputFormat.class);

DEMO2:

MultipleInputs.addInputPath(job, new Path("hdfs://RS5-112:9000/cs01/path01"), TextInputFormat.class,Mapper01.class);
MultipleInputs.addInputPath(job, new Path("hdfs://RS5-112:9000/cs02/path2"), KeyValueInputFormat.class,Mapper02.class);

转载于:https://www.cnblogs.com/skyl/p/4753703.html

解读:MR多路径输入相关推荐

  1. 路径输入mac下配置NDK开发环境

    最近使用开发的过程中现出了一个小问题,顺便记录一下原因和方法--路径输入 本文参考了别人的文章,具体步调: 一.启动终端Terminal 二.输入  pico .bash_profile  车回. 三 ...

  2. [Hadoop]MapReduce多路径输入与多个输入

    1. 多路径输入 FileInputFormat是所有使用文件作为其数据源的 InputFormat 实现的基类,它的主要作用是指出作业的输入文件位置.因为作业的输入被设定为一组路径, 这对指定作业输 ...

  3. python input函数路径输入问题

    在python3.x中input()为输入一个字符串,但是如果当做文件路径输入,一般情况下需要将'\'改成'\\'或者'/',否则很多打开路径函数会报错路径错误,原因是把反斜杠当做了转义字符.现在改用 ...

  4. ArcGIS Server,rest路径输入要素json 格式描述

    以下内容只测试了简单线, 在ArcGIS Server 的rest路径下可以对服务进行操作,如Query等,这些操作可以输入json 格式要素描述或运行得到即输出json格式要素描述. 如博客:htt ...

  5. 最小拍控制系统详细解读(阶跃输入+速度输入2个案例)【Simulink仿真】

    目录索引 1.符号说明与结构框图 2.最小拍控制系统构造原则 2.1数字控制器D(z)的构造 3.简单控制对象的最小拍控制器设计 3.1阶跃输入 3.2速度输入 1.符号说明与结构框图 y(k)--系 ...

  6. 大数据学习笔记25:MR案例——自定义输入输出格式处理个人成绩

    文章目录 一.提出任务 二.自定义输入格式 1.输入格式(InputFormat) 2.记录读取器(RecordReader) 三.自定义输出格式 1.输出格式(OutputFormat) 2.记录写 ...

  7. 大数据学习笔记27:MR案例——多输入源处理成绩

    文章目录 一.提出任务 原始成绩数据 任务1.整合两个文件的成绩数据 任务2.统计每个学生各科平均分 二.准备工作 1.启动hadoop服务 2.上传数据文件到HDFS 3.创建Maven项目Mult ...

  8. MR案例:CombineFileInputFormat

    CombineFileInputFormat是一个抽象类.Hadoop提供了两个实现类CombineTextInputFormat和CombineSequenceFileInputFormat. 此案 ...

  9. pr字幕按指定的路径方向输入文字

    在字幕的告警栏中有两个路径输入工具,一个横向输入路径,一个垂直路径 premiere中可以自己绘制文字路径,让文字根据路径排列,下面我们就来看看详细的教程. 1.新建一个字幕:进入到字幕的操作界面中. ...

最新文章

  1. 获得 bootstrapTable行号index
  2. Java线程与并发编程实践----同步器(Phaser)
  3. java根据日期判断星座_根据日期计算星座
  4. 剑指offer:输入一棵二叉树,判断该二叉树是否是平衡二叉树。
  5. 深入理解计算机系统(2.7)------浮点数舍入以及运算
  6. aop区别 decorator_Decorator或Proxy模式;AOP拦截器
  7. LeetCode之Keyboard Row
  8. asp.net定时执行任务-解决应用池回收问题----转载
  9. VS中CString与char型数组相互转换问题
  10. 使用python解析C代码
  11. 从60%的BI和数据仓库项目失败,看出从业者那些不堪的乱象
  12. linux程序网络验证,【redhat5.5】linux的LDAP认证服务器的配置及客户端pam网络验证实例...
  13. 如何使用 Fiddler Everywhere 抓包手机模拟器上的网络请求
  14. 计算机控制台什么意思,什么叫控制台?
  15. 生态圈——小组制组织结构思考
  16. pip显示网络不可达错误解决
  17. 你真的了解Cookie吗?
  18. jmeter问题排查:关于察看结果树里缺少请求
  19. (转)惨烈:1个Bug,45分钟损失4亿多美元
  20. m4r转换工具html加载视频,在线m4r格式转换器

热门文章

  1. 人生如戏,请给我好一点儿的演技
  2. dede调用头条非头条
  3. 4款基于jquery的列表图标动画切换特效
  4. 纯CSS3实现宽屏二级下拉菜单
  5. Git创建repository,以及clone,提交一个repository
  6. MxGraph从入门到精通之5:在Vue项目中使用MxGraph
  7. leetcode算法题--不同路径2
  8. 这份优化清单,你做了哪些?
  9. 《构建之法》问题与思考
  10. 在URL地址栏中显示ico