当运行mrjob程序时,它不能创建目录并且失败

camsedfj  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(216)

我有以下程序:

from mrjob.job import MRJob
from mrjob.step import MRStep

class RatingsBreakdown(MRJob):
    def steps(self):
        return [
                MRStep(mapper=self.mapper_get_ratings,
                       reducer=self.reducer_count_ratings)
                ]

    def mapper_get_ratings(self, _, line):
        (userID, movieID, rating, timestamp) = line.split('\t')
        yield rating, 1

    def reducer_count_ratings(self, key, values):
        yield key, sum(values)

if __name__ == '__main__':
    RatingsBreakdown.run()

我正尝试在ubuntu 18.04上运行它:

sudo python3 RatingsBreakdown.py -r hadoop --hadoop-bin /usr/local/hadoop/bin/hadoop u.data

其中u.data是数据源。
程序停止,我不断收到以下错误:

OSError: Could not mkdir 
hdfs:///user/root/tmp/mrjob/RatingsBreakdown.root.20191110.010957.606661/files/wd

当我尝试手动运行mkdir命令时,我得到:

mkdir: Incomplete HDFS URI, no host: hdfs:///user/root/tmp/mrjob/RatingsBreakdown.root.20191110.010957.606661/files/w

我需要提到的是,我有一个功能性的hadoop安装(它与基于java的程序一起工作),python环境也设置得很好。如果我不使用hadoop运行程序,程序就会正确执行。似乎python(mrjob)和hadoop之间存在交互问题。
我找了又找,但似乎找不到任何有用的东西。请帮帮我!谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题