MapReduce程序中的万能输入FileInputFormat.addInputPaths

写MR过程中经常会遇到多个源路径的输入,我们可以在MR程序主函数中通过FileInputFormat.addInputPaths(job,args[0])方法来实现,

args[0]可以是folder1或者folder1,folder2只要以逗号分隔就可以了。

这样在执行MR的时候,输入会将多个源路径全部多为map输入进行执行。

另外一种实现单输入的方法(只支持一个目录作为输入目录):

FileInputFormat.setInputPaths(job, new Path(args[0]));

当然FileInputFormat.addInputPaths是兼容FileInputFormat.setInputPath的,也就是说如果我调用的是多输入路径函数,但是输入数据源只有一个路径,也是能够正常执行的,所以通用起见,FileInputFormat.addInputPaths是个更好的选择。

时间: 2024-10-26 21:09:58

MapReduce程序中的万能输入FileInputFormat.addInputPaths的相关文章

hadoop-初学者写map-reduce程序中容易出现的问题 3

1.写hadoop的map-reduce程序之前所必须知道的基础知识: 1)hadoop map-reduce的自带的数据类型: Hadoop提供了如下内容的数据类型,这些数据类型都实现了WritableComparable接口,以便用这些类型定义的数据可以被序列化进行网络传输和文件存储,以及进行大小比较.(如果是自定义的key,value的数据类型,必须也要写其大小比较的方法) BooleanWritable:标准布尔型数值 ByteWritable:单字节数值 DoubleWritable:

一脸懵逼学习Hadoop中的MapReduce程序中自定义分组的实现

1:首先搞好实体类对象: write 是把每个对象序列化到输出流,readFields是把输入流字节反序列化,实现WritableComparable,Java值对象的比较:一般需要重写toString(),hashCode(),equals()方法 1 package com.areapartition; 2 3 import java.io.DataInput; 4 import java.io.DataOutput; 5 import java.io.IOException; 6 7 im

java应用程序中判断用户输入的一个整数是否在已知数组里。

import java.util.*; class Example2_5 { public static void main(String args[]) { int start=0,end,middle; int a[] = {12,45,67,89,123,-45,67}; int N = a.length; for(int i=0; i<N; i++) { //选择法排序数组 for(int j = i+1; j < N;j++){ if(a[j] < a[i]){ int t =

第7课 - 程序中的数据输入

1.问题:如何使用C语言从键盘输入数据? stdio.h工具包提供了一个数据输入工具scanf scanf通过正确设置后,能够获取键盘输入的数据 scanf将键盘获取的数据“填入”变量 stdio.h中scanf的使用示例: 注意事项: scanf中的格式化字符不能包含其他无关字符 scanf中的格式化字符必须与对应的变量类型一致 编程实验:键盘输入 7-1.c 2.编程小任务:输入两个整数,并求和 思路: 定义2个用于相加的整型变量 使用scanf从键盘输入整数 使用printf打印相加的结果

Hadoop之MapReduce程序分析

摘要:Hadoop之MapReduce程序包括三个部分:Mapper,Reducer和作业执行.本文介绍和分析MapReduce程序三部分结构. 关键词:MapReduce   Mapper  Reducer   作业执行 MapReduce程序包括三个部分,分别是Mapper,Reducer和作业执行. Mapper 一个类要充当Mapper需要继承MapReduceBase并实现Mapper接口. Mapper接口负责数据处理阶段.它采用形式为Mapper<K1,V1,K2,V2>的Jav

Hadoop之MapReduce程序开发流程

摘要:MapReduce程序开发流程遵循算法思路.Mapper.Reducer.作业执行的步骤. 关键词:MapReduce 程序   开发流程 对于一个数据处理问题,若需要MapReduce,那么如何设计和实现?MapReduce程序基础模板,包含两个部分,一个是map,一个是reduce.map和reduce的设计取决解决问题的算法思路:而map和reduce的执行需要作业的调度. 因此,MapReduce程序开发可以遵循以下流程. 第一步:清楚问题是什么,确定解决问题的算法思路. 第二步:

java程序中String args[]起什么作用?

在下面这个程序中String args[]起什么作用?我学过C++,String args[]与C++中的什么类似?如果是C++,想要输出字符串只要在下面写cout<<"...."<<endl;就可以了,void main()中的括号为空,而java中为什么要写String args[]呢? class Example{ public static void main(String args[]){ System.out.println("This i

Hadoop:统计文本中单词熟练MapReduce程序

这是搭建hadoop环境后的第一个MapReduce程序: 基于python的脚本: 1 map.py文件,把文本的内容划分成单词: #!/bin/pythonimport sys for line in sys.stdin:    data_list = line.strip().split()    for i in range(0, len(data_list)):        print data_list[i]         2 reduce文件,把统计单词出现的次数: #!/bi

Win7下Eclipse中运行远程MapReduce程序

1.hadoop插件的参数配置 2.运行时的参数 3.运行结果 Win7下Eclipse中运行远程MapReduce程序,布布扣,bubuko.com