我已经在我的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,
答案 0 :(得分:0)
如果您检查作业跟踪器,我确定地图任务失败并重新安排在另一个节点上运行(最终作业失败)。这可能是由于python脚本抛出错误所以我建议(如果你还没有这样做)通过映射器管道你的样本数据,看看它产生了什么。
例如,我获取了你的数据并通过链接的python映射器运行它(使用额外的println来查看提取的列:
#> cat data.csv | python map.py
EARM MXSP D
0120 15. 0
0120 15.
显然您的映射器已在您的问题中进行了修改 - 因此您需要确保python脚本无错误地处理您的示例数据。如果它运行没有错误,那么您需要检查失败的地图任务的日志(将它们发布到您的问题中)