使用python模块的hadoop流媒体

zdwk9cvp  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(391)

我见过一种使用zip文件存储引用的python模块来执行hadoop流作业的技术(在stackoverflow上)。
在执行作业的Map阶段,我遇到了一些错误。我很确定这和zip'd模块加载有关。
为了调试脚本,我使用命令行管道通过sys.stdin/sys.stdout将数据集运行到Map器和reducer中,如下所示:
head inputdatafile.txt |./mapper.py | sort-k1,1 |./reducer.py
结果看起来不错。
不过,当我通过hadoop运行这个程序时,我开始遇到一些问题。ie:Map器和还原器失败,整个hadoop作业完全失败。
我的zip模块文件包含*.pyc文件-这会影响这件事吗?
另外,在哪里可以找到使用hadoop流的map/reduction过程中生成的错误?
我使用了-file命令行参数来告诉hadoop zip'd模块的位置以及我的mapper和reducer脚本的位置。
我没有做任何疯狂的配置选项来增加工作中使用的Map器和还原器的数量。
任何帮助都将不胜感激!谢谢!

rkue9o1l

rkue9o1l1#

在查看sent\u tokenize的源代码之后,看起来nltk.sent\u tokenize和nltk.tokenize.sent\u tokenize方法/函数依赖于pickle文件(用于punkt tokenization的文件)进行操作。
由于这是hadoop流,您必须弄清楚在何处/如何将pickle文件放入添加到hadoop作业jar中的zip代码模块。
底线?我建议使用regexptokenizer类来进行句子和单词级别的标记化。

相关问题