我们在使用streaming模式的mapreduce开发程序的时候,经常会发现输出结果中被莫名其妙的添加了分割符,比如在一行的中间或者结尾多了 一个Tab符号。尤其是输出只有一个字段的时候,末尾一定会被添加一个Tab符,看着十分恶心,而且有可能影响程序的正确性,所以我们一定要除掉它。
首先来看看他是怎么产生的。因为streaming版本的mapreduce,会将程序的输出按照key/velue的形式组织,而且key/value之间需要有一个分隔符,方便程序区分。这个分割符,默认的就是Tab。我们可以通过-jobconf stream.map.output.field.separator=, 和-jobconf mapred.textoutputformat.separator=,来修改。
前面提到了,如果在mapper阶段或者reduce阶段,只有key输出,没有value时(默认是以tab作为key和value的分割。所以如果输 出的数据中没有tab,就表示只有key,没有value),mapreduce框架会自动给数据加上一个tab,即使我们修改了分割符,那它也会添加修 改后的分割符,依然不能解决这个问题。针对这种情况,hadoop提供了一个参数,增加-jobconf mapred.textoutputformat.ignoreseparator=true 通过这个方法,可以去掉自动补上的tab。
但是有一点需要注意: map阶段和reduce阶段都会出现以上说明的自动补tab的问题,而-jobconf mapred.textoutputformat.ignoreseparator=true参数只能去掉reduce阶段增加的tab,所以如果在 map阶段被自动加上了tab,需要自行手工在reduce程序中删除之。 对于只有map的程序,可以通过增加一轮reduce,然后在reduce中使用参数,去除Tab键。
相关推荐
自定义分隔符读取源码,改编自LineRecordReader,主要处理格式复杂的日志
4 分别在自编 MapReduce 程序 WordCount 运行过程中和运行结束后查看 MapReduce Web 界面。 5. 分别在自编 MapReduce 程序 WordCount 运行过程中和运行结束后练习 MapReduce Shell 常用命令。 。。
mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce ...
图像文件转换为MapReduce可以读写的二进制文件代码Hadoop的计算框架只能处理文本文件,对于图像数据不能直接处理,本代码可以实现将图像文件转换成Mapreduce可以读取的SequenceFile,其中包括单机写入和读取,以及...
为提升自动化运维水平,基于自适应的MapReduce并发计算软件模型,设计并实现了适应宽带接入设备维护特点的自动化运维平台。工作原理即在综合评估应用服务器的资源利用状况的基础上,自适应地分配合理的计算、网络...
图像文件转换为MapReduce可以读写的二进制文件代码Hadoop的计算框架只能处理文本文件,对于图像数据不能直接处理,本代码可以实现将图像文件转换成Mapreduce可以读取的SequenceFile,其中包括单机写入和读取,以及...
MapReduce求取行平均值 MapReduce小实例 数据有经过处理已经添加行号的 也有未添加的 行平均值的四种求法
MapReduce发明人关于MapReduce的介绍
【MapReduce篇07】MapReduce之数据清洗ETL1
图解MapReduce,系统介绍Hadoop MapReduce工作过程原理
简单的在MapReduce中实现两个表的join连接简单的在MapReduce中实现两个表的join连接简单的在MapReduce中实现两个表的join连接
Hadoop 用mapreduce实现Wordcount实例,绝对能用
(2)打开网站localhost:8088和localhost:50070,查看MapReduce任务启动情况 (3)写wordcount代码并把代码生成jar包 (4)运行命令 (1):把linus下的文件放到hdfs上 (2):运行MapReduce (5):查看运行结果 ...
MapReduce简单程序示例
MapReduce的实现细节,对mapreduce的具体实现讲解
mapreduce example
hadoop网站通过SVN下载下来的mapreduce代码。欢迎现在学习!
mapreduce
MapReduce 设计模式,深入理解MapReduce编程模式,更好的利用MapReduce模型
在hadoop平台上,用mapreduce编程实现大数据的词频统计