解读:MR多路径输入
2024-10-20 08:03:02
对于在一个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);
最新文章
- JavaScript动画-磁性吸附
- kendo ui 富文本编辑控件 Editor 实现本地上传图片,并显示
- Android中常用的布局
- C#6.0特性笔记
- sort关于去除重复/查找非重复/查找重复/统计
- 实现JavaScript自定义函数的整合、链式调用及类的封装
- 一看就懂的ReactJs入门教程(精华版)
- CM 部署bigdata测试环境群集机器报错
- WordPress Woopra Analytics插件‘ofc_upload_image.php’任意PHP代码执行漏洞
- 文件权限和目录权限详解(rwx)
- Pick-up sticks(判断两直线相交)
- Hibernate学习之一对多关联
- 201521123101 《Java程序设计》第1周学习总结
- python selenium-webdriver 登录验证码的处理(十二)
- spring 引用Bean的属性值
- Odoo 去掉 恼人的 ";上午";和";下午";
- ORA-01919: role &#39;PLUSTRACE&#39; does not exist
- JAVA框架Struts2 Action类
- webform的导出
- C++11新特性之线程操作
热门文章
- 使用RMySQL连接MySQL数据库(R-3.4.3)
- centos下vsftpd不能显示文件,不能创建文件及文件夹
- ntpdate同步更新时间
- centos7修改hostname和hosts
- Python并行编程(五):线程同步之信号量
- Notepad++ 更换主题+字体
- PHP命名空间-总结
- 安卓android的联系人的contacts, raw contacts, and data的区别
- Linux服务器access_log日志分析及配置详解(一)
- http协议中post方法发出请求