- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hadoop的MapReduce中多文件输出-北风网
[Hadoop 系列]Hadoop 的 MapReduce 中多文件输出
2010-01-08 11:14 2883 人阅读评论(4) 收藏举报
inkfish 原创,请勿商业性质转载,转载请注明来源(/inkfish )。
Hadoop 默认的输出是TextOutputFormat,输出文件名不可定制。hadoop 0.19.X 中有
一个org.apache.hadoop.mapred.lib.MultipleOutputFormat ,可以输出多份文件且可以自定
义文件名,但是从hadoop 0.20.x 中MultipleOutputFormat 所在包的所有类被标记为“已过
时”,当前如果再使用MultipleOutputFormat,在将来版本的hadoop 中可能无法使用。本篇
文章中,我们自己实现一个简单的MultipleOutputFormat,并修改hadoop 自带的WordCount
示例程序来测试结果。
环境:
Ubuntu 8.0.4 Server 32bit
Hadoop 0.20.1
JDK 1.6.0_16-b01
Eclipse 3.5
所有代码分为3 个类:
1.LineRecordWriter:
RecordWriter 的一个实现,用于把Key, Value转化为一行文本。在Hadoop 中,这
个类作为TextOutputFormat 的一个子类存在,protected 访问权限,因此普通程序无法访问。
这里仅仅是把LineRecordWriter 从TextOutputFormat 抽取出来,作为一个独立的公共类使
用。
view plain
1. package inkfish.hadoop.study;
2. import java.io.DataOutputStream;
3. import java.io.IOException;
4. import java.io.UnsupportedEncodingException;
5. import org.apache.hadoop.io.NullWritable;
6. import org.apache.hadoop.io.Text;
7. import org.apache.hadoop.mapreduce.RecordWriter;
8. import org.apache.hadoop.mapreduce.TaskAttemptContext;
9. import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
10. /**摘自{@link TextOutputFormat}中的LineRecordWriter。 */
11. public class LineRecordWriterK, V extends RecordWriterK, V {
12. private static final String utf8 = UTF-8;
13. private static final byte[] newline;
14. static {
15. try {
16. newline = /n.getBytes(utf8);
17. } catch (UnsupportedEncodingException uee) {
18. throw new IllegalArgumentException(cant find + utf8 + enco
ding);
19. }
20. }
21. protected DataOutputStream out;
22. private final byte[] keyValueSeparator;
23. public LineRecordWriter(DataOutputStream out, String keyValueSeparator)
{
24. this .out = out;
25. try {
26. this .keyValueSeparator = keyValueSeparator.getBy
您可能关注的文档
- WQ型排污泵型号与参数.doc
- snoop使用.doc
- MBR工艺在农村污水处理中应用.ppt
- XPS原理.ppt
- Y型通风在沿空留巷应用.ppt
- MOS管电路工作原理与详解.ppt
- MicroCap 仿真简单说明.doc
- “优雅”“网络社会”生活方式.doc
- ZIGBEE与电力载波在路灯控制上应用优缺点.doc
- RNA-SEQ原理与应用.ppt
- 物理(云南卷)(考试版A4) .docx
- 广州花都区2024-2025学年牛津深圳版七年级英语下第三次月考模拟练习题(含答案解析).docx
- 广州花都区2024-2025学年牛津深圳版八年级英语下第三次月考模拟练习卷(含答案解析).docx
- 物理(云南卷)(考试版A4).docx
- 广州天河区2024-2025学年牛津深圳版八年级英语下第三次月考模拟练习题(含答案解析).docx
- 2024-2025学年吉林省长春市第七十二中学九年级(下)月考语文试卷(3月份).docx
- 坐标测量机试题及答案.docx
- 地形数字测绘试题及答案.docx
- 地铁服务试题库及答案.docx
- 花店与茶馆合作合同.docx
文档评论(0)