Pydoop mapreduce“ AttributeError:模块'wordcount_minimal'没有属性'__main__'”

时间:2018-09-07 21:11:42

标签: python hadoop mapreduce hortonworks-data-platform

我安装了Pydoop,并试图运行MapReduce作业。为了进行试运行,我尝试执行字数示例wordcount_minimal.pywordcount_full.py。他们两个都挂在地图阶段。在stderr的最后,我根据运行的脚本找到了以下消息:

  

模块'wordcount_minimal'没有属性' main '

  

模块'wordcount_full'没有属性' main '

我使用以下命令执行了作业:

  

pydoop提交-上传文件到缓存wordcount_full.py wordcount_full hdfs_input_dir hdfs_output_dir

无法找到其背后的原因。知道是什么原因吗?

我能够使用mapreduce函数从pydoop script执行示例,并且成功完成了该示例。但是使用pydoop submit选项,我遇到了这个问题。不知道我是否想念一些东西。

PS:我有一个群集,其中有2个节点运行Hortonworks HDP 2.6.5Pydoop都安装在两者上。

1 个答案:

答案 0 :(得分:1)

默认情况下,pydoop Submit需要一个名为__main__的入口点,但是您可以通过--entry-point对其进行修改。例如,如果您的代码是:

class Mapper ...
class Reducer ...
def run():
    pipes.run_task(pipes.Factory(Mapper, Reducer))

您可以通过pydoop submit --entry-point run ...

运行它