2

我正在使用 Hadoop 流来运行一些 Python 代码。我注意到,如果我的 Python 代码(例如在 mapper.py 中)出现错误,我将不会收到有关错误的通知。相反,映射器程序将无法运行,并且该作业将在几秒钟后被终止。查看日志,我看到的唯一错误是mapper.py运行失败或找不到,显然不是这样。

我的问题是,是否有一个特定的日志文件我可以检查以查看 mapper.py 代码中可能存在的实际错误?(例如,会告诉我导入命令是否失败)

谢谢!

编辑:使用的命令:

bin/hadoop jar contrib/streaming/hadoop-streaming.jar \ -file /hadoop/mapper.py -mapper /hadoop/mapper.py -file /hadoop/reducer.py -reducer /hadoop/reducer.py -input /hadoop/input.txt -output /hadoop/output

以及我希望看到错误的帖子: Hadoop and NLTK: Fails with stopwords

4

2 回答 2

1

关于日志问题,请参阅这有帮助:

MapReduce:标准输出和标准错误的日志文件位置

我想如果 python 文件无法运行,那么解释器应该打印到标准输出,你会在该节点的标准输出日志中看到它。

于 2013-09-30T18:51:36.007 回答
0

评论后编辑:

假设您处于 Hadoop 的完全分布式环境中,并且您知道如何在节点中为 python 配置 NLTK,您需要在集群的所有节点中都存在 NLTK 包才能实际导入 pythonfrom nltk.corpus import stopwords并使用命令stopwords.words('english')

在我看来,NLTK需要在集群的所有节点中手动配置,以便mapper.py python 脚本真正工作。

如果这些没有帮助,请尝试此链接,如果您向下滚动,该链接将专门讨论 NLTK 作为示例。

于 2013-09-30T18:38:25.883 回答