整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

5.5.4 获取结果

hadoop 小红牛 7℃ 0评论

一旦作业完成,有许多方法可以获取结果。每个reducer产生一个输出文件,因此,在目录中会有30个部分文件(partfile),命名为par/-00000part-00029

正如文件名所示,这些“part”文件可以认为是文件的一

部分。

如果输出文件很大(本例不是这种情况),那么把文件分为多个part文件很重要,这样才能使多个reducer并行工作。通常情况下,如果文件采用这种分割形式,使用起来仍然很方便:例如作为另一个MapReduce作业的输人。在某些情况下,可以探索多个分割文件的结构来进行map端连接操作(参阅8.3.1)或执行一个MapFile的査找操作(参阅8.2.2)。

这个作业产生的输出很少,所以很容易从HDFS中将其复制到开发机器上。-getmerge选项对hadoopfs命令很有用,因为它得到了源模式指定目录下所有的文件,并将其合并为本地文件系统的一个文件:

%hadoop fs -getmerge max-temp max-temp-local

 

%sort max-temp-local | tail

1991607

1992605

1993567

1994568

1995567

1996561

1997565

1998568

1999568

2000558

因为reduce的输出分区文件是无序的(使用hashpartitioner的缘故),我们对输出进行排序。对MapReduce的数据做些后期处理是很常见的,把这些数据送入分析工具(例如R、电子数据表甚至关系数据库)进行处理。

如果输出文件比较小,另外一种获取方式是使用cat选项将输出文件打印到控制台:

%hadoop fs -cat max-temp/*

深入分析后,我们发现某些结果看起来似乎没有道理。比如1951年(此处 没有显示)的最高气温是590€!这个结果是怎么产生的呢?是不正确的输 入数据还是程序中的bug?

转载请注明:全栈大数据 » 5.5.4 获取结果

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址