我有以下程序:
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之间存在交互问题。
我找了又找,但似乎找不到任何有用的东西。请帮帮我!谢谢
暂无答案!
目前还没有任何答案,快来回答吧!