MapReduce三种路径输入

目前为止知道MapReduce有三种路径输入方式。
1、第一种是通过一下方式输入:

FileInputFormat.addInputPath(job, new Path(args[0]));
FileInputFormat.addInputPath(job, new Path(args[1]));
FileInputFormat.addInputPath(job, new Path(args[2]));
FileInputFormat.addInputPath(job, new Path(args[3]));

这种方式可以接收多个路径下的文件输入,但是这些文件都是通过一个Map进行处理
2、第二种是通过以下方式输入(第二个路径参数是通过,分割的多个路径):

FileInputFormat.addInputPaths(job, args[0] + "," + args[1] + "," + args[2]);

这种方式跟第一种相似,看源码会发现,该方式是先将路径通过,分割成String[] paths数组形式,然后再循环调用第一种方式,而且他也是通过一个Map进行处理
3、第三种是通过以下方式输入:

MultipleInputs.addInputPath(job, new Path(args[0]), TextInputFormat.class,Mapper1.class);
MultipleInputs.addInputPath(job, new Path(args[1]), TextInputFormat.class,Mapper2.class);
MultipleInputs.addInputPath(job, new Path(args[2]), TextInputFormat.class,Mapper3.class);

这种方式是针对不同的输入文件,他们的格式可能不同,然后针对他们的格式编写相应的Map分别进行处理,这种方式更灵活些。

来自:http://f.dataguru.cn/thread-235219-1-1.html

MapReduce三种路径输入

时间: 2024-11-13 16:47:42

MapReduce三种路径输入的相关文章

MapReduce三种join实例分析

本文引自吴超博客 实现原理 1.在Reudce端进行连接. 在Reudce端进行连接是MapReduce框架进行表之间join操作最为常见的模式,其具体的实现原理如下: Map端的主要工作:为来自不同表(文件)的key/value对打标签以区别不同来源的记录.然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出. reduce端的主要工作:在reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在map阶段已经打标志)分开,

文件删除的windows下面的三种路径(轻量级)

文件常规删除的三种方法都比较熟悉. #define FILE_DELETE_ON_CLOSE 0x00001000 @1 Nt/ZwCreateFile Nt/ZwOpenFile 填充OpenPacket结构,标记FILE_DELETE_ON_CLOSE (WRK) @2 Nt/ZwDeleteFile 填充OpenPacket结构,标记FILE_DELETE_ON_CLOSE (WRK) @3 Nt/ZwSetInformationFile 使用FileDispositionInformat

./和../和/三种路径的区别

本文为博主原创,未经允许不得转载: 在JavaScript中,经常用到./和../及/路径访问指定的资源,但三者有什么区别: ./表示当前目录 ../表示父级目录 /表示根目录 实例:通过href链接下载访问一个静态文件,进行路径区分.第一个表示../斜杠的路径,resources为WebRoot路径下的下一级路径. 这个路径不可用,没有带项目名称. 第二个表示/斜杠的路径: 这个路径也访问不了这个静态资源文件 第三个表示./表示当前目录,带有项目名称,可以进行访问的.表示项目目录下的路径 原文

ASP.NET Core 3.x 三种【输入验证】方式

验证要做三件事 定义验证规则 按验证规则进行检查 报告验证的错误. 在把错误报告给API消费者的时候,报告里并不包含到底是服务端还是API消费者引起的错误,这是状态码的工作.而通常响应的Body里面会包含一组验证错误信息,API消费者可以把这些信息展示给API消费者的用户. 定义验证规则 想要定义验证规则,我们可以使用ASP.NET Core内置的方式或者使用第三方库. 在ASP.NET Core里面,验证规则可以通过以下的方式来进行定义: Data Annotations 自定义Atrribu

Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 import java.io.*; public static void main(String [] args) throws

[Android Studio 权威教程]Android Studio 三种添加插件的方式

前几篇blog我们介绍了如何安装和配置Android Studio,这篇Blog我们来聊聊如何给Android Studio添加插件,添加插件的路径有三种,我把他们分类如下: 点击设置小按钮 点击[Plugins]这里展示的是你已经安装的插件,我们可以点击插件名称,查看插件的说明,下方的三个按钮是添加插件的三种路径,我们分别介绍: 官方插件 我们这里已Meteor为示例,首先点击官方插件 这里我们可以搜索插件的名称,然后点击安装 这里AS要求我们重启AS 安装好后,我们可以在插件列表中查看 民间

hadoop学习;自己定义Input/OutputFormat;类引用mapreduce.mapper;三种模式

hadoop切割与读取输入文件的方式被定义在InputFormat接口的一个实现中.TextInputFormat是默认的实现,当你想要一次获取一行内容作为输入数据时又没有确定的键.从TextInputFormat返回的键为每行的字节偏移量,但眼下没看到用过 曾经在mapper中曾使用LongWritable(键)和Text(值),在TextInputFormat中,由于键是字节偏移量.能够是LongWritable类型,而当使用KeyValueTextInputFormat时,第一个分隔符前后

hadoop学习;自定义Input/OutputFormat;类引用mapreduce.mapper;三种模式

hadoop分割与读取输入文件的方式被定义在InputFormat接口的一个实现中,TextInputFormat是默认的实现,当你想要一次获取一行内容作为输入数据时又没有确定的键,从TextInputFormat返回的键为每行的字节偏移量,但目前没看到用过 以前在mapper中曾使用LongWritable(键)和Text(值),在TextInputFormat中,因为键是字节偏移量,可以是LongWritable类型,而当使用KeyValueTextInputFormat时,第一个分隔符前后

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et