windows上python的hadoop流媒体

3hvapo4f  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(313)

我正在使用hortonworkshdp for windows,并成功地配置了一个主服务器和两个从服务器。
我使用以下命令; bin\hadoop jar contrib\streaming\hadoop-streaming-1.1.0-SNAPSHOT.jar -files file:///d:/dev/python/mapper.py,file:///d:/dev/python/reducer.py -mapper "python mapper.py" -reducer "python reduce.py" -input /flume/0424/userlog.MDAC-HD1.MDAC.local..20130424.1366789040945 -output /flume/o%1 -cmdenv PYTHONPATH=c:\python27 Map程序运行正常,但日志报告找不到reduce.py文件。在异常中,看起来hadoop taskrunner正在为mapper.py文件的reducer创建符号链接。
当我检查作业配置文件时,我注意到mapred.cache.files设置为;
hdfs://mdac-hd1:8020/mapred/staging/administrator/.staging/job__0021/files/mapper.py#mapper.py
看起来,虽然reduce.py文件被添加到jar文件中,但它没有正确地包含在配置中,并且在reducer尝试运行时找不到它。
我认为我的命令是正确的,我试过使用-file参数,但是没有找到任何文件。
有人能看出或知道一个明显的原因吗?
请注意,这是在windows上。
编辑-我刚刚在本地运行了它,它工作了,看起来我的问题可能是复制集群中的文件。
仍然欢迎输入!

olmpazwi

olmpazwi1#

当我看到您的命令时,它为-files选项显示“file:///d:/dev/python/reducer.py”,但是您为-reducer指定了reduce.py。这会导致问题吗??对不起,我不确定。

inb24sb2

inb24sb22#

好吧,那太尴尬了。。。我的第一个问题,我自己回答。
我通过重命名hadoop conf文件来强制默认设置(这意味着本地作业跟踪器)来发现问题。
作业运行正常,给了我解决问题的空间,看起来集群周围的通信不像需要的那么完整。

相关问题