0

我已经在我的 ubuntu 上设置了 hadoop,并运行了示例代码进行测试。一个常见的例子是https://github.com/tomwhite/hadoop-book/tree/master/ch02/src/main/python

我已经用给定的示例文件( https://github.com/tomwhite/hadoop-book/blob/master/input/ncdc/sample.txt )测试了这段代码。但是,当我根据我的数据文件修改映射器代码时,reducer 从 0% 变为 33%,然后又回到 0%。任何人都可以帮助解释为什么会发生这种情况或我应该如何修改代码。我的数据看起来像:

STN---,WBAN , YEARMODA,   TEMP,  ,   DEWP,  ,  SLP  ,  ,  STP  ,  , VISIB,  ,  WDSP,  , MXSPD,  GUST,   MAX  ,  MIN  ,PRCP  ,SNDP , FRSHTT,


690190,13910, 20120101,   42.9,18,   29.4,18, 1033.3,18,  968.7,18,  10.0,18,   8.7,18,  15.0, 999.9,   52.5*,  31.6*, 0.00I,999.9, 000000,
4

1 回答 1

0

如果您检查作业跟踪器,我确定地图任务失败并被重新安排在另一个节点上运行(最终作业失败)。这可能是由于 python 脚本抛出错误,所以我建议(如果您还没有这样做)通过映射器将您的示例数据管道化,以查看它产生的结果。

例如,我获取了您的数据并通过链接的 python 映射器运行它(使用额外的 println 来查看提取的列:

#> cat data.csv | python map.py
EARM  MXSP D


0120   15. 0
0120      15.

显然,您的映射器已按照您在问题中的说明进行了修改 - 因此您需要确保 python 脚本处理您的示例数据而不会出错。如果它运行没有错误,那么您需要检查失败的地图任务的日志(将它们发布到您的问题中)

于 2013-06-28T01:27:04.247 回答