作者:啊健oo | 来源:互联网 | 2023-08-25 17:12
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Pydoopmapreduce“AttributeError:module'wordcount_minimal'没有属性
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Pydoop mapreduce“AttributeError:module'wordcount_minimal'没有属性'__main__'”相关的知识,希望对你有一定的参考价值。
我安装了Pydoop
,我正在尝试运行MapReduce
工作。为了做一个干运行,我尝试执行单词计数示例wordcount_minimal.py
和wordcount_full.py
。它们都挂在地图阶段。在stderr
的最后,我根据我运行的脚本找到了这条消息:
模块'wordcount_minimal'没有属性'main'
要么
模块'wordcount_full'没有属性'main'
我使用命令执行了该作业:
pydoop submit --upload-file-to-cache wordcount_full.py wordcount_full hdfs_input_dir hdfs_output_dir
无法找到背后的原因。任何想法可能是什么原因?
我能够使用pydoop script
和map
函数从reduce
执行示例,并且它已成功完成。但是使用pydoop submit
选项,我有这个问题。不确定我是否遗漏了什么。
PS:我有一个运行Hortonworks HDP 2.6.5
的2个节点的集群。 Pydoop
安装在它们上面。
答案
默认情况下,pydoop submit需要一个名为__main__
的入口点,但您可以通过--entry-point
修改它。例如,如果您的代码是:
class Mapper ...
class Reducer ...
def run():
pipes.run_task(pipes.Factory(Mapper, Reducer))
你可以通过pydoop submit --entry-point run ...
运行它